X-Git-Url: https://iankelling.org/git/?a=blobdiff_plain;f=fai%2Fconfig%2Fhooks%2Fpartition.DEFAULT;h=11a7ee51f57839a01d04bc1436601b0c4e310d7b;hb=HEAD;hp=7990a19918faf90e56760428b54fce9e032f1120;hpb=137ffae7de84a51c4b438ccf2fb50f5571f522a6;p=automated-distro-installer diff --git a/fai/config/hooks/partition.DEFAULT b/fai/config/hooks/partition.DEFAULT index 7990a19..530a34d 100755 --- a/fai/config/hooks/partition.DEFAULT +++ b/fai/config/hooks/partition.DEFAULT @@ -27,7 +27,6 @@ if [[ $EUID != 0 ]]; then fi # for calling outside of FAI without args: -# fai-redep # # source /b/fai/fai-wrapper # - set any appropriate classes with: fai-setclass OPT1... which sets CLASS_OPT1=true... @@ -43,7 +42,7 @@ fi # happen to already be setup. # # mktab: for running outside of fai and generating a crypttab for -# the main root fs in /tmp/fai. Must run with env var, eg export DISTRO=trisquelnabia. +# the main root fs in /tmp/fai. Must run with env var, eg export DISTRO=trisquelaramo. # # Example use in a bootstrap distro: # scp /a/bin/fai/fai/config/{distro-install-common/devbyid,hooks/partition.DEFAULT} root@HOST: @@ -61,9 +60,8 @@ fi # # environment variables: # -# HOSTNAME: if frodo, we exclude 2 devices from the /boot array, which -# the bios does not see. if demohost, we set the luks password to just -# 'x'. +# HOSTNAME: if demohost, we set the luks password to just +# 'x'. Used in various other ways too. # # SPECIAL_DISK: For use outside of fai. A base disk name like # /dev/sdk. If set, we just cryptsetup and partition this one disk then @@ -168,8 +166,6 @@ fi # boot - - ##### end configuration ##### begin function defs @@ -184,7 +180,7 @@ bpart() { # btrfs a partition zilap() { case $HOSTNAME in - sy|bo) + sy|bo|so) return 0 ;; esac @@ -276,7 +272,7 @@ mktab() { dev=${boot_devs[0]} fstabstd="x-systemd.device-timeout=30s,x-systemd.mount-timeout=30s" - if [[ $DISTRO == debianbullseye_bootstrap ]]; then + if [[ $DISTRO == *_bootstrap ]]; then cat > /tmp/fai/fstab <>/tmp/fai/crypttab <> /tmp/fai/fstab <>/mnt/root/root2-crypttab < 0 )) || exit 1 + if (( count_down <= 0 )); then + echo "$0: wipefs failed 10 times. exiting" >&2 + exit 1 + fi done done fi @@ -847,16 +880,27 @@ if $partition; then if fsf; then root_mib=40000 + elif ifclass demohost; then + # just randomish numbers that seem ok for testing. + root_mib=25000 + o_mib=1000 else # This would maximize it, but we are going for a separate filesystem in /o, # so use fixed sizes to allow both to grow # 600 = uefi 512 + grubext 8 + bios grub 3 + some extra cuz this is lvm #root_mib=$(( disk_mib - root2_part_mib - swap_mib - boot_part_mib - boot2_part_mib - 600 )) - root_mib=$(( 1000 * 1000 )) # * 1000 to make it in gb. - o_mib=$(( 120 * 1000 )) + o_mib=$(( 180 * 1000 )) + # max minus o, minus a gig just for some extra space + max_root_mib=$(( disk_mib - root2_part_mib - swap_mib - boot_part_mib - boot2_part_mib - 600 - o_mib - 1000 )) + root_mib=$(( 1700 * 1000 )) # * 1000 to make it in gb. + if (( max_root_mib < root_mib )); then + root_mib=$max_root_mib + fi fi - if [[ ! $SPECIAL_DISK ]]; then + if [[ $SPECIAL_DISK ]]; then + lvcreate -y -L $max_root_mib $vg -n data + else # -L unit default mebibyte lvcreate -y -L $root_mib $vg -n root if ! fsf; then @@ -869,12 +913,6 @@ if $partition; then fi fi - if zilap; then - # todo: now that we are using lvm, this doesnt need to be done until mkroot2 - lvcreate -y -L $root2_part_mib $vg -n root2 - lvcreate -y -L $boot2_part_mib $vg -n boot2 - fi - $pcmd mkpart primary "" ${pv_end}MiB ${disk_mib}MiB $pcmd name $bootn boot $pcmd set $bootn boot on @@ -940,6 +978,11 @@ if $partition; then # into ipxe which can't persist data, if we ever got that working. mkfs.ext2 $dev$grub_extsuf + if [[ $SPECIAL_DISK ]]; then + luks-setup /dev/$vg/data crypt-$vg-data + exit 0 + fi + # for fsf, no encryption of root because root will not contain any # sensitive data. if ! fsf; then @@ -947,9 +990,6 @@ if $partition; then luks-setup /dev/$vg/o crypt-$vg-o fi - if [[ $SPECIAL_DISK ]]; then - exit 0 - fi done ls -la /dev/btrfs-control # this was probably for debugging... sleep 1 @@ -986,7 +1026,7 @@ else ## end if $partition ## fi -if $wipe && [[ $DISTRO != debianbullseye_bootstrap ]]; then +if $wipe && [[ $DISTRO != *_bootstrap ]]; then # bootstrap distro doesn't use separate encrypted root. mount -o subvolid=0 ${root_devs[0]} /mnt # systemd creates subvolumes we want to delete.