X-Git-Url: https://iankelling.org/git/?p=automated-distro-installer;a=blobdiff_plain;f=fai%2Fconfig%2Fhooks%2Fpartition.DEFAULT;h=f3df8652b9532ab4f38f97ed70ad30ecd6c01e0d;hp=19b80238081b1cda61f5430f03cbad2c376d9f55;hb=c59144a600fd661d9512d8a5005aa0f5bc29bf0d;hpb=174c1cfe0febff17f3bd75dc7d3c6ce2731e9bd2 diff --git a/fai/config/hooks/partition.DEFAULT b/fai/config/hooks/partition.DEFAULT index 19b8023..f3df865 100755 --- a/fai/config/hooks/partition.DEFAULT +++ b/fai/config/hooks/partition.DEFAULT @@ -35,7 +35,11 @@ fi # # OPTIONS: # -# mkroot2: for running outside of fai and setting up the root2/boot2 luks and btrfs +# mkroot2: for running outside of fai and setting up the root2/boot2 luks and btrfs and tab files +# +# mkroot2tab: for running outside of fai and setting up the root2/boot2 tab files, in case luks and btrfs +# happen to already be setup. +# # # environment variables: # @@ -64,12 +68,16 @@ fi # raid10. # RAID1: forces raid1 filesystem. +mkroot2tab=false mkroot2=false if [[ $1 ]]; then case $1 in mkroot2) mkroot2=true ;; + mkroot2tab) + mkroot2tab=true + ;; *) echo "$0: error: unsupported arg: $1" >&2 exit 1 @@ -91,7 +99,7 @@ skiptask partition || ! type skiptask if ! type -p devbyid; then for d in $FAI/distro-install-common \ - /a/bin/fai/fai/config/distro-install-common $FAI $PWD; do + /a/bin/fai/fai/config/distro-install-common $FAI $PWD; do [[ -d $d ]] || continue if [[ -e $d/devbyid ]]; then devbyid=$d/devbyid @@ -220,7 +228,7 @@ if (($(nproc) > 2)); then fi declare -A disk_excludes -if ! $mkroot2 && ! ifclass USE_MOUNTED; then +if ! $mkroot2 && ! $mkroot2tab ! ifclass USE_MOUNTED; then ## ignore disks that are mounted, eg when running from fai-cd while read -r l; do eval "$l" @@ -362,7 +370,7 @@ if (( boot_space > 60000 )); then boot_mib=10000 root2_mib=1000000 boot2_mib=5000 -elif (( boot_spa_ce > 30000 )); then +elif (( boot_space > 30000 )); then boot_mib=$(( 5000 + (boot_space - 30000) / 2 )) root2_mib=100 boot2_mib=100 @@ -411,7 +419,7 @@ if [[ ! $DISTRO ]]; then DISTRO=trisqueletiona elif ifclass VOL_NABIA; then DISTRO=trisquelnabia - elif $mkroot2; then + elif $mkroot2 || $mkroot2tab; then : else echo "PARTITIONER ERROR: no distro class/var set" >&2 @@ -481,21 +489,25 @@ shopt -s nullglob # because these are filesystems created after our current root, and so # this allows us to update other root filesystems too. rm -f /mnt/root/root2-{fs,crypt}tab -if $mkroot2; then +if $mkroot2 || $mkroot2tab; then if $partition; then echo $0: error: found partition=true but have mkroot2 arg exit 1 fi for dev in ${devs[@]}; do - luks_file=$luks_dir/host-amy - lukspw=$(cat $luks_dir/amy) - luks-setup $(root2dev) + if $mkroot2; then + luks_file=$luks_dir/host-amy + lukspw=$(cat $luks_dir/amy) + luks-setup $(root2dev) + fi cat >>/mnt/root/root2-crypttab <>/mnt/root/root2-fstab <