Changeset View
Changeset View
Standalone View
Standalone View
tools/boot/rootgen.sh
Context not available. | |||||
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 | ||||
Context not available. | |||||
src=$1 | src=$1 | ||||
dst=$2 | dst=$2 | ||||
if [ "${do_boot1_efi}" -eq 1 ]; then | dd if=/dev/zero of=${dst} count=1 seek=$((100 * 1024 * 1024 / 512)) | ||||
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… | |||||
cp ${src}/boot/boot1.efifat ${dst} | md=$(mdconfig -f ${dst}) | ||||
else | newfs_msdos -F 32 -c 2 /dev/${md} | ||||
dd if=/dev/zero of=${dst} count=1 seek=$((100 * 1024 * 1024 / 512)) | mntpt=$(mktemp -d /tmp/stand-test.XXXXXX) | ||||
md=$(mdconfig -f ${dst}) | mount -t msdos /dev/${md} ${mntpt} | ||||
newfs_msdos -a 32 /dev/${md} | # mkdir -p ${mntpt}/efi/freebsd # not yet | ||||
mntpt=$(mktemp -d /tmp/stand-test.XXXXXX) | mkdir -p ${mntpt}/efi/boot | ||||
mount -t msdos /dev/${md} ${mntpt} | cp ${src}/boot/loader.efi ${mntpt}/efi/boot/bootx64.efi | ||||
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). | |||||
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.
| |||||
# mkdir -p ${mntpt}/efi/freebsd # not yet | umount ${mntpt} | ||||
mkdir -p ${mntpt}/efi/boot | rmdir ${mntpt} | ||||
cp ${src}/boot/loader.efi ${mntpt}/efi/boot/bootx64.efi | mdconfig -d -u ${md} | ||||
umount ${mntpt} | |||||
rmdir ${mntpt} | |||||
mdconfig -d -u ${md} | |||||
fi | |||||
} | } | ||||
mk_nogeli_gpt_ufs_legacy() { | mk_nogeli_gpt_ufs_legacy() { | ||||
Context not available. | |||||
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 | ||||
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… | |||||
Context not available. | |||||
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 | ||||
Context not available. | |||||
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 | ||||
Context not available. | |||||
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 | ||||
Done Inline Actionshere, and elsewhere, should be lower-case k. imp: here, and elsewhere, should be lower-case k.
| |||||
Context not available. | |||||
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-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 | ||||
Context not available. | |||||
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 | ||||
Context not available. | |||||
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 | ||||
Context not available. | |||||
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 | ||||
Context not available. |
why 100MB?