Changeset View
Changeset View
Standalone View
Standalone View
tools/boot/rootgen.sh
#!/bin/sh | #!/bin/sh | ||||
# $FreeBSD$ | # $FreeBSD$ | ||||
passphrase=passphrase | passphrase=passphrase | ||||
iterations=50000 | iterations=50000 | ||||
do_boot1_efi=0 | |||||
# | # | ||||
# Builds all the bat-shit crazy combinations we support booting from, | # Builds all the bat-shit crazy combinations we support booting from, | ||||
# at least for amd64. It assume you have a ~sane kernel in /boot/kernel | # at least for amd64. It assume you have a ~sane kernel in /boot/kernel | ||||
# and copies that into the ~150MB root images we create (we create the du | # and copies that into the ~150MB root images we create (we create the du | ||||
# size of the kernel + 20MB | # size of the kernel + 20MB | ||||
# | # | ||||
# Sad panda sez: this runs as root, but could be userland if someone | # Sad panda sez: this runs as root, but could be userland if someone | ||||
# creates userland geli and zfs tools. | # creates userland geli and zfs tools. | ||||
# | # | ||||
# This assumes an external prograam install-boot.sh which will install | # This assumes an external program install-boot.sh which will install | ||||
# the appropriate boot files in the appropriate locations. | # the appropriate boot files in the appropriate locations. | ||||
# | # | ||||
# These images assume ada0 will be the root image. We should likely | # These images assume ada0 will be the root image. We should likely | ||||
# use labels, but we don't. | # use labels, but we don't. | ||||
# | # | ||||
# ASsumes you've already rebuilt... maybe bad? Also maybe bad: the env | # Assumes you've already rebuilt... maybe bad? Also maybe bad: the env | ||||
# vars should likely be conditionally set to allow better automation. | # vars should likely be conditionally set to allow better automation. | ||||
# | # | ||||
cpsys() { | cpsys() { | ||||
src=$1 | src=$1 | ||||
dst=$2 | dst=$2 | ||||
# Copy kernel + boot loader | # Copy kernel + boot loader | ||||
(cd $src ; tar cf - .) | (cd $dst; tar xf -) | (cd $src ; tar cf - .) | (cd $dst; tar xf -) | ||||
} | } | ||||
make_esp() | |||||
{ | |||||
local src dst md mntpt | |||||
src=$1 | |||||
dst=$2 | |||||
if [ "${do_boot1_efi}" -eq 1 ]; then | |||||
cp ${src}/boot/boot1.efifat ${dst} | |||||
else | |||||
dd if=/dev/zero of=${dst} count=1 seek=$((100 * 1024 * 1024 / 512)) | |||||
md=$(mdconfig -f ${dst}) | |||||
newfs_msdos -a 32 /dev/${md} | |||||
mntpt=$(mktemp -d /tmp/stand-test.XXXXXX) | |||||
mount -t msdos /dev/${md} ${mntpt} | |||||
# mkdir -p ${mntpt}/efi/freebsd # not yet | |||||
mkdir -p ${mntpt}/efi/boot | |||||
cp ${src}/boot/loader.efi ${mntpt}/efi/boot/bootx64.efi | |||||
umount ${mntpt} | |||||
rmdir ${mntpt} | |||||
mdconfig -d -u ${md} | |||||
fi | |||||
} | |||||
mk_nogeli_gpt_ufs_legacy() { | mk_nogeli_gpt_ufs_legacy() { | ||||
imp: why 100MB? | |||||
Done Inline ActionsThat's something I need to update: it was originally because Windows uses 100MB, but I'll update it to use 35MB as in other places. bcran: That's something I need to update: it was originally because Windows uses 100MB, but I'll… | |||||
Done Inline ActionsIt would be nice to have this be its own function. imp: It would be nice to have this be its own function.
| |||||
src=$1 | src=$1 | ||||
img=$2 | img=$2 | ||||
cat > ${src}/etc/fstab <<EOF | cat > ${src}/etc/fstab <<EOF | ||||
/dev/ada0p2 / ufs rw 1 1 | /dev/ada0p2 / ufs rw 1 1 | ||||
EOF | EOF | ||||
Done Inline ActionsTODO: handle architectures other than amd64 (e.g. bootaa64.efi, bootia32.efi, bootarm.efi). bcran: TODO: handle architectures other than amd64 (e.g. bootaa64.efi, bootia32.efi, bootarm.efi). | |||||
makefs -t ffs -B little -s 200m ${img}.p2 ${src} | makefs -t ffs -B little -s 200m ${img}.p2 ${src} | ||||
mkimg -s gpt -b ${src}/boot/pmbr \ | mkimg -s gpt -b ${src}/boot/pmbr \ | ||||
-p freebsd-boot:=${src}/boot/gptboot \ | -p freebsd-boot:=${src}/boot/gptboot \ | ||||
-p freebsd-ufs:=${img}.p2 -o ${img} | -p freebsd-ufs:=${img}.p2 -o ${img} | ||||
Done Inline ActionsAnd another copy of this same code... imp: And another copy of this same code... | |||||
rm -f ${src}/etc/fstab | rm -f ${src}/etc/fstab | ||||
} | } | ||||
mk_nogeli_gpt_ufs_uefi() { | mk_nogeli_gpt_ufs_uefi() { | ||||
src=$1 | src=$1 | ||||
img=$2 | img=$2 | ||||
cat > ${src}/etc/fstab <<EOF | cat > ${src}/etc/fstab <<EOF | ||||
/dev/ada0p2 / ufs rw 1 1 | /dev/ada0p2 / ufs rw 1 1 | ||||
EOF | EOF | ||||
make_esp ${src} ${img}.p1 | # The smallest ESP (FAT32) filesystem is 33292 KB | ||||
make_esp_file ${img}.p1 33292 ${src} | |||||
makefs -t ffs -B little -s 200m ${img}.p2 ${src} | makefs -t ffs -B little -s 200m ${img}.p2 ${src} | ||||
mkimg -s gpt \ | mkimg -s gpt \ | ||||
-p efi:=${img}.p1 \ | -p efi:=${img}.p1 \ | ||||
-p freebsd-ufs:=${img}.p2 -o ${img} | -p freebsd-ufs:=${img}.p2 -o ${img} | ||||
rm -f ${src}/etc/fstab | rm -f ${src}/etc/fstab | ||||
} | } | ||||
mk_nogeli_gpt_ufs_both() { | mk_nogeli_gpt_ufs_both() { | ||||
src=$1 | src=$1 | ||||
img=$2 | img=$2 | ||||
cat > ${src}/etc/fstab <<EOF | cat > ${src}/etc/fstab <<EOF | ||||
/dev/ada0p3 / ufs rw 1 1 | /dev/ada0p3 / ufs rw 1 1 | ||||
EOF | EOF | ||||
make_esp ${src} ${img}.p1 | make_esp_file ${img}.p1 33292 ${src} | ||||
makefs -t ffs -B little -s 200m ${img}.p3 ${src} | makefs -t ffs -B little -s 200m ${img}.p3 ${src} | ||||
# p1 is boot for uefi, p2 is boot for gpt, p3 is / | # p1 is boot for uefi, p2 is boot for gpt, p3 is / | ||||
mkimg -b ${src}/boot/pmbr -s gpt \ | mkimg -b ${src}/boot/pmbr -s gpt \ | ||||
-p efi:=${img}.p1 \ | -p efi:=${img}.p1 \ | ||||
-p freebsd-boot:=${src}/boot/gptboot \ | -p freebsd-boot:=${src}/boot/gptboot \ | ||||
-p freebsd-ufs:=${img}.p3 \ | -p freebsd-ufs:=${img}.p3 \ | ||||
-o ${img} | -o ${img} | ||||
rm -f ${src}/etc/fstab | rm -f ${src}/etc/fstab | ||||
▲ Show 20 Lines • Show All 45 Lines • ▼ Show 20 Lines | mk_nogeli_gpt_zfs_uefi() { | ||||
scheme=$5 | scheme=$5 | ||||
fs=$6 | fs=$6 | ||||
bios=$7 | bios=$7 | ||||
pool=nogeli-gpt-zfs-uefi | pool=nogeli-gpt-zfs-uefi | ||||
dd if=/dev/zero of=${img} count=1 seek=$((200 * 1024 * 1024 / 512)) | dd if=/dev/zero of=${img} count=1 seek=$((200 * 1024 * 1024 / 512)) | ||||
md=$(mdconfig -f ${img}) | md=$(mdconfig -f ${img}) | ||||
gpart create -s gpt ${md} | gpart create -s gpt ${md} | ||||
gpart add -t efi -s 800k -a 4k ${md} | gpart add -t efi -s 35M -a 4k ${md} | ||||
gpart add -t freebsd-zfs -l root $md | gpart add -t freebsd-zfs -l root $md | ||||
# install-boot will make this bootable | # install-boot will make this bootable | ||||
zpool create -O mountpoint=none -R ${mntpt} ${pool} ${md}p2 | zpool create -O mountpoint=none -R ${mntpt} ${pool} ${md}p2 | ||||
zpool set bootfs=${pool} ${pool} | zpool set bootfs=${pool} ${pool} | ||||
zfs create -po mountpoint=/ ${pool}/ROOT/default | zfs create -po mountpoint=/ ${pool}/ROOT/default | ||||
# NB: The online guides go nuts customizing /var and other mountpoints here, no need | # NB: The online guides go nuts customizing /var and other mountpoints here, no need | ||||
cpsys ${src} ${mntpt} | cpsys ${src} ${mntpt} | ||||
# need to make a couple of tweaks | # need to make a couple of tweaks | ||||
Show All 21 Lines | mk_nogeli_gpt_zfs_both() { | ||||
scheme=$5 | scheme=$5 | ||||
fs=$6 | fs=$6 | ||||
bios=$7 | bios=$7 | ||||
pool=nogeli-gpt-zfs-both | pool=nogeli-gpt-zfs-both | ||||
dd if=/dev/zero of=${img} count=1 seek=$((200 * 1024 * 1024 / 512)) | dd if=/dev/zero of=${img} count=1 seek=$((200 * 1024 * 1024 / 512)) | ||||
md=$(mdconfig -f ${img}) | md=$(mdconfig -f ${img}) | ||||
gpart create -s gpt ${md} | gpart create -s gpt ${md} | ||||
gpart add -t efi -s 800k -a 4k ${md} | gpart add -t efi -s 35M -a 4k ${md} | ||||
Done Inline ActionsPicking one: it may make sense to define a global variable for this value, and use it throughout. imp: Picking one: it may make sense to define a global variable for this value, and use it… | |||||
gpart add -t freebsd-boot -s 400k -a 4k ${md} # <= ~540k | gpart add -t freebsd-boot -s 400k -a 4k ${md} # <= ~540k | ||||
gpart add -t freebsd-zfs -l root $md | gpart add -t freebsd-zfs -l root $md | ||||
# install-boot will make this bootable | # install-boot will make this bootable | ||||
zpool create -O mountpoint=none -R ${mntpt} ${pool} ${md}p3 | zpool create -O mountpoint=none -R ${mntpt} ${pool} ${md}p3 | ||||
zpool set bootfs=${pool} ${pool} | zpool set bootfs=${pool} ${pool} | ||||
zfs create -po mountpoint=/ ${pool}/ROOT/default | zfs create -po mountpoint=/ ${pool}/ROOT/default | ||||
# NB: The online guides go nuts customizing /var and other mountpoints here, no need | # NB: The online guides go nuts customizing /var and other mountpoints here, no need | ||||
cpsys ${src} ${mntpt} | cpsys ${src} ${mntpt} | ||||
Show All 29 Lines | |||||
mk_nogeli_mbr_ufs_uefi() { | mk_nogeli_mbr_ufs_uefi() { | ||||
src=$1 | src=$1 | ||||
img=$2 | img=$2 | ||||
cat > ${src}/etc/fstab <<EOF | cat > ${src}/etc/fstab <<EOF | ||||
/dev/ada0s2a / ufs rw 1 1 | /dev/ada0s2a / ufs rw 1 1 | ||||
EOF | EOF | ||||
make_esp ${src} ${img}.s1 | make_esp_file ${img}.s1 33292 ${src} | ||||
makefs -t ffs -B little -s 200m ${img}.s2a ${src} | makefs -t ffs -B little -s 200m ${img}.s2a ${src} | ||||
mkimg -s bsd -p freebsd-ufs:=${img}.s2a -o ${img}.s2 | 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} | mkimg -a 1 -s mbr -p efi:=${img}.s1 -p freebsd:=${img}.s2 -o ${img} | ||||
rm -f ${src}/etc/fstab | rm -f ${src}/etc/fstab | ||||
} | } | ||||
mk_nogeli_mbr_ufs_both() { | mk_nogeli_mbr_ufs_both() { | ||||
src=$1 | src=$1 | ||||
img=$2 | img=$2 | ||||
cat > ${src}/etc/fstab <<EOF | cat > ${src}/etc/fstab <<EOF | ||||
/dev/ada0s2a / ufs rw 1 1 | /dev/ada0s2a / ufs rw 1 1 | ||||
EOF | EOF | ||||
make_esp ${src} ${img}.s1 | make_esp_file ${img}.s1 33292 ${src} | ||||
makefs -t ffs -B little -s 200m ${img}.s2a ${src} | 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 -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} | mkimg -a 2 -s mbr -b ${src}/boot/mbr -p efi:=${img}.s1 -p freebsd:=${img}.s2 -o ${img} | ||||
rm -f ${src}/etc/fstab | rm -f ${src}/etc/fstab | ||||
} | } | ||||
mk_nogeli_mbr_zfs_legacy() { | mk_nogeli_mbr_zfs_legacy() { | ||||
src=$1 | src=$1 | ||||
▲ Show 20 Lines • Show All 43 Lines • ▼ Show 20 Lines | mk_nogeli_mbr_zfs_uefi() { | ||||
scheme=$5 | scheme=$5 | ||||
fs=$6 | fs=$6 | ||||
bios=$7 | bios=$7 | ||||
pool=nogeli-mbr-zfs-uefi | pool=nogeli-mbr-zfs-uefi | ||||
dd if=/dev/zero of=${img} count=1 seek=$((200 * 1024 * 1024 / 512)) | dd if=/dev/zero of=${img} count=1 seek=$((200 * 1024 * 1024 / 512)) | ||||
md=$(mdconfig -f ${img}) | md=$(mdconfig -f ${img}) | ||||
gpart create -s mbr ${md} | gpart create -s mbr ${md} | ||||
gpart add -t \!239 -s 800k ${md} | gpart add -t efi -s 35M ${md} | ||||
gpart add -t freebsd ${md} | gpart add -t freebsd ${md} | ||||
gpart set -a active -i 2 ${md} | gpart set -a active -i 2 ${md} | ||||
gpart create -s bsd ${md}s2 | gpart create -s bsd ${md}s2 | ||||
gpart add -t freebsd-zfs ${md}s2 | gpart add -t freebsd-zfs ${md}s2 | ||||
# install-boot will make this bootable | # install-boot will make this bootable | ||||
zpool create -O mountpoint=none -R ${mntpt} ${pool} ${md}s2a | zpool create -O mountpoint=none -R ${mntpt} ${pool} ${md}s2a | ||||
zpool set bootfs=${pool} ${pool} | zpool set bootfs=${pool} ${pool} | ||||
zfs create -po mountpoint=/ ${pool}/ROOT/default | zfs create -po mountpoint=/ ${pool}/ROOT/default | ||||
Show All 24 Lines | mk_nogeli_mbr_zfs_both() { | ||||
scheme=$5 | scheme=$5 | ||||
fs=$6 | fs=$6 | ||||
bios=$7 | bios=$7 | ||||
pool=nogeli-mbr-zfs-both | pool=nogeli-mbr-zfs-both | ||||
dd if=/dev/zero of=${img} count=1 seek=$((200 * 1024 * 1024 / 512)) | dd if=/dev/zero of=${img} count=1 seek=$((200 * 1024 * 1024 / 512)) | ||||
md=$(mdconfig -f ${img}) | md=$(mdconfig -f ${img}) | ||||
gpart create -s mbr ${md} | gpart create -s mbr ${md} | ||||
gpart add -t \!239 -s 800k ${md} | gpart add -t efi -s 35M ${md} | ||||
gpart add -t freebsd ${md} | gpart add -t freebsd ${md} | ||||
gpart set -a active -i 2 ${md} | gpart set -a active -i 2 ${md} | ||||
gpart create -s bsd ${md}s2 | gpart create -s bsd ${md}s2 | ||||
gpart add -t freebsd-zfs ${md}s2 | gpart add -t freebsd-zfs ${md}s2 | ||||
# install-boot will make this bootable | # install-boot will make this bootable | ||||
zpool create -O mountpoint=none -R ${mntpt} ${pool} ${md}s2a | zpool create -O mountpoint=none -R ${mntpt} ${pool} ${md}s2a | ||||
zpool set bootfs=${pool} ${pool} | zpool set bootfs=${pool} ${pool} | ||||
zfs create -po mountpoint=/ ${pool}/ROOT/default | zfs create -po mountpoint=/ ${pool}/ROOT/default | ||||
▲ Show 20 Lines • Show All 59 Lines • ▼ Show 20 Lines | mk_geli_gpt_ufs_uefi() { | ||||
geli=$4 | geli=$4 | ||||
scheme=$5 | scheme=$5 | ||||
fs=$6 | fs=$6 | ||||
bios=$7 | bios=$7 | ||||
dd if=/dev/zero of=${img} count=1 seek=$(( 200 * 1024 * 1024 / 512 )) | dd if=/dev/zero of=${img} count=1 seek=$(( 200 * 1024 * 1024 / 512 )) | ||||
md=$(mdconfig -f ${img}) | md=$(mdconfig -f ${img}) | ||||
gpart create -s gpt ${md} | gpart create -s gpt ${md} | ||||
gpart add -t efi -s 800k -a 4k ${md} | gpart add -t efi -s 35M -a 4k ${md} | ||||
Done Inline Actionshere, and elsewhere, should be lower-case k. imp: here, and elsewhere, should be lower-case k.
| |||||
gpart add -t freebsd-ufs -l root $md | gpart add -t freebsd-ufs -l root $md | ||||
# install-boot will make this bootable | # install-boot will make this bootable | ||||
echo ${passphrase} | geli init -bg -e AES-XTS -i ${iterations} -J - -l 256 -s 4096 ${md}p2 | echo ${passphrase} | geli init -bg -e AES-XTS -i ${iterations} -J - -l 256 -s 4096 ${md}p2 | ||||
echo ${passphrase} | geli attach -j - ${md}p2 | echo ${passphrase} | geli attach -j - ${md}p2 | ||||
newfs /dev/${md}p2.eli | newfs /dev/${md}p2.eli | ||||
mount /dev/${md}p2.eli ${mntpt} | mount /dev/${md}p2.eli ${mntpt} | ||||
cpsys ${src} ${mntpt} | cpsys ${src} ${mntpt} | ||||
# need to make a couple of tweaks | # need to make a couple of tweaks | ||||
Show All 19 Lines | mk_geli_gpt_ufs_both() { | ||||
geli=$4 | geli=$4 | ||||
scheme=$5 | scheme=$5 | ||||
fs=$6 | fs=$6 | ||||
bios=$7 | bios=$7 | ||||
dd if=/dev/zero of=${img} count=1 seek=$(( 200 * 1024 * 1024 / 512 )) | dd if=/dev/zero of=${img} count=1 seek=$(( 200 * 1024 * 1024 / 512 )) | ||||
md=$(mdconfig -f ${img}) | md=$(mdconfig -f ${img}) | ||||
gpart create -s gpt ${md} | gpart create -s gpt ${md} | ||||
gpart add -t efi -s 800k -a 4k ${md} | gpart add -t efi -s 35M -a 4k ${md} | ||||
gpart add -t freebsd-boot -s 400k -a 4k ${md} # <= ~540k | gpart add -t freebsd-boot -s 400k -a 4k ${md} # <= ~540k | ||||
gpart add -t freebsd-ufs -l root $md | gpart add -t freebsd-ufs -l root $md | ||||
# install-boot will make this bootable | # install-boot will make this bootable | ||||
echo ${passphrase} | geli init -bg -e AES-XTS -i ${iterations} -J - -l 256 -s 4096 ${md}p3 | echo ${passphrase} | geli init -bg -e AES-XTS -i ${iterations} -J - -l 256 -s 4096 ${md}p3 | ||||
echo ${passphrase} | geli attach -j - ${md}p3 | echo ${passphrase} | geli attach -j - ${md}p3 | ||||
newfs /dev/${md}p3.eli | newfs /dev/${md}p3.eli | ||||
mount /dev/${md}p3.eli ${mntpt} | mount /dev/${md}p3.eli ${mntpt} | ||||
cpsys ${src} ${mntpt} | cpsys ${src} ${mntpt} | ||||
▲ Show 20 Lines • Show All 64 Lines • ▼ Show 20 Lines | mk_geli_gpt_zfs_uefi() { | ||||
scheme=$5 | scheme=$5 | ||||
fs=$6 | fs=$6 | ||||
bios=$7 | bios=$7 | ||||
pool=geli-gpt-zfs-uefi | pool=geli-gpt-zfs-uefi | ||||
dd if=/dev/zero of=${img} count=1 seek=$(( 200 * 1024 * 1024 / 512 )) | dd if=/dev/zero of=${img} count=1 seek=$(( 200 * 1024 * 1024 / 512 )) | ||||
md=$(mdconfig -f ${img}) | md=$(mdconfig -f ${img}) | ||||
gpart create -s gpt ${md} | gpart create -s gpt ${md} | ||||
gpart add -t efi -s 800k -a 4k ${md} | gpart add -t efi -s 35M -a 4k ${md} | ||||
gpart add -t freebsd-zfs -l root $md | gpart add -t freebsd-zfs -l root $md | ||||
# install-boot will make this bootable | # install-boot will make this bootable | ||||
echo ${passphrase} | geli init -bg -e AES-XTS -i ${iterations} -J - -l 256 -s 4096 ${md}p2 | echo ${passphrase} | geli init -bg -e AES-XTS -i ${iterations} -J - -l 256 -s 4096 ${md}p2 | ||||
echo ${passphrase} | geli attach -j - ${md}p2 | echo ${passphrase} | geli attach -j - ${md}p2 | ||||
zpool create -O mountpoint=none -R ${mntpt} ${pool} ${md}p2.eli | zpool create -O mountpoint=none -R ${mntpt} ${pool} ${md}p2.eli | ||||
zpool set bootfs=${pool} ${pool} | zpool set bootfs=${pool} ${pool} | ||||
zfs create -po mountpoint=/ ${pool}/ROOT/default | zfs create -po mountpoint=/ ${pool}/ROOT/default | ||||
# NB: The online guides go nuts customizing /var and other mountpoints here, no need | # NB: The online guides go nuts customizing /var and other mountpoints here, no need | ||||
Show All 26 Lines | mk_geli_gpt_zfs_both() { | ||||
scheme=$5 | scheme=$5 | ||||
fs=$6 | fs=$6 | ||||
bios=$7 | bios=$7 | ||||
pool=geli-gpt-zfs-both | pool=geli-gpt-zfs-both | ||||
dd if=/dev/zero of=${img} count=1 seek=$(( 200 * 1024 * 1024 / 512 )) | dd if=/dev/zero of=${img} count=1 seek=$(( 200 * 1024 * 1024 / 512 )) | ||||
md=$(mdconfig -f ${img}) | md=$(mdconfig -f ${img}) | ||||
gpart create -s gpt ${md} | gpart create -s gpt ${md} | ||||
gpart add -t efi -s 800k -a 4k ${md} | gpart add -t efi -s 35M -a 4k ${md} | ||||
gpart add -t freebsd-boot -s 400k -a 4k ${md} # <= ~540k | gpart add -t freebsd-boot -s 400k -a 4k ${md} # <= ~540k | ||||
gpart add -t freebsd-zfs -l root $md | gpart add -t freebsd-zfs -l root $md | ||||
# install-boot will make this bootable | # install-boot will make this bootable | ||||
echo ${passphrase} | geli init -bg -e AES-XTS -i ${iterations} -J - -l 256 -s 4096 ${md}p3 | echo ${passphrase} | geli init -bg -e AES-XTS -i ${iterations} -J - -l 256 -s 4096 ${md}p3 | ||||
echo ${passphrase} | geli attach -j - ${md}p3 | echo ${passphrase} | geli attach -j - ${md}p3 | ||||
zpool create -O mountpoint=none -R ${mntpt} ${pool} ${md}p3.eli | zpool create -O mountpoint=none -R ${mntpt} ${pool} ${md}p3.eli | ||||
zpool set bootfs=${pool} ${pool} | zpool set bootfs=${pool} ${pool} | ||||
zfs create -po mountpoint=/ ${pool}/ROOT/default | zfs create -po mountpoint=/ ${pool}/ROOT/default | ||||
▲ Show 20 Lines • Show All 288 Lines • Show Last 20 Lines |
why 100MB?