rootgen.sh: complete all profiles except GELI+MBR (not supported)
This extends the test suite to generate images for every combination of: amd64: mbr/gpt geli/nogeli ufs/zfs legacy/uefi/both Except for mbr+geli, which is not currently possible. Reviewed by: imp (previous version) Sponsored by: Klara Systems Differential Revision: https://reviews.freebsd.org/D15846
This commit is contained in:
parent
041a40cfd0
commit
75f082b990
@ -27,18 +27,6 @@ find-part() {
|
||||
gpart show $dev | tail +2 | awk '$4 == "'$part'" { print $3; }'
|
||||
}
|
||||
|
||||
boot_nogeli_gpt_zfs_legacy() {
|
||||
dev=$1
|
||||
dst=$2
|
||||
|
||||
idx=$(find-part $dev "freebsd-boot")
|
||||
if [ -z "$idx" ] ; then
|
||||
die "No freebsd-boot partition found"
|
||||
fi
|
||||
doit gpart bootcode -b ${gpt0} -p ${gptzfs2} -i $idx $dev
|
||||
exit 0
|
||||
}
|
||||
|
||||
boot_nogeli_gpt_ufs_legacy() {
|
||||
dev=$1
|
||||
dst=$2
|
||||
@ -48,7 +36,33 @@ boot_nogeli_gpt_ufs_legacy() {
|
||||
die "No freebsd-boot partition found"
|
||||
fi
|
||||
doit gpart bootcode -b ${gpt0} -p ${gpt2} -i $idx $dev
|
||||
exit 0
|
||||
}
|
||||
|
||||
boot_nogeli_gpt_ufs_uefi() {
|
||||
dev=$1
|
||||
dst=$2
|
||||
|
||||
idx=$(find-part $dev "efi")
|
||||
if [ -z "$idx" ] ; then
|
||||
die "No ESP partition found"
|
||||
fi
|
||||
doit gpart bootcode -p ${efi2} -i $idx $dev
|
||||
}
|
||||
|
||||
boot_nogeli_gpt_ufs_both() {
|
||||
boot_nogeli_gpt_ufs_legacy $1 $2 $3
|
||||
boot_nogeli_gpt_ufs_uefi $1 $2 $3
|
||||
}
|
||||
|
||||
boot_nogeli_gpt_zfs_legacy() {
|
||||
dev=$1
|
||||
dst=$2
|
||||
|
||||
idx=$(find-part $dev "freebsd-boot")
|
||||
if [ -z "$idx" ] ; then
|
||||
die "No freebsd-boot partition found"
|
||||
fi
|
||||
doit gpart bootcode -b ${gpt0} -p ${gptzfs2} -i $idx $dev
|
||||
}
|
||||
|
||||
boot_nogeli_gpt_zfs_uefi() {
|
||||
@ -57,49 +71,14 @@ boot_nogeli_gpt_zfs_uefi() {
|
||||
|
||||
idx=$(find-part $dev "efi")
|
||||
if [ -z "$idx" ] ; then
|
||||
die "No efi ESP partition found"
|
||||
die "No ESP partition found"
|
||||
fi
|
||||
doit gpart bootcode -p ${efi2} -i $idx $dev
|
||||
exit 0
|
||||
}
|
||||
|
||||
boot_nogeli_gpt_zfs_both() {
|
||||
dev=$1
|
||||
dst=$2
|
||||
|
||||
# XXX: Should this be copy/pasted, or should it call both _uefi and _legacy
|
||||
idx=$(find-part $dev "efi")
|
||||
if [ -z "$idx" ] ; then
|
||||
die "No efi ESP partition found"
|
||||
fi
|
||||
doit gpart bootcode -p ${efi2} -i $idx $dev
|
||||
|
||||
idx=$(find-part $dev "freebsd-boot")
|
||||
if [ -z "$idx" ] ; then
|
||||
die "No freebsd-boot partition found"
|
||||
fi
|
||||
doit gpart bootcode -b ${gpt0} -p ${gptzfs2} -i $idx $dev
|
||||
exit 0
|
||||
}
|
||||
|
||||
boot_nogeli_mbr_zfs_legacy() {
|
||||
dev=$1
|
||||
dst=$2
|
||||
|
||||
# search to find the BSD slice
|
||||
s=$(findpart $dev "freebsd-zfs")
|
||||
if [ -z "$s" ] ; then
|
||||
die "No freebsd-zfs slice found"
|
||||
fi
|
||||
# search to find the freebsd-zfs partition within the slice
|
||||
# Or just assume it is 'a' because it has to be since it fails otherwise
|
||||
dd if=${dst}/boot/zfsboot of=/tmp/zfsboot1 count=1
|
||||
doit gpart bootcode -b /tmp/zfsboo1 ${dev}s${s} # Put boot1 into the start of part
|
||||
sysctl kern.geom.debugflags=0x10 # Put boot2 into ZFS boot slot
|
||||
doit dd if=${dst}/boot/zfsboot of=/dev/${dev}s${s} iseek=1 seek=1024
|
||||
sysctl kern.geom.debugflags=0x0
|
||||
|
||||
exit 0
|
||||
boot_nogeli_gpt_zfs_legacy $1 $2 $3
|
||||
boot_nogeli_gpt_zfs_uefi $1 $2 $3
|
||||
}
|
||||
|
||||
boot_nogeli_mbr_ufs_legacy() {
|
||||
@ -107,12 +86,115 @@ boot_nogeli_mbr_ufs_legacy() {
|
||||
dst=$2
|
||||
|
||||
doit gpart bootcode -b ${mbr0} ${dev}
|
||||
s=$(findpart $dev "freebsd-ufs")
|
||||
s=$(find-part $dev "freebsd")
|
||||
if [ -z "$s" ] ; then
|
||||
die "No freebsd-ufs slice found"
|
||||
die "No freebsd slice found"
|
||||
fi
|
||||
doit gpart bootcode -p ${mbr2} ${dev}s${s}
|
||||
exit 0
|
||||
}
|
||||
|
||||
boot_nogeli_mbr_ufs_uefi() {
|
||||
dev=$1
|
||||
dst=$2
|
||||
|
||||
s=$(find-part ${dev} "!239")
|
||||
if [ -z "$s" ] ; then
|
||||
die "No ESP slice found"
|
||||
fi
|
||||
doit gpart bootcode -p ${efi2} -i ${s} ${dev}
|
||||
}
|
||||
|
||||
boot_nogeli_mbr_ufs_both() {
|
||||
boot_nogeli_mbr_ufs_legacy $1 $2 $3
|
||||
boot_nogeli_mbr_ufs_uefi $1 $2 $3
|
||||
}
|
||||
|
||||
boot_nogeli_mbr_zfs_legacy() {
|
||||
dev=$1
|
||||
dst=$2
|
||||
|
||||
# search to find the BSD slice
|
||||
s=$(find-part $dev "freebsd")
|
||||
if [ -z "$s" ] ; then
|
||||
die "No BSD slice found"
|
||||
fi
|
||||
idx=$(find-part ${dev}s${s} "freebsd-zfs")
|
||||
if [ -z "$idx" ] ; then
|
||||
die "No freebsd-zfs slice found"
|
||||
fi
|
||||
# search to find the freebsd-zfs partition within the slice
|
||||
# Or just assume it is 'a' because it has to be since it fails otherwise
|
||||
doit gpart bootcode -b ${dst}/boot/mbr ${dev}
|
||||
dd if=${dst}/boot/zfsboot of=/tmp/zfsboot1 count=1
|
||||
doit gpart bootcode -b /tmp/zfsboot1 ${dev}s${s} # Put boot1 into the start of part
|
||||
sysctl kern.geom.debugflags=0x10 # Put boot2 into ZFS boot slot
|
||||
doit dd if=${dst}/boot/zfsboot of=/dev/${dev}s${s}a skip=1 seek=1024
|
||||
sysctl kern.geom.debugflags=0x0
|
||||
}
|
||||
|
||||
boot_nogeli_mbr_zfs_uefi() {
|
||||
dev=$1
|
||||
dst=$2
|
||||
|
||||
s=$(find-part $dev "!239")
|
||||
if [ -z "$s" ] ; then
|
||||
die "No ESP slice found"
|
||||
fi
|
||||
doit gpart bootcode -p ${efi2} -i ${s} ${dev}
|
||||
}
|
||||
|
||||
boot_nogeli_mbr_zfs_both() {
|
||||
boot_nogeli_mbr_zfs_legacy $1 $2 $3
|
||||
boot_nogeli_mbr_zfs_uefi $1 $2 $3
|
||||
}
|
||||
|
||||
boot_geli_gpt_ufs_legacy() {
|
||||
boot_nogeli_gpt_ufs_legacy $1 $2 $3
|
||||
}
|
||||
|
||||
boot_geli_gpt_ufs_uefi() {
|
||||
boot_nogeli_gpt_ufs_uefi $1 $2 $3
|
||||
}
|
||||
|
||||
boot_geli_gpt_ufs_both() {
|
||||
boot_nogeli_gpt_ufs_both $1 $2 $3
|
||||
}
|
||||
|
||||
boot_geli_gpt_zfs_legacy() {
|
||||
boot_nogeli_gpt_zfs_legacy $1 $2 $3
|
||||
}
|
||||
|
||||
boot_geli_gpt_zfs_uefi() {
|
||||
boot_nogeli_gpt_zfs_uefi $1 $2 $3
|
||||
}
|
||||
|
||||
boot_geli_gpt_zfs_both() {
|
||||
boot_nogeli_gpt_zfs_both $1 $2 $3
|
||||
}
|
||||
|
||||
# GELI+MBR is not a valid configuration
|
||||
boot_geli_mbr_ufs_legacy() {
|
||||
exit 1
|
||||
}
|
||||
|
||||
boot_geli_mbr_ufs_uefi() {
|
||||
exit 1
|
||||
}
|
||||
|
||||
boot_geli_mbr_ufs_both() {
|
||||
exit 1
|
||||
}
|
||||
|
||||
boot_geli_mbr_zfs_legacy() {
|
||||
exit 1
|
||||
}
|
||||
|
||||
boot_geli_mbr_zfs_uefi() {
|
||||
exit 1
|
||||
}
|
||||
|
||||
boot_geli_mbr_zfs_both() {
|
||||
exit 1
|
||||
}
|
||||
|
||||
boot_nogeli_vtoc8_ufs_ofw() {
|
||||
@ -122,7 +204,6 @@ boot_nogeli_vtoc8_ufs_ofw() {
|
||||
# For non-native builds, ensure that geom_part(4) supports VTOC8.
|
||||
kldload geom_part_vtoc8.ko
|
||||
doit gpart bootcode -p ${vtoc8} ${dev}
|
||||
exit 0
|
||||
}
|
||||
|
||||
DESTDIR=/
|
||||
@ -166,11 +247,12 @@ gpt2=${DESTDIR}/boot/gptboot
|
||||
gptzfs2=${DESTDIR}/boot/gptzfsboot
|
||||
|
||||
# For gpt + EFI we install the ESP
|
||||
# XXX This should use newfs or makefs, but it deosn't yet
|
||||
# XXX This should use newfs or makefs, but it doesn't yet
|
||||
efi1=${DESTDIR}/boot/boot1.efi
|
||||
efi2=${DESTDIR}/boot/boot1.efifat
|
||||
|
||||
# For MBR, we have lots of choices, but select boot0
|
||||
mbr0=${DESTDIR}/boot/boot0
|
||||
# For MBR, we have lots of choices, but select mbr, boot0 has issues with UEFI
|
||||
mbr0=${DESTDIR}/boot/mbr
|
||||
mbr2=${DESTDIR}/boot/boot
|
||||
|
||||
# VTOC8
|
||||
|
@ -51,9 +51,9 @@ mk_nogeli_gpt_ufs_uefi() {
|
||||
/dev/ada0p2 / ufs rw 1 1
|
||||
EOF
|
||||
# XXX need to make msdos part for this to work XXXX
|
||||
cp ${src}/boot/boot.efifat ${img}.p1
|
||||
cp ${src}/boot/boot1.efifat ${img}.p1
|
||||
makefs -t ffs -B little -s 200m ${img}.p2 ${src}
|
||||
mkimg -s gpt -b ${src}/boot/pmbr \
|
||||
mkimg -s gpt \
|
||||
-p efi:=${img}.p1 \
|
||||
-p freebsd-ufs:=${img}.p2 -o ${img}
|
||||
rm -f ${src}/etc/fstab
|
||||
@ -67,7 +67,7 @@ mk_nogeli_gpt_ufs_both() {
|
||||
/dev/ada0p3 / ufs rw 1 1
|
||||
EOF
|
||||
# XXX need to make msdos part for this to work XXXX
|
||||
cp ${src}/boot/boot.efifat ${img}.p1
|
||||
cp ${src}/boot/boot1.efifat ${img}.p1
|
||||
makefs -t ffs -B little -s 200m ${img}.p3 ${src}
|
||||
# p1 is boot for uefi, p2 is boot for gpt, p3 is /
|
||||
mkimg -b ${src}/boot/pmbr -s gpt \
|
||||
@ -99,7 +99,6 @@ mk_nogeli_gpt_zfs_legacy() {
|
||||
zfs create -po mountpoint=/ ${pool}/ROOT/default
|
||||
# NB: The online guides go nuts customizing /var and other mountpoints here, no need
|
||||
cpsys ${src} ${mntpt}
|
||||
df
|
||||
# need to make a couple of tweaks
|
||||
cat > ${mntpt}/boot/loader.conf <<EOF
|
||||
zfs_load=YES
|
||||
@ -107,7 +106,6 @@ opensolaris_load=YES
|
||||
EOF
|
||||
cp /boot/kernel/zfs.ko ${mntpt}/boot/kernel/zfs.ko
|
||||
cp /boot/kernel/opensolaris.ko ${mntpt}/boot/kernel/opensolaris.ko
|
||||
ls -las ${mntpt}/boot
|
||||
# end tweaks
|
||||
zfs umount -f ${pool}/ROOT/default
|
||||
zfs set mountpoint=none ${pool}/ROOT/default
|
||||
@ -139,7 +137,6 @@ mk_nogeli_gpt_zfs_uefi() {
|
||||
zfs create -po mountpoint=/ ${pool}/ROOT/default
|
||||
# NB: The online guides go nuts customizing /var and other mountpoints here, no need
|
||||
cpsys ${src} ${mntpt}
|
||||
df
|
||||
# need to make a couple of tweaks
|
||||
cat > ${mntpt}/boot/loader.conf <<EOF
|
||||
zfs_load=YES
|
||||
@ -147,7 +144,6 @@ opensolaris_load=YES
|
||||
EOF
|
||||
cp /boot/kernel/zfs.ko ${mntpt}/boot/kernel/zfs.ko
|
||||
cp /boot/kernel/opensolaris.ko ${mntpt}/boot/kernel/opensolaris.ko
|
||||
ls -las ${mntpt}/boot
|
||||
# end tweaks
|
||||
zfs umount -f ${pool}/ROOT/default
|
||||
zfs set mountpoint=none ${pool}/ROOT/default
|
||||
@ -180,7 +176,6 @@ mk_nogeli_gpt_zfs_both() {
|
||||
zfs create -po mountpoint=/ ${pool}/ROOT/default
|
||||
# NB: The online guides go nuts customizing /var and other mountpoints here, no need
|
||||
cpsys ${src} ${mntpt}
|
||||
df
|
||||
# need to make a couple of tweaks
|
||||
cat > ${mntpt}/boot/loader.conf <<EOF
|
||||
zfs_load=YES
|
||||
@ -188,7 +183,6 @@ opensolaris_load=YES
|
||||
EOF
|
||||
cp /boot/kernel/zfs.ko ${mntpt}/boot/kernel/zfs.ko
|
||||
cp /boot/kernel/opensolaris.ko ${mntpt}/boot/kernel/opensolaris.ko
|
||||
ls -las ${mntpt}/boot
|
||||
# end tweaks
|
||||
zfs umount -f ${pool}/ROOT/default
|
||||
zfs set mountpoint=none ${pool}/ROOT/default
|
||||
@ -208,43 +202,400 @@ mk_nogeli_mbr_ufs_legacy() {
|
||||
EOF
|
||||
makefs -t ffs -B little -s 200m ${img}.s1a ${src}
|
||||
mkimg -s bsd -b ${src}/boot/boot -p freebsd-ufs:=${img}.s1a -o ${img}.s1
|
||||
mkimg -a 1 ${bootmbr} -s mbr -b ${src}/boot/boot0sio -p freebsd:=${img}.s1 -o ${img}
|
||||
mkimg -a 1 -s mbr -b ${src}/boot/boot0sio -p freebsd:=${img}.s1 -o ${img}
|
||||
rm -f ${src}/etc/fstab
|
||||
}
|
||||
|
||||
mk_nogeli_mbr_ufs_uefi() {
|
||||
src=$1
|
||||
img=$2
|
||||
|
||||
cat > ${src}/etc/fstab <<EOF
|
||||
/dev/ada0s1a / ufs rw 1 1
|
||||
EOF
|
||||
cp ${src}/boot/boot1.efifat ${img}.s1
|
||||
makefs -t ffs -B little -s 200m ${img}.s2a ${src}
|
||||
mkimg -s bsd -p freebsd-ufs:=${img}.s2a -o ${img}.s2
|
||||
mkimg -a 1 -s mbr -p efi:=${img}.s1 -p freebsd:=${img}.s2 -o ${img}
|
||||
rm -f ${src}/etc/fstab
|
||||
}
|
||||
|
||||
mk_nogeli_mbr_ufs_both() {
|
||||
src=$1
|
||||
img=$2
|
||||
|
||||
cat > ${src}/etc/fstab <<EOF
|
||||
/dev/ada0s1a / ufs rw 1 1
|
||||
EOF
|
||||
cp ${src}/boot/boot1.efifat ${img}.s1
|
||||
makefs -t ffs -B little -s 200m ${img}.s2a ${src}
|
||||
mkimg -s bsd -b ${src}/boot/boot -p freebsd-ufs:=${img}.s2a -o ${img}.s2
|
||||
mkimg -a 2 -s mbr -b ${src}/boot/mbr -p efi:=${img}.s1 -p freebsd:=${img}.s2 -o ${img}
|
||||
rm -f ${src}/etc/fstab
|
||||
}
|
||||
|
||||
mk_nogeli_mbr_zfs_legacy() {
|
||||
src=$1
|
||||
img=$2
|
||||
mntpt=$3
|
||||
geli=$4
|
||||
scheme=$5
|
||||
fs=$6
|
||||
bios=$7
|
||||
pool=nogeli-mbr-zfs-legacy
|
||||
|
||||
dd if=/dev/zero of=${img} count=1 seek=$((200 * 1024 * 1024 / 512))
|
||||
md=$(mdconfig -f ${img})
|
||||
gpart create -s mbr ${md}
|
||||
gpart add -t freebsd ${md}
|
||||
gpart set -a active -i 1 ${md}
|
||||
gpart create -s bsd ${md}s1
|
||||
gpart add -t freebsd-zfs ${md}s1
|
||||
# install-boot will make this bootable
|
||||
zpool create -O mountpoint=none -R ${mntpt} ${pool} ${md}s1a
|
||||
zpool set bootfs=${pool} ${pool}
|
||||
zfs create -po mountpoint=/ ${pool}/ROOT/default
|
||||
# NB: The online guides go nuts customizing /var and other mountpoints here, no need
|
||||
cpsys ${src} ${mntpt}
|
||||
# need to make a couple of tweaks
|
||||
cat > ${mntpt}/boot/loader.conf <<EOF
|
||||
zfs_load=YES
|
||||
opensolaris_load=YES
|
||||
EOF
|
||||
cp /boot/kernel/zfs.ko ${mntpt}/boot/kernel/zfs.ko
|
||||
cp /boot/kernel/opensolaris.ko ${mntpt}/boot/kernel/opensolaris.ko
|
||||
# end tweaks
|
||||
zfs umount -f ${pool}/ROOT/default
|
||||
zfs set mountpoint=none ${pool}/ROOT/default
|
||||
zpool set bootfs=${pool}/ROOT/default ${pool}
|
||||
zpool set autoexpand=on ${pool}
|
||||
zpool export ${pool}
|
||||
${SRCTOP}/tools/boot/install-boot.sh -g ${geli} -s ${scheme} -f ${fs} -b ${bios} -d ${src} ${md}
|
||||
mdconfig -d -u ${md}
|
||||
}
|
||||
|
||||
mk_nogeli_mbr_zfs_uefi() {
|
||||
src=$1
|
||||
img=$2
|
||||
mntpt=$3
|
||||
geli=$4
|
||||
scheme=$5
|
||||
fs=$6
|
||||
bios=$7
|
||||
pool=nogeli-mbr-zfs-uefi
|
||||
|
||||
dd if=/dev/zero of=${img} count=1 seek=$((200 * 1024 * 1024 / 512))
|
||||
md=$(mdconfig -f ${img})
|
||||
gpart create -s mbr ${md}
|
||||
gpart add -t \!239 -s 800k ${md}
|
||||
gpart add -t freebsd ${md}
|
||||
gpart set -a active -i 2 ${md}
|
||||
gpart create -s bsd ${md}s2
|
||||
gpart add -t freebsd-zfs ${md}s2
|
||||
# install-boot will make this bootable
|
||||
zpool create -O mountpoint=none -R ${mntpt} ${pool} ${md}s2a
|
||||
zpool set bootfs=${pool} ${pool}
|
||||
zfs create -po mountpoint=/ ${pool}/ROOT/default
|
||||
# NB: The online guides go nuts customizing /var and other mountpoints here, no need
|
||||
cpsys ${src} ${mntpt}
|
||||
# need to make a couple of tweaks
|
||||
cat > ${mntpt}/boot/loader.conf <<EOF
|
||||
zfs_load=YES
|
||||
opensolaris_load=YES
|
||||
EOF
|
||||
cp /boot/kernel/zfs.ko ${mntpt}/boot/kernel/zfs.ko
|
||||
cp /boot/kernel/opensolaris.ko ${mntpt}/boot/kernel/opensolaris.ko
|
||||
# end tweaks
|
||||
zfs umount -f ${pool}/ROOT/default
|
||||
zfs set mountpoint=none ${pool}/ROOT/default
|
||||
zpool set bootfs=${pool}/ROOT/default ${pool}
|
||||
zpool set autoexpand=on ${pool}
|
||||
zpool export ${pool}
|
||||
${SRCTOP}/tools/boot/install-boot.sh -g ${geli} -s ${scheme} -f ${fs} -b ${bios} -d ${src} ${md}
|
||||
mdconfig -d -u ${md}
|
||||
}
|
||||
|
||||
mk_nogeli_mbr_zfs_both() {
|
||||
src=$1
|
||||
img=$2
|
||||
mntpt=$3
|
||||
geli=$4
|
||||
scheme=$5
|
||||
fs=$6
|
||||
bios=$7
|
||||
pool=nogeli-mbr-zfs-both
|
||||
|
||||
dd if=/dev/zero of=${img} count=1 seek=$((200 * 1024 * 1024 / 512))
|
||||
md=$(mdconfig -f ${img})
|
||||
gpart create -s mbr ${md}
|
||||
gpart add -t \!239 -s 800k ${md}
|
||||
gpart add -t freebsd ${md}
|
||||
gpart set -a active -i 2 ${md}
|
||||
gpart create -s bsd ${md}s2
|
||||
gpart add -t freebsd-zfs ${md}s2
|
||||
# install-boot will make this bootable
|
||||
zpool create -O mountpoint=none -R ${mntpt} ${pool} ${md}s2a
|
||||
zpool set bootfs=${pool} ${pool}
|
||||
zfs create -po mountpoint=/ ${pool}/ROOT/default
|
||||
# NB: The online guides go nuts customizing /var and other mountpoints here, no need
|
||||
cpsys ${src} ${mntpt}
|
||||
# need to make a couple of tweaks
|
||||
cat > ${mntpt}/boot/loader.conf <<EOF
|
||||
zfs_load=YES
|
||||
opensolaris_load=YES
|
||||
EOF
|
||||
cp /boot/kernel/zfs.ko ${mntpt}/boot/kernel/zfs.ko
|
||||
cp /boot/kernel/opensolaris.ko ${mntpt}/boot/kernel/opensolaris.ko
|
||||
# end tweaks
|
||||
zfs umount -f ${pool}/ROOT/default
|
||||
zfs set mountpoint=none ${pool}/ROOT/default
|
||||
zpool set bootfs=${pool}/ROOT/default ${pool}
|
||||
zpool set autoexpand=on ${pool}
|
||||
zpool export ${pool}
|
||||
${SRCTOP}/tools/boot/install-boot.sh -g ${geli} -s ${scheme} -f ${fs} -b ${bios} -d ${src} ${md}
|
||||
mdconfig -d -u ${md}
|
||||
}
|
||||
|
||||
mk_geli_gpt_ufs_legacy() {
|
||||
src=$1
|
||||
img=$2
|
||||
mntpt=$3
|
||||
geli=$4
|
||||
scheme=$5
|
||||
fs=$6
|
||||
bios=$7
|
||||
|
||||
dd if=/dev/zero of=${img} count=1 seek=$(( 200 * 1024 * 1024 / 512 ))
|
||||
md=$(mdconfig -f ${img})
|
||||
gpart create -s gpt ${md}
|
||||
gpart add -t freebsd-boot -s 400k -a 4k ${md} # <= ~540k
|
||||
gpart add -t freebsd-ufs -l root $md
|
||||
# install-boot will make this bootable
|
||||
echo passphrase | geli init -bg -e AES-XTS -i 50000 -J - -l 256 -s 4096 ${md}p2
|
||||
echo passphrase | geli attach -j - ${md}p2
|
||||
newfs /dev/${md}p2.eli
|
||||
mount /dev/${md}p2.eli ${mntpt}
|
||||
cpsys ${src} ${mntpt}
|
||||
# need to make a couple of tweaks
|
||||
cat > ${mntpt}/boot/loader.conf <<EOF
|
||||
geom_eli_load=YES
|
||||
EOF
|
||||
cat > ${mntpt}/etc/fstab <<EOF
|
||||
/dev/ada0p2.eli / ufs rw 1 1
|
||||
EOF
|
||||
|
||||
cp /boot/kernel/geom_eli.ko ${mntpt}/boot/kernel/geom_eli.ko
|
||||
# end tweaks
|
||||
umount -f ${mntpt}
|
||||
geli detach ${md}p2
|
||||
${SRCTOP}/tools/boot/install-boot.sh -g ${geli} -s ${scheme} -f ${fs} -b ${bios} -d ${src} ${md}
|
||||
mdconfig -d -u ${md}
|
||||
}
|
||||
|
||||
mk_geli_gpt_ufs_uefi() {
|
||||
src=$1
|
||||
img=$2
|
||||
mntpt=$3
|
||||
geli=$4
|
||||
scheme=$5
|
||||
fs=$6
|
||||
bios=$7
|
||||
|
||||
dd if=/dev/zero of=${img} count=1 seek=$(( 200 * 1024 * 1024 / 512 ))
|
||||
md=$(mdconfig -f ${img})
|
||||
gpart create -s gpt ${md}
|
||||
gpart add -t efi -s 800k -a 4k ${md}
|
||||
gpart add -t freebsd-ufs -l root $md
|
||||
# install-boot will make this bootable
|
||||
echo passphrase | geli init -bg -e AES-XTS -i 50000 -J - -l 256 -s 4096 ${md}p2
|
||||
echo passphrase | geli attach -j - ${md}p2
|
||||
newfs /dev/${md}p2.eli
|
||||
mount /dev/${md}p2.eli ${mntpt}
|
||||
cpsys ${src} ${mntpt}
|
||||
# need to make a couple of tweaks
|
||||
cat > ${mntpt}/boot/loader.conf <<EOF
|
||||
geom_eli_load=YES
|
||||
EOF
|
||||
cat > ${mntpt}/etc/fstab <<EOF
|
||||
/dev/ada0p2.eli / ufs rw 1 1
|
||||
EOF
|
||||
|
||||
cp /boot/kernel/geom_eli.ko ${mntpt}/boot/kernel/geom_eli.ko
|
||||
# end tweaks
|
||||
umount -f ${mntpt}
|
||||
geli detach ${md}p2
|
||||
${SRCTOP}/tools/boot/install-boot.sh -g ${geli} -s ${scheme} -f ${fs} -b ${bios} -d ${src} ${md}
|
||||
mdconfig -d -u ${md}
|
||||
}
|
||||
|
||||
mk_geli_gpt_ufs_both() {
|
||||
src=$1
|
||||
img=$2
|
||||
mntpt=$3
|
||||
geli=$4
|
||||
scheme=$5
|
||||
fs=$6
|
||||
bios=$7
|
||||
|
||||
dd if=/dev/zero of=${img} count=1 seek=$(( 200 * 1024 * 1024 / 512 ))
|
||||
md=$(mdconfig -f ${img})
|
||||
gpart create -s gpt ${md}
|
||||
gpart add -t efi -s 800k -a 4k ${md}
|
||||
gpart add -t freebsd-boot -s 400k -a 4k ${md} # <= ~540k
|
||||
gpart add -t freebsd-ufs -l root $md
|
||||
# install-boot will make this bootable
|
||||
echo passphrase | geli init -bg -e AES-XTS -i 50000 -J - -l 256 -s 4096 ${md}p3
|
||||
echo passphrase | geli attach -j - ${md}p3
|
||||
newfs /dev/${md}p3.eli
|
||||
mount /dev/${md}p3.eli ${mntpt}
|
||||
cpsys ${src} ${mntpt}
|
||||
# need to make a couple of tweaks
|
||||
cat > ${mntpt}/boot/loader.conf <<EOF
|
||||
geom_eli_load=YES
|
||||
EOF
|
||||
cat > ${mntpt}/etc/fstab <<EOF
|
||||
/dev/ada0p3.eli / ufs rw 1 1
|
||||
EOF
|
||||
|
||||
cp /boot/kernel/geom_eli.ko ${mntpt}/boot/kernel/geom_eli.ko
|
||||
# end tweaks
|
||||
umount -f ${mntpt}
|
||||
geli detach ${md}p3
|
||||
${SRCTOP}/tools/boot/install-boot.sh -g ${geli} -s ${scheme} -f ${fs} -b ${bios} -d ${src} ${md}
|
||||
mdconfig -d -u ${md}
|
||||
}
|
||||
|
||||
mk_geli_gpt_zfs_legacy() {
|
||||
src=$1
|
||||
img=$2
|
||||
mntpt=$3
|
||||
geli=$4
|
||||
scheme=$5
|
||||
fs=$6
|
||||
bios=$7
|
||||
pool=geli-gpt-zfs-legacy
|
||||
|
||||
dd if=/dev/zero of=${img} count=1 seek=$(( 200 * 1024 * 1024 / 512 ))
|
||||
md=$(mdconfig -f ${img})
|
||||
gpart create -s gpt ${md}
|
||||
gpart add -t freebsd-boot -s 400k -a 4k ${md} # <= ~540k
|
||||
gpart add -t freebsd-zfs -l root $md
|
||||
# install-boot will make this bootable
|
||||
echo passphrase | geli init -bg -e AES-XTS -i 50000 -J - -l 256 -s 4096 ${md}p2
|
||||
echo passphrase | geli attach -j - ${md}p2
|
||||
zpool create -O mountpoint=none -R ${mntpt} ${pool} ${md}p2.eli
|
||||
zpool set bootfs=${pool} ${pool}
|
||||
zfs create -po mountpoint=/ ${pool}/ROOT/default
|
||||
# NB: The online guides go nuts customizing /var and other mountpoints here, no need
|
||||
cpsys ${src} ${mntpt}
|
||||
# need to make a couple of tweaks
|
||||
cat > ${mntpt}/boot/loader.conf <<EOF
|
||||
zfs_load=YES
|
||||
opensolaris_load=YES
|
||||
geom_eli_load=YES
|
||||
EOF
|
||||
cp /boot/kernel/zfs.ko ${mntpt}/boot/kernel/zfs.ko
|
||||
cp /boot/kernel/opensolaris.ko ${mntpt}/boot/kernel/opensolaris.ko
|
||||
cp /boot/kernel/geom_eli.ko ${mntpt}/boot/kernel/geom_eli.ko
|
||||
# end tweaks
|
||||
zfs umount -f ${pool}/ROOT/default
|
||||
zfs set mountpoint=none ${pool}/ROOT/default
|
||||
zpool set bootfs=${pool}/ROOT/default ${pool}
|
||||
zpool set autoexpand=on ${pool}
|
||||
zpool export ${pool}
|
||||
geli detach ${md}p2
|
||||
${SRCTOP}/tools/boot/install-boot.sh -g ${geli} -s ${scheme} -f ${fs} -b ${bios} -d ${src} ${md}
|
||||
mdconfig -d -u ${md}
|
||||
}
|
||||
|
||||
mk_geli_gpt_zfs_uefi() {
|
||||
src=$1
|
||||
img=$2
|
||||
mntpt=$3
|
||||
geli=$4
|
||||
scheme=$5
|
||||
fs=$6
|
||||
bios=$7
|
||||
pool=geli-gpt-zfs-uefi
|
||||
|
||||
dd if=/dev/zero of=${img} count=1 seek=$(( 200 * 1024 * 1024 / 512 ))
|
||||
md=$(mdconfig -f ${img})
|
||||
gpart create -s gpt ${md}
|
||||
gpart add -t efi -s 800k -a 4k ${md}
|
||||
gpart add -t freebsd-zfs -l root $md
|
||||
# install-boot will make this bootable
|
||||
echo passphrase | geli init -bg -e AES-XTS -i 50000 -J - -l 256 -s 4096 ${md}p2
|
||||
echo passphrase | geli attach -j - ${md}p2
|
||||
zpool create -O mountpoint=none -R ${mntpt} ${pool} ${md}p2.eli
|
||||
zpool set bootfs=${pool} ${pool}
|
||||
zfs create -po mountpoint=/ ${pool}/ROOT/default
|
||||
# NB: The online guides go nuts customizing /var and other mountpoints here, no need
|
||||
cpsys ${src} ${mntpt}
|
||||
# need to make a couple of tweaks
|
||||
cat > ${mntpt}/boot/loader.conf <<EOF
|
||||
zfs_load=YES
|
||||
opensolaris_load=YES
|
||||
geom_eli_load=YES
|
||||
EOF
|
||||
cp /boot/kernel/zfs.ko ${mntpt}/boot/kernel/zfs.ko
|
||||
cp /boot/kernel/opensolaris.ko ${mntpt}/boot/kernel/opensolaris.ko
|
||||
cp /boot/kernel/geom_eli.ko ${mntpt}/boot/kernel/geom_eli.ko
|
||||
# end tweaks
|
||||
zfs umount -f ${pool}/ROOT/default
|
||||
zfs set mountpoint=none ${pool}/ROOT/default
|
||||
zpool set bootfs=${pool}/ROOT/default ${pool}
|
||||
zpool set autoexpand=on ${pool}
|
||||
zpool export ${pool}
|
||||
geli detach ${md}p2
|
||||
${SRCTOP}/tools/boot/install-boot.sh -g ${geli} -s ${scheme} -f ${fs} -b ${bios} -d ${src} ${md}
|
||||
mdconfig -d -u ${md}
|
||||
}
|
||||
|
||||
mk_geli_gpt_zfs_both() {
|
||||
src=$1
|
||||
img=$2
|
||||
mntpt=$3
|
||||
geli=$4
|
||||
scheme=$5
|
||||
fs=$6
|
||||
bios=$7
|
||||
pool=geli-gpt-zfs-both
|
||||
|
||||
dd if=/dev/zero of=${img} count=1 seek=$(( 200 * 1024 * 1024 / 512 ))
|
||||
md=$(mdconfig -f ${img})
|
||||
gpart create -s gpt ${md}
|
||||
gpart add -t efi -s 800k -a 4k ${md}
|
||||
gpart add -t freebsd-boot -s 400k -a 4k ${md} # <= ~540k
|
||||
gpart add -t freebsd-zfs -l root $md
|
||||
# install-boot will make this bootable
|
||||
echo passphrase | geli init -bg -e AES-XTS -i 50000 -J - -l 256 -s 4096 ${md}p3
|
||||
echo passphrase | geli attach -j - ${md}p3
|
||||
zpool create -O mountpoint=none -R ${mntpt} ${pool} ${md}p3.eli
|
||||
zpool set bootfs=${pool} ${pool}
|
||||
zfs create -po mountpoint=/ ${pool}/ROOT/default
|
||||
# NB: The online guides go nuts customizing /var and other mountpoints here, no need
|
||||
cpsys ${src} ${mntpt}
|
||||
# need to make a couple of tweaks
|
||||
cat > ${mntpt}/boot/loader.conf <<EOF
|
||||
zfs_load=YES
|
||||
opensolaris_load=YES
|
||||
geom_eli_load=YES
|
||||
EOF
|
||||
cp /boot/kernel/zfs.ko ${mntpt}/boot/kernel/zfs.ko
|
||||
cp /boot/kernel/opensolaris.ko ${mntpt}/boot/kernel/opensolaris.ko
|
||||
cp /boot/kernel/geom_eli.ko ${mntpt}/boot/kernel/geom_eli.ko
|
||||
# end tweaks
|
||||
zfs umount -f ${pool}/ROOT/default
|
||||
zfs set mountpoint=none ${pool}/ROOT/default
|
||||
zpool set bootfs=${pool}/ROOT/default ${pool}
|
||||
zpool set autoexpand=on ${pool}
|
||||
zpool export ${pool}
|
||||
geli detach ${md}p3
|
||||
${SRCTOP}/tools/boot/install-boot.sh -g ${geli} -s ${scheme} -f ${fs} -b ${bios} -d ${src} ${md}
|
||||
mdconfig -d -u ${md}
|
||||
}
|
||||
|
||||
# GELI+MBR is not a valid configuration
|
||||
mk_geli_mbr_ufs_legacy() {
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user