Changeset View
Changeset View
Standalone View
Standalone View
tools/boot/rootgen.sh
Show All 21 Lines | |||||
# | # | ||||
# 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. | ||||
# | # | ||||
. $(dirname $0)/install-boot.sh | |||||
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 -) | ||||
} | } | ||||
▲ Show 20 Lines • Show All 73 Lines • ▼ Show 20 Lines | EOF | ||||
cp /boot/kernel/zfs.ko ${mntpt}/boot/kernel/zfs.ko | cp /boot/kernel/zfs.ko ${mntpt}/boot/kernel/zfs.ko | ||||
cp /boot/kernel/opensolaris.ko ${mntpt}/boot/kernel/opensolaris.ko | cp /boot/kernel/opensolaris.ko ${mntpt}/boot/kernel/opensolaris.ko | ||||
# end tweaks | # end tweaks | ||||
zfs umount -f ${pool}/ROOT/default | zfs umount -f ${pool}/ROOT/default | ||||
zfs set mountpoint=none ${pool}/ROOT/default | zfs set mountpoint=none ${pool}/ROOT/default | ||||
zpool set bootfs=${pool}/ROOT/default ${pool} | zpool set bootfs=${pool}/ROOT/default ${pool} | ||||
zpool set autoexpand=on ${pool} | zpool set autoexpand=on ${pool} | ||||
zpool export ${pool} | zpool export ${pool} | ||||
${SRCTOP}/tools/boot/install-boot.sh -g ${geli} -s ${scheme} -f ${fs} -b ${bios} -d ${src} ${md} | ${SRCTOP}/tools/boot/install-boot.sh -n -g ${geli} -s ${scheme} -f ${fs} -b ${bios} -d ${src} ${md} | ||||
mdconfig -d -u ${md} | mdconfig -d -u ${md} | ||||
} | } | ||||
mk_nogeli_gpt_zfs_uefi() { | mk_nogeli_gpt_zfs_uefi() { | ||||
src=$1 | src=$1 | ||||
img=$2 | img=$2 | ||||
mntpt=$3 | mntpt=$3 | ||||
geli=$4 | geli=$4 | ||||
Show All 21 Lines | EOF | ||||
cp /boot/kernel/zfs.ko ${mntpt}/boot/kernel/zfs.ko | cp /boot/kernel/zfs.ko ${mntpt}/boot/kernel/zfs.ko | ||||
cp /boot/kernel/opensolaris.ko ${mntpt}/boot/kernel/opensolaris.ko | cp /boot/kernel/opensolaris.ko ${mntpt}/boot/kernel/opensolaris.ko | ||||
# end tweaks | # end tweaks | ||||
zfs umount -f ${pool}/ROOT/default | zfs umount -f ${pool}/ROOT/default | ||||
zfs set mountpoint=none ${pool}/ROOT/default | zfs set mountpoint=none ${pool}/ROOT/default | ||||
zpool set bootfs=${pool}/ROOT/default ${pool} | zpool set bootfs=${pool}/ROOT/default ${pool} | ||||
zpool set autoexpand=on ${pool} | zpool set autoexpand=on ${pool} | ||||
zpool export ${pool} | zpool export ${pool} | ||||
${SRCTOP}/tools/boot/install-boot.sh -g ${geli} -s ${scheme} -f ${fs} -b ${bios} -d ${src} ${md} | ${SRCTOP}/tools/boot/install-boot.sh -n -g ${geli} -s ${scheme} -f ${fs} -b ${bios} -d ${src} ${md} | ||||
mdconfig -d -u ${md} | mdconfig -d -u ${md} | ||||
} | } | ||||
mk_nogeli_gpt_zfs_both() { | mk_nogeli_gpt_zfs_both() { | ||||
src=$1 | src=$1 | ||||
img=$2 | img=$2 | ||||
mntpt=$3 | mntpt=$3 | ||||
geli=$4 | geli=$4 | ||||
Show All 22 Lines | EOF | ||||
cp /boot/kernel/zfs.ko ${mntpt}/boot/kernel/zfs.ko | cp /boot/kernel/zfs.ko ${mntpt}/boot/kernel/zfs.ko | ||||
cp /boot/kernel/opensolaris.ko ${mntpt}/boot/kernel/opensolaris.ko | cp /boot/kernel/opensolaris.ko ${mntpt}/boot/kernel/opensolaris.ko | ||||
# end tweaks | # end tweaks | ||||
zfs umount -f ${pool}/ROOT/default | zfs umount -f ${pool}/ROOT/default | ||||
zfs set mountpoint=none ${pool}/ROOT/default | zfs set mountpoint=none ${pool}/ROOT/default | ||||
zpool set bootfs=${pool}/ROOT/default ${pool} | zpool set bootfs=${pool}/ROOT/default ${pool} | ||||
zpool set autoexpand=on ${pool} | zpool set autoexpand=on ${pool} | ||||
zpool export ${pool} | zpool export ${pool} | ||||
${SRCTOP}/tools/boot/install-boot.sh -g ${geli} -s ${scheme} -f ${fs} -b ${bios} -d ${src} ${md} | ${SRCTOP}/tools/boot/install-boot.sh -n -g ${geli} -s ${scheme} -f ${fs} -b ${bios} -d ${src} ${md} | ||||
mdconfig -d -u ${md} | mdconfig -d -u ${md} | ||||
} | } | ||||
mk_nogeli_mbr_ufs_legacy() { | mk_nogeli_mbr_ufs_legacy() { | ||||
src=$1 | src=$1 | ||||
img=$2 | img=$2 | ||||
cat > ${src}/etc/fstab <<EOF | cat > ${src}/etc/fstab <<EOF | ||||
▲ Show 20 Lines • Show All 64 Lines • ▼ Show 20 Lines | EOF | ||||
cp /boot/kernel/zfs.ko ${mntpt}/boot/kernel/zfs.ko | cp /boot/kernel/zfs.ko ${mntpt}/boot/kernel/zfs.ko | ||||
cp /boot/kernel/opensolaris.ko ${mntpt}/boot/kernel/opensolaris.ko | cp /boot/kernel/opensolaris.ko ${mntpt}/boot/kernel/opensolaris.ko | ||||
# end tweaks | # end tweaks | ||||
zfs umount -f ${pool}/ROOT/default | zfs umount -f ${pool}/ROOT/default | ||||
zfs set mountpoint=none ${pool}/ROOT/default | zfs set mountpoint=none ${pool}/ROOT/default | ||||
zpool set bootfs=${pool}/ROOT/default ${pool} | zpool set bootfs=${pool}/ROOT/default ${pool} | ||||
zpool set autoexpand=on ${pool} | zpool set autoexpand=on ${pool} | ||||
zpool export ${pool} | zpool export ${pool} | ||||
${SRCTOP}/tools/boot/install-boot.sh -g ${geli} -s ${scheme} -f ${fs} -b ${bios} -d ${src} ${md} | ${SRCTOP}/tools/boot/install-boot.sh -n -g ${geli} -s ${scheme} -f ${fs} -b ${bios} -d ${src} ${md} | ||||
mdconfig -d -u ${md} | mdconfig -d -u ${md} | ||||
} | } | ||||
mk_nogeli_mbr_zfs_uefi() { | mk_nogeli_mbr_zfs_uefi() { | ||||
src=$1 | src=$1 | ||||
img=$2 | img=$2 | ||||
mntpt=$3 | mntpt=$3 | ||||
geli=$4 | geli=$4 | ||||
Show All 24 Lines | EOF | ||||
cp /boot/kernel/zfs.ko ${mntpt}/boot/kernel/zfs.ko | cp /boot/kernel/zfs.ko ${mntpt}/boot/kernel/zfs.ko | ||||
cp /boot/kernel/opensolaris.ko ${mntpt}/boot/kernel/opensolaris.ko | cp /boot/kernel/opensolaris.ko ${mntpt}/boot/kernel/opensolaris.ko | ||||
# end tweaks | # end tweaks | ||||
zfs umount -f ${pool}/ROOT/default | zfs umount -f ${pool}/ROOT/default | ||||
zfs set mountpoint=none ${pool}/ROOT/default | zfs set mountpoint=none ${pool}/ROOT/default | ||||
zpool set bootfs=${pool}/ROOT/default ${pool} | zpool set bootfs=${pool}/ROOT/default ${pool} | ||||
zpool set autoexpand=on ${pool} | zpool set autoexpand=on ${pool} | ||||
zpool export ${pool} | zpool export ${pool} | ||||
${SRCTOP}/tools/boot/install-boot.sh -g ${geli} -s ${scheme} -f ${fs} -b ${bios} -d ${src} ${md} | ${SRCTOP}/tools/boot/install-boot.sh -n -g ${geli} -s ${scheme} -f ${fs} -b ${bios} -d ${src} ${md} | ||||
mdconfig -d -u ${md} | mdconfig -d -u ${md} | ||||
} | } | ||||
mk_nogeli_mbr_zfs_both() { | mk_nogeli_mbr_zfs_both() { | ||||
src=$1 | src=$1 | ||||
img=$2 | img=$2 | ||||
mntpt=$3 | mntpt=$3 | ||||
geli=$4 | geli=$4 | ||||
Show All 24 Lines | EOF | ||||
cp /boot/kernel/zfs.ko ${mntpt}/boot/kernel/zfs.ko | cp /boot/kernel/zfs.ko ${mntpt}/boot/kernel/zfs.ko | ||||
cp /boot/kernel/opensolaris.ko ${mntpt}/boot/kernel/opensolaris.ko | cp /boot/kernel/opensolaris.ko ${mntpt}/boot/kernel/opensolaris.ko | ||||
# end tweaks | # end tweaks | ||||
zfs umount -f ${pool}/ROOT/default | zfs umount -f ${pool}/ROOT/default | ||||
zfs set mountpoint=none ${pool}/ROOT/default | zfs set mountpoint=none ${pool}/ROOT/default | ||||
zpool set bootfs=${pool}/ROOT/default ${pool} | zpool set bootfs=${pool}/ROOT/default ${pool} | ||||
zpool set autoexpand=on ${pool} | zpool set autoexpand=on ${pool} | ||||
zpool export ${pool} | zpool export ${pool} | ||||
${SRCTOP}/tools/boot/install-boot.sh -g ${geli} -s ${scheme} -f ${fs} -b ${bios} -d ${src} ${md} | ${SRCTOP}/tools/boot/install-boot.sh -n -g ${geli} -s ${scheme} -f ${fs} -b ${bios} -d ${src} ${md} | ||||
mdconfig -d -u ${md} | mdconfig -d -u ${md} | ||||
} | } | ||||
mk_geli_gpt_ufs_legacy() { | mk_geli_gpt_ufs_legacy() { | ||||
src=$1 | src=$1 | ||||
img=$2 | img=$2 | ||||
mntpt=$3 | mntpt=$3 | ||||
geli=$4 | geli=$4 | ||||
Show All 19 Lines | EOF | ||||
cat > ${mntpt}/etc/fstab <<EOF | cat > ${mntpt}/etc/fstab <<EOF | ||||
/dev/ada0p2.eli / ufs rw 1 1 | /dev/ada0p2.eli / ufs rw 1 1 | ||||
EOF | EOF | ||||
cp /boot/kernel/geom_eli.ko ${mntpt}/boot/kernel/geom_eli.ko | cp /boot/kernel/geom_eli.ko ${mntpt}/boot/kernel/geom_eli.ko | ||||
# end tweaks | # end tweaks | ||||
umount -f ${mntpt} | umount -f ${mntpt} | ||||
geli detach ${md}p2 | geli detach ${md}p2 | ||||
${SRCTOP}/tools/boot/install-boot.sh -g ${geli} -s ${scheme} -f ${fs} -b ${bios} -d ${src} ${md} | ${SRCTOP}/tools/boot/install-boot.sh -n -g ${geli} -s ${scheme} -f ${fs} -b ${bios} -d ${src} ${md} | ||||
mdconfig -d -u ${md} | mdconfig -d -u ${md} | ||||
} | } | ||||
mk_geli_gpt_ufs_uefi() { | mk_geli_gpt_ufs_uefi() { | ||||
src=$1 | src=$1 | ||||
img=$2 | img=$2 | ||||
mntpt=$3 | mntpt=$3 | ||||
geli=$4 | geli=$4 | ||||
Show All 19 Lines | EOF | ||||
cat > ${mntpt}/etc/fstab <<EOF | cat > ${mntpt}/etc/fstab <<EOF | ||||
/dev/ada0p2.eli / ufs rw 1 1 | /dev/ada0p2.eli / ufs rw 1 1 | ||||
EOF | EOF | ||||
cp /boot/kernel/geom_eli.ko ${mntpt}/boot/kernel/geom_eli.ko | cp /boot/kernel/geom_eli.ko ${mntpt}/boot/kernel/geom_eli.ko | ||||
# end tweaks | # end tweaks | ||||
umount -f ${mntpt} | umount -f ${mntpt} | ||||
geli detach ${md}p2 | geli detach ${md}p2 | ||||
${SRCTOP}/tools/boot/install-boot.sh -g ${geli} -s ${scheme} -f ${fs} -b ${bios} -d ${src} ${md} | ${SRCTOP}/tools/boot/install-boot.sh -n -g ${geli} -s ${scheme} -f ${fs} -b ${bios} -d ${src} ${md} | ||||
mdconfig -d -u ${md} | mdconfig -d -u ${md} | ||||
} | } | ||||
mk_geli_gpt_ufs_both() { | mk_geli_gpt_ufs_both() { | ||||
src=$1 | src=$1 | ||||
img=$2 | img=$2 | ||||
mntpt=$3 | mntpt=$3 | ||||
geli=$4 | geli=$4 | ||||
Show All 20 Lines | EOF | ||||
cat > ${mntpt}/etc/fstab <<EOF | cat > ${mntpt}/etc/fstab <<EOF | ||||
/dev/ada0p3.eli / ufs rw 1 1 | /dev/ada0p3.eli / ufs rw 1 1 | ||||
EOF | EOF | ||||
cp /boot/kernel/geom_eli.ko ${mntpt}/boot/kernel/geom_eli.ko | cp /boot/kernel/geom_eli.ko ${mntpt}/boot/kernel/geom_eli.ko | ||||
# end tweaks | # end tweaks | ||||
umount -f ${mntpt} | umount -f ${mntpt} | ||||
geli detach ${md}p3 | geli detach ${md}p3 | ||||
${SRCTOP}/tools/boot/install-boot.sh -g ${geli} -s ${scheme} -f ${fs} -b ${bios} -d ${src} ${md} | ${SRCTOP}/tools/boot/install-boot.sh -n -g ${geli} -s ${scheme} -f ${fs} -b ${bios} -d ${src} ${md} | ||||
mdconfig -d -u ${md} | mdconfig -d -u ${md} | ||||
} | } | ||||
mk_geli_gpt_zfs_legacy() { | mk_geli_gpt_zfs_legacy() { | ||||
src=$1 | src=$1 | ||||
img=$2 | img=$2 | ||||
mntpt=$3 | mntpt=$3 | ||||
geli=$4 | geli=$4 | ||||
Show All 26 Lines | EOF | ||||
cp /boot/kernel/geom_eli.ko ${mntpt}/boot/kernel/geom_eli.ko | cp /boot/kernel/geom_eli.ko ${mntpt}/boot/kernel/geom_eli.ko | ||||
# end tweaks | # end tweaks | ||||
zfs umount -f ${pool}/ROOT/default | zfs umount -f ${pool}/ROOT/default | ||||
zfs set mountpoint=none ${pool}/ROOT/default | zfs set mountpoint=none ${pool}/ROOT/default | ||||
zpool set bootfs=${pool}/ROOT/default ${pool} | zpool set bootfs=${pool}/ROOT/default ${pool} | ||||
zpool set autoexpand=on ${pool} | zpool set autoexpand=on ${pool} | ||||
zpool export ${pool} | zpool export ${pool} | ||||
geli detach ${md}p2 | geli detach ${md}p2 | ||||
${SRCTOP}/tools/boot/install-boot.sh -g ${geli} -s ${scheme} -f ${fs} -b ${bios} -d ${src} ${md} | ${SRCTOP}/tools/boot/install-boot.sh -n -g ${geli} -s ${scheme} -f ${fs} -b ${bios} -d ${src} ${md} | ||||
mdconfig -d -u ${md} | mdconfig -d -u ${md} | ||||
} | } | ||||
mk_geli_gpt_zfs_uefi() { | mk_geli_gpt_zfs_uefi() { | ||||
src=$1 | src=$1 | ||||
img=$2 | img=$2 | ||||
mntpt=$3 | mntpt=$3 | ||||
geli=$4 | geli=$4 | ||||
Show All 26 Lines | EOF | ||||
cp /boot/kernel/geom_eli.ko ${mntpt}/boot/kernel/geom_eli.ko | cp /boot/kernel/geom_eli.ko ${mntpt}/boot/kernel/geom_eli.ko | ||||
# end tweaks | # end tweaks | ||||
zfs umount -f ${pool}/ROOT/default | zfs umount -f ${pool}/ROOT/default | ||||
zfs set mountpoint=none ${pool}/ROOT/default | zfs set mountpoint=none ${pool}/ROOT/default | ||||
zpool set bootfs=${pool}/ROOT/default ${pool} | zpool set bootfs=${pool}/ROOT/default ${pool} | ||||
zpool set autoexpand=on ${pool} | zpool set autoexpand=on ${pool} | ||||
zpool export ${pool} | zpool export ${pool} | ||||
geli detach ${md}p2 | geli detach ${md}p2 | ||||
${SRCTOP}/tools/boot/install-boot.sh -g ${geli} -s ${scheme} -f ${fs} -b ${bios} -d ${src} ${md} | ${SRCTOP}/tools/boot/install-boot.sh -n -g ${geli} -s ${scheme} -f ${fs} -b ${bios} -d ${src} ${md} | ||||
mdconfig -d -u ${md} | mdconfig -d -u ${md} | ||||
} | } | ||||
mk_geli_gpt_zfs_both() { | mk_geli_gpt_zfs_both() { | ||||
src=$1 | src=$1 | ||||
img=$2 | img=$2 | ||||
mntpt=$3 | mntpt=$3 | ||||
geli=$4 | geli=$4 | ||||
Show All 27 Lines | EOF | ||||
cp /boot/kernel/geom_eli.ko ${mntpt}/boot/kernel/geom_eli.ko | cp /boot/kernel/geom_eli.ko ${mntpt}/boot/kernel/geom_eli.ko | ||||
# end tweaks | # end tweaks | ||||
zfs umount -f ${pool}/ROOT/default | zfs umount -f ${pool}/ROOT/default | ||||
zfs set mountpoint=none ${pool}/ROOT/default | zfs set mountpoint=none ${pool}/ROOT/default | ||||
zpool set bootfs=${pool}/ROOT/default ${pool} | zpool set bootfs=${pool}/ROOT/default ${pool} | ||||
zpool set autoexpand=on ${pool} | zpool set autoexpand=on ${pool} | ||||
zpool export ${pool} | zpool export ${pool} | ||||
geli detach ${md}p3 | geli detach ${md}p3 | ||||
${SRCTOP}/tools/boot/install-boot.sh -g ${geli} -s ${scheme} -f ${fs} -b ${bios} -d ${src} ${md} | ${SRCTOP}/tools/boot/install-boot.sh -n -g ${geli} -s ${scheme} -f ${fs} -b ${bios} -d ${src} ${md} | ||||
mdconfig -d -u ${md} | mdconfig -d -u ${md} | ||||
} | } | ||||
# GELI+MBR is not a valid configuration | # GELI+MBR is not a valid configuration | ||||
mk_geli_mbr_ufs_legacy() { | mk_geli_mbr_ufs_legacy() { | ||||
} | } | ||||
mk_geli_mbr_ufs_uefi() { | mk_geli_mbr_ufs_uefi() { | ||||
Show All 29 Lines | |||||
/dev/ada0a / ufs rw 1 1 | /dev/ada0a / ufs rw 1 1 | ||||
EOF | EOF | ||||
makefs -t ffs -B big -s 200m ${img} ${src} | makefs -t ffs -B big -s 200m ${img} ${src} | ||||
md=$(mdconfig -f ${img}) | md=$(mdconfig -f ${img}) | ||||
# For non-native builds, ensure that geom_part(4) supports VTOC8. | # For non-native builds, ensure that geom_part(4) supports VTOC8. | ||||
kldload geom_part_vtoc8.ko | kldload geom_part_vtoc8.ko | ||||
gpart create -s VTOC8 ${md} | gpart create -s VTOC8 ${md} | ||||
gpart add -t freebsd-ufs ${md} | gpart add -t freebsd-ufs ${md} | ||||
${SRCTOP}/tools/boot/install-boot.sh -g ${geli} -s ${scheme} -f ${fs} -b ${bios} -d ${src} ${md} | ${SRCTOP}/tools/boot/install-boot.sh -n -g ${geli} -s ${scheme} -f ${fs} -b ${bios} -d ${src} ${md} | ||||
mdconfig -d -u ${md} | mdconfig -d -u ${md} | ||||
rm -f ${src}/etc/fstab | rm -f ${src}/etc/fstab | ||||
} | } | ||||
qser="-serial telnet::4444,server -nographic" | qser="-serial telnet::4444,server -nographic" | ||||
# https://wiki.freebsd.org/QemuRecipes | # https://wiki.freebsd.org/QemuRecipes | ||||
# aarch64 | # aarch64 | ||||
▲ Show 20 Lines • Show All 215 Lines • Show Last 20 Lines |