X-Git-Url: https://iankelling.org/git/?a=blobdiff_plain;f=fai%2Fconfig%2Fhooks%2Fpartition.DEFAULT;h=31f07ec1174a7409d9097d9573680b648454dc59;hb=a43d3eec943c5f0491b300214a3c744d31a6e542;hp=e2a32caea9814ab497ed8ebb67be80052cdd5fe8;hpb=ce5290b5a6eee95cc59b5c1651d73a224c3d5bbd;p=automated-distro-installer diff --git a/fai/config/hooks/partition.DEFAULT b/fai/config/hooks/partition.DEFAULT index e2a32ca..31f07ec 100755 --- a/fai/config/hooks/partition.DEFAULT +++ b/fai/config/hooks/partition.DEFAULT @@ -8,22 +8,25 @@ trap 'echo "$0:$LINENO:error: \"$BASH_COMMAND\" returned $?"' ERR #### begin configuration -if ifclass VM; then - d=vd -else - d=sd -fi - -if ifclass TWO_DISK; then +if ifclass TWO_DISK || ifclass demohost; then letters=(a b) elif ifclass ONE_DISK; then letters=(a) else - exit + exit 1 fi ##### end configuration -skiptask partition + +if ifclass VM; then + d=vd +else + d=sd +fi + + + +skiptask partition ||: # for running out of fai devs=(${letters[@]/#//dev/${d}}) crypt_devs=(${letters[@]/#//dev/mapper/crypt_dev_${d}}) @@ -43,11 +46,11 @@ for dev in ${devs[@]}; do done done -partition=true # override temporarily +#partition=true # for temporarily override # keyfiles generated like: # head -c 2048 /dev/urandom | od | s dd of=/q/root/luks/host-demohost -luks_dir=/var/lib/fai/config/distro-install-common/luks +luks_dir=${LUKS_DIR:-/var/lib/fai/config/distro-install-common/luks} if ifclass tp; then lukspw=$(cat $luks_dir/traci) else @@ -68,20 +71,23 @@ swap_end=$(( $(grep ^MemTotal: /proc/meminfo| awk '{print $2}') * 3/(${#devs[@]} create_subvols() { cd /mnt - for x in a home root; do + for x in q home root; do btrfs subvolume list . | grep "$x$" >/dev/null || btrfs subvolume create $x done btrfs subvolume set-default \ $(btrfs subvolume list . | grep 'root$' | awk '{print $2}') . + chattr -Rf +C root cd / umount /mnt } +mkdir -p /tmp/fai shopt -s nullglob if $partition; then - mkdir -p /tmp/fai for dev in ${devs[@]}; do for x in $dev[0-9]; do wipefs -a $x; done + done + for dev in ${devs[@]}; do parted -s $dev mklabel gpt # gpt ubuntu cloud image uses ~4. fai uses 1 MiB. ehh, i'll do 4. # also, using MB instead of MiB causes complains about alignment. @@ -144,30 +150,33 @@ else fi -for dev in ${devs[@]}; do - cat >>/tmp/fai/crypttab <>/tmp/fai/crypttab < /tmp/fai/fstab <>/tmp/fai/crypttab <> /tmp/fai/fstab </tmp/fai/disk_var.sh <