30 lines
1.3 KiB
Bash
30 lines
1.3 KiB
Bash
command -v vgcreate >/dev/null || pkg_install lvm2
|
|
pkg_installed parted || pkg_install parted
|
|
vgs vglab >/dev/null 2>&1 && refuse "a volume group vglab already exists; the lab makes it. Remove it and start the lab again."
|
|
grep -q vglab /etc/fstab && refuse "/etc/fstab already names vglab; take that line out and start the lab again."
|
|
# Disk 0: a partition with data, and free space.
|
|
d0=$(disk_add 0 1G)
|
|
parted -s "$d0" mklabel gpt mkpart data 1MiB 301MiB
|
|
udevadm settle
|
|
[ -b "${d0}p1" ] || partx -u "$d0"
|
|
mkfs.ext4 -q -L le-data "${d0}p1"
|
|
m=$(mktemp -d)
|
|
mount "${d0}p1" "$m"
|
|
cp /etc/services "$m/services"
|
|
echo "Lab data: keep me" >"$m/keep.txt"
|
|
sha256sum "$m/services" "$m/keep.txt" | sed "s|$m/||" >"$LAB_STATE/data.sha"
|
|
umount "$m"; rmdir "$m"
|
|
sfdisk --dump "$d0" | grep "^${d0}p1 " >"$LAB_STATE/p1"
|
|
blkid -s UUID -o value "${d0}p1" >"$LAB_STATE/p1-uuid"
|
|
# Disk 1: volume group vglab with data and an old swap LV in fstab.
|
|
d1=$(disk_add 1 1G)
|
|
pvcreate -q "$d1" >/dev/null
|
|
vgcreate -q vglab "$d1" >/dev/null
|
|
lvcreate -q -y -n lvdata -L 200M vglab >/dev/null
|
|
lvcreate -q -y -n oldswap -L 128M vglab >/dev/null
|
|
mkswap -q /dev/vglab/oldswap >/dev/null
|
|
blkid -s UUID -o value /dev/vglab/oldswap >"$LAB_STATE/oldswap-uuid"
|
|
printf '/dev/vglab/oldswap none swap defaults 0 0\n' >>/etc/fstab
|
|
systemctl daemon-reload
|
|
swapon /dev/vglab/oldswap
|