eventually build your own and
mkdir -p /root/guests/stali/lala/
cd /root/guests/stali/
dd if=/dev/zero of=stali.reiser4 bs=1GB count=0 seek=10
mkfs.reiser4 --discard --force --yes stali.reiser4
mount stali.reiser4 lala/
git clone http://git.sta.li/rootfs-x86_64
mv rootfs-x86_64/* lala/
rm -rf rootfs-x86_64/
    mkdir lala/lib/
    mkdir lala/lib/modules/
    tar xzf /data/kernels/5.2.21.domureiser4.modules.tar.gz -C lala/lib/modules/
cp -pi lala/etc/fstab lala/etc/fstab.dist
vi lala/etc/fstab
/dev/xvda1      /       reiser4 rw,noatime,discard              0 1
tmpfs           /tmp    tmpfs   nodev,nosuid,mode=1777          0 0
tmpfs           /dev/shm tmpfs  defaults                        0 0
mv -i lala/etc/rc.init lala/etc/rc.init.dist
chmod -x lala/etc/rc.init.dist
rm -f lala/etc/rc.conf*
vi lala/etc/rc.init
#!/bin/sh
echo rc.init PATH is $PATH
umask 022
/bin/mount -n -t proc -o nosuid,noexec,nodev proc /proc
/bin/mount -n -t sysfs -o nosuid,noexec,nodev sysfs /sys
# we have /dev on the disk not as tmpfs nor devtmpfs
/bin/umount /dev
/bin/mount -n -t devpts -o gid=5,mode=0620 devpts /dev/pts
/bin/mount -o remount,rw /
/bin/mount -a
echo Loading TMEM
insmod /lib/modules/5.2.21.domureiser4/kernel/drivers/xen/tmem.ko && echo done || echo FAILED
/bin/hostname stali
/bin/ip addr add 127.0.0.1/8 dev lo broadcast + scope host
/bin/ip link set lo up
/bin/ip addr add 10.1.1.9/24 dev eth0
/bin/ip link set eth0 up
/bin/ip route add 10.1.1.254/24 dev eth0
test -f /etc/random-seed && /bin/cat /etc/random-seed >/dev/urandom
/bin/dd if=/dev/urandom of=/etc/random-seed count=1 bs=512 2>/dev/null
ulimit -c unlimited
# usage: /bin/getty [tty] [term] [cmd] [args...]
/bin/respawn /bin/getty /dev/hvc0 xterm /bin/sh
chmod +x lala/etc/rc.init
echo 127.0.0.1 localhost stali > lala/etc/hosts # new file
echo nameserver 10.1.1.254 > lala/etc/resolv.conf # new file
cp -i lala/etc/rc.exit lala/etc/rc.exit.dist
chmod -x lala/etc/rc.exit.dist
vi lala/etc/rc.exit
(remove the call to unused rc.conf)
re-wrap sinit altogether
ls -lF lala/bin/poweroff lala/bin/reboot # no exist echo /bin/kill -s USR1 1 > lala/bin/poweroff echo /bin/kill -s INT 1 > lala/bin/reboot chmod +x lala/bin/poweroff lala/bin/reboot
create device files
mkdir -p lala/{dev/pts,dev/shm,proc,tmp,sys,log,run}/
mknod -m 600 lala/dev/console c 5 1
mknod -m 600 lala/dev/hvc0 c 229 0
mknod -m 660 lala/dev/ptmx c 5 2
mknod -m 660 lala/dev/tty c 5 0
grep ^tty lala/etc/group
chown root:tty lala/dev/ptmx
chown root:tty lala/dev/tty
mknod -m 666 lala/dev/null c 1 3
mknod -m 666 lala/dev/zero c 1 5
mknod -m 444 lala/dev/random c 1 8
mknod -m 444 lala/dev/urandom c 1 9
ln -s /proc/self/fd lala/dev/fd
ln -s /proc/self/fd/0 lala/dev/stdin
ln -s /proc/self/fd/1 lala/dev/stdout
ln -s /proc/self/fd/2 lala/dev/stderr
ln -s /proc/kcore lala/dev/core
and for xen
mkdir -p lala/dev/xen/ mknod -m 660 lala/dev/xen/evtchn c 10 60 mknod -m 660 lala/dev/xen/gntalloc c 10 58 mknod -m 660 lala/dev/xen/gntdev c 10 59 mknod -m 660 lala/dev/xen/hypercall c 10 56 mknod -m 660 lala/dev/xen/privcmd c 10 57 mknod -m 660 lala/dev/xen/xenbus c 10 61
then finish-up
#chroot lala/ passwd -d root du -sh lala/ # 213M umount lala/ rmdir lala/
vi stali
kernel = "/data/kernels/vmlinuz"
root = "/dev/xvda1 ro console=hvc0 mitigations=off"
#extra = "init=/bin/bash"
name = "stali"
vcpus = 2
memory = 1024
disk = ['tap:tapdisk:aio:/root/guests/stali/stali.reiser4,xvda1,w']
vif = [ 'bridge=guestbr0, vifname=stali0',
    'bridge=guestbr0, vifname=stali1' ]
type = "pvh"
xl create stali -c
lsmod free -m curl -I http://146.112.62.105/ curl -I https://www.opendns.com/
make /var/ alive again and get rid of /log/ and /run/
note: /run/ is required while logging in
fopen /run/utmp: No such file or directory
otherwise within rc.init
/bin/mknod -m 600 /dev/console c 5 1 /bin/mknod -m 600 /dev/hvc0 c 229 0 /bin/mknod -m 666 /dev/null c 1 3 /bin/mknod -m 666 /dev/zero c 1 5 /bin/mknod -m 666 /dev/ptmx c 5 2 /bin/mknod -m 666 /dev/tty c 5 0 /bin/mknod -m 444 /dev/random c 1 8 /bin/mknod -m 444 /dev/urandom c 1 9 ln -s /proc/self/fd fd ln -s /proc/self/fd/0 stdin ln -s /proc/self/fd/1 stdout ln -s /proc/self/fd/2 stderr ln -s /proc/kcore core
it is worth noting that kernel’s dev mount options look like this
devtmpfs /dev devtmpfs rw,relatime,size=3563240k,nr_inodes=890810,mode=755 0 0
need those
also need to solve
[ 0.824455] random: dd: uninitialized urandom read (512 bytes read)
https://core.suckless.org/sinit/
http://www.linuxfromscratch.org/lfs/view/6.1/chapter06/devices.html
https://git.suckless.org/ubase/files.html
https://git.suckless.org/sbase/files.html
https://gitlab.com/garbeam/src/-/blob/master/bin/ubase/halt.8