#### begin configuration
-bootn=3
rootn=1
swapn=2
+bootn=3
bios_grubn=4
boot_mib=1500
lastn=$bios_grubn
-hds=()
+hdds=()
ssds=()
cd /sys/block
for disk in [sv]d[a-z]; do
case $(cat $disk/queue/rotational) in
0) ssds+=(/dev/$disk) ;;
- 1) hds+=(/dev/$disk) ;;
+ 1) hdds+=(/dev/$disk) ;;
*) echo "$0: error: unknown /sys/block/$disk/queue/rotational: \
$(cat $disk/queue/rotational)"; exit 1 ;;
esac
if (( ${#ssds[@]} > 0 )); then
short_devs=( ${ssds[@]} )
else
- short_devs=( ${hds[@]} )
+ short_devs=( ${hdds[@]} )
fi
# check if the partitions exist have the right filesystems
bios_grubn=4
# 1.5 x based on https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Installation_Guide/sect-disk-partitioning-setup-x86.html#sect-custom-partitioning-x86
swap_mib=$(( $(grep ^MemTotal: /proc/meminfo | \
- awk '{print $2}') * 3/(${#devs[@]} * 2 ) / 1024 ))
+ awk '{print $2}') * 3/(${#devs[@]} * 2 ) / 1024 ))
mkdir -p /tmp/fai
shopt -s nullglob
# parted print error output is expected. example:
# Error: /dev/vda: unrecognised disk label
disk_mib=$(( $(parted -m $dev unit MiB print | \
- sed -nr "s#^/dev/[^:]+:([0-9]+).*#\1#p") - 1))
+ sed -nr "s#^/dev/[^:]+:([0-9]+).*#\1#p") - 1))
root_end=$(( disk_mib - swap_mib - boot_mib / ${#boot_devs[@]} ))
swap_end=$(( root_end + swap_mib))
mount -o subvolid=0 $first_root_crypt /mnt
# systemd creates subvolumes we want to delete.
s=($(btrfs subvolume list --sort=-path /mnt |
- sed -rn "s#^.*path\s*(root_$DISTRO/\S+)\s*\$#\1#p"))
+ sed -rn "s#^.*path\s*(root_$DISTRO/\S+)\s*\$#\1#p"))
for subvol in ${s[@]}; do btrfs subvolume delete /mnt/$subvol; done
btrfs subvolume set-default 0 /mnt
[[ ! -e /mnt/root_$DISTRO ]] || btrfs subvolume delete /mnt/root_$DISTRO
cd /mnt
for x in q home_$DISTRO root_$DISTRO; do
btrfs subvolume list . | grep "$x$" >/dev/null || btrfs subvolume create $x
- chown root:1000 q
done
+chown root:1000 q
+
+
mkdir -p /mnt/root_$DISTRO/boot
for x in root/a q/a; do
mkdir -p $x