aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorGuilhem Moulin <guilhem@fripost.org>2015-05-07 13:44:44 +0200
committerGuilhem Moulin <guilhem@fripost.org>2015-06-07 04:28:16 +0200
commit82c1b5a67b250afbcb96c9460ff006f3d02c76cd (patch)
tree5c4fb032105a6286e1cc0ea9a598a5180bc7f145 /include
parente59392ef15075117fd4448aa08ada1a14dd54423 (diff)
Prefer BTRFS over LVM2.
Diffstat (limited to 'include')
-rwxr-xr-xinclude/partition.sh66
1 files changed, 37 insertions, 29 deletions
diff --git a/include/partition.sh b/include/partition.sh
index 10c17a0..35f259a 100755
--- a/include/partition.sh
+++ b/include/partition.sh
@@ -85,16 +85,26 @@ encrypt=$RET
db_set grub-installer/bootdev "${device%% *}"
db_fset grub-installer/bootdev seen true
+part_efi=
part_boot=
+part_swap=
part_system=
# Create boot and system partitions
for d in $device; do
- pb=$( fripost_mkpart $d boot 64M )
- ps=$( fripost_mkpart $d system 100% )
- part_boot="${part_boot:+$part_boot }$pb"
- part_system="${part_system:+$part_system }$ps"
- /sbin/parted -s $d align-check opt ${ps#$d} \
- || fatal "$ps is not aligned"
+ p=$( fripost_mkpart $d boot 64M )
+ part_boot="${part_boot:+$part_boot }$p"
+
+ p=$( fripost_mkpart $d swap 1G ) # FIXME
+ part_swap="${part_swap:+$part_swap }$p"
+ /sbin/parted -s $d align-check opt ${p#$d} \
+ || fatal "$p is not aligned"
+
+ p=$( fripost_mkpart $d system 100% )
+ part_system="${part_system:+$part_system }$p"
+ /sbin/parted -s $d align-check opt ${p#$d} \
+ || fatal "$p is not aligned"
+
+ log "Done with device $d"
done
# Create an array on top of that
@@ -106,6 +116,11 @@ if [ ${raidLevel:-} ]; then
fripost_mdadm_create "$part_boot" -f -R -l $raidLevel \
${raidNumActiveDevices:+-n $raidNumActiveDevices} $devices
+ devices="$part_swap"
+ part_swap=/dev/md/swap
+ fripost_mdadm_create "$part_swap" -f -R -l raid0 \
+ ${raidNumActiveDevices:+-n $raidNumActiveDevices} $devices
+
devices="$part_system"
part_system=/dev/md/system
fripost_mdadm_create "$part_system" -f -R -l $raidLevel \
@@ -148,31 +163,24 @@ if [ $encrypt = true ]; then
fi
-# Ensure LVM2 is installed in the target chroot; create logical volumes
-# for /, swap and /home.
-apt-install lvm2 || true
-vg=$(hostname)
-pvcreate -ff -y $part_system
-vgcreate $vg $part_system
-
-lvcreate -L 5G -n root $vg # FIXME
-lvcreate -L 1G -n swap $vg # FIXME
-lvcreate -l 100%FREE -n home $vg # FIXME
-vgchange -ay $vg
-
-
# Format the partitions
-fripost_mkfs ext2 $part_boot -E resize=512M -m1 -b 4096
-fripost_mkfs ext4 /dev/$vg/root -b 4096
-fripost_mkfs ext4 /dev/$vg/home -b 4096
-mkswap /dev/$vg/swap
+fripost_mkfs ext2 "$part_boot" -F -E resize=512M -m1 -b 4096
+fripost_mkfs btrfs "$part_system" -f
+mkswap "$part_swap"
+
+# Create BTRFS subvolumes
+mkdir -p /target
+apt-install btrfs-tools || true
+mount -t btrfs -o compress=lzo "$part_system" /target
+btrfs subvol create /target/@
+btrfs subvol create /target/@home
+umount /target
# Stuff the fstab and mount the devices in the target
-fripost_fstab $part_boot /boot ext2 noatime
-[ -d /proc/efi -o -d /sys/firmware/efi ] && \
-fripost_fstab $part_efi /boot/efi vfat defaults
-fripost_fstab /dev/$vg/root / ext4 noatime,errors=remount-ro
-fripost_fstab /dev/$vg/swap none swap sw
-fripost_fstab /dev/$vg/home /home ext4 noatime
+fripost_fstab "$part_boot" /boot ext2 defaults
+fripost_fstab "$part_efi" /boot/efi vfat defaults
+fripost_fstab "$part_system" / btrfs compress=lzo,subvol=@
+fripost_fstab "$part_system" /home btrfs compress=lzo,subvol=@home
+fripost_fstab "$part_swap" none swap sw
fripost_mount_partitions