fixes and config changes
[automated-distro-installer] / fai / config / hooks / partition.DEFAULT
index 410b915651aef26b658fce62fc3492c2c173d395..9adaa76ee5babdf1603d5f963bbc085c8388e77c 100755 (executable)
@@ -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
@@ -332,6 +328,27 @@ ROOT_PARTITION=\${ROOT_PARTITION:-$first_root_dev}
 SWAPLIST=\${SWAPLIST:-"${swap_devs[@]}"}
 EOF
 
+    if [[ $HOSTNAME == frodo ]]; then
+      big_disks=(
+        ata-Hitachi_HDS722020ALA330_JK1121YAG7SXWS-part1
+        ata-Hitachi_HDS722020ALA330_JK1121YAG7SY4S-part1
+        ata-Hitachi_HDS723030ALA640_MK0311YHG2WUSA-part1
+        ata-ST4000DM000-1F2168_Z300AZ6K-part1
+        ata-ST6000DM001-1XY17Z_Z4D2WMZK-part1
+        ata-TOSHIBA_MD04ACA500_8539K4TQFS9A-part1
+        ata-TOSHIBA_MD04ACA500_85NAK4T2FS9A-part1
+        ata-TOSHIBA_MD04ACA500_9551K615FS9A-part1
+        ata-TOSHIBA_MD04ACA500_Y5IFK6IJFS9A-part1
+      )
+      for d in ${big_disks[@]}; do
+        cat >>/tmp/fai/crypttab <<EOF
+crypt_dev_$d  /dev/disk/by-id/$d  /mnt/root/q/root/luks/iank  discard,luks
+EOF
+      done
+      cat >> /tmp/fai/fstab <<EOF
+/dev/mapper/crypt_dev_${big_disks[0]}  /mnt/i  btrfs  nofail,$fstabstd,noatime,subvolid=0  0 0
+EOF
+    fi
     if [[ $HOSTNAME == kd ]]; then
       # note, having these with keyscript and initramfs causes a luks error in fai.log,
       # but it is safely ignorable and gets us the ability to just type our password
@@ -875,7 +892,9 @@ if $partition; then
       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
@@ -953,6 +972,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
@@ -960,9 +984,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