summary refs log blame commit diff
path: root/etc/init
blob: eb27c90e2dae3945e1b08121d6ac3b706a242b68 (plain) (tree)













































                                                              
                             








                                                               
#!/bin/execlineb -S0

export PATH /bin

if { mount -t devtmpfs none /dev }
if { mount -t proc none /proc }
if { mount -t sysfs none /sys }
if { mount -t efivarfs none /sys/firmware/efi/efivars }

if { mkfifo /dev/esp.poll }

background {
  fdclose 3
  mdevd -C
}
importas -iu mdevd_pid !

if { modprobe ext4 }

if {
  redirfd -r 0 /dev/esp.poll
  redirfd -w 1 /dev/null
  head -c 1
}
background { rm /dev/esp.poll }
background { kill $mdevd_pid }

backtick -E partname { readlink /dev/esp }
backtick -E partpath { realpath /sys/class/block/${partname} }
backtick -E diskpath { realpath ${partpath}/.. }
backtick -E diskname { basename $diskpath }

backtick -E rootdev {
  pipeline { lsblk -lnpo NAME,PARTTYPE /dev/${diskname} }
  pipeline { grep -m 1 4f68bce3-e8cd-4db1-96e7-fbcaf984b709 }
  cut -d " " -f 1
}

backtick -E hashdev {
  pipeline { lsblk -lnpo NAME,PARTTYPE /dev/${diskname} }
  pipeline { grep -m 1 2c7357ed-ebd2-46d9-aec1-23d437ec2bf5 }
  cut -d " " -f 1
}

background { rm /dev/esp }

importas -i roothash roothash

if { veritysetup open $rootdev root-verity $hashdev $roothash }
if { mount /dev/mapper/root-verity /mnt }
if { mount --move /proc /mnt/proc }
if { mount --move /sys /mnt/sys }
if { mount --move /dev /mnt/dev }

switch_root /mnt
/etc/init