X-Git-Url: http://popeye.lapinbilly.eu/git/?p=zfsinstaller.git;a=blobdiff_plain;f=zfsinstall.sh;h=b9004655a306771fc4202085446766c8a878fee8;hp=b34634952c9b653978e44408ee87db8180790d6e;hb=4b846bcb2af67273510995b8e524c1a2a67680dc;hpb=bb26d87271f6c61334a9bd30751335bce207dae7 diff --git a/zfsinstall.sh b/zfsinstall.sh index b346349..b900465 100644 --- a/zfsinstall.sh +++ b/zfsinstall.sh @@ -1,6 +1,6 @@ #!/bin/sh -DESTDISK="ada0" +DESTDISKS="ada0 ada1" DESTDIR="/mnt/zfs" ZPOOL="zroot" @@ -17,36 +17,44 @@ fi # check if the disk is ok for writing -echo checking sanity ${DESTDISK} -echo ============= -gpart show ${DESTDISK} 1>/dev/null -if [ "${?}" -eq 0 ]; then - gpart destroy -F ${DESTDISK} - if [ "${?}" -ne 0 ]; then - echo unable to reset ${DESTDISK} - exit 1 - fi -fi -echo partitioning ${DESTDISK} -echo ============= +for D in ${DESTDISKS}; do + if [ -z "${DESTDISK_1}" ]; then + DESTDISK_1=${D} + fi -gpart create -s gpt ${DESTDISK} -gpart add -a 4k -t freebsd-boot -s 512k -l gptboot0 ${DESTDISK} -gpart add -a 1m -s 32G -t freebsd-swap -l swap0 ${DESTDISK} -gpart add -a 1m -t freebsd-zfs -l zfs0 ${DESTDISK} -gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ${DESTDISK} -gpart set -a active ${DESTDISK} + echo checking sanity ${D} + echo ============= + gpart show ${D} 1>/dev/null + if [ "${?}" -eq 0 ]; then -gpart show ${DESTDISK} + gpart destroy -F ${D} + if [ "${?}" -ne 0 ]; then + echo unable to reset ${D} + exit 1 + fi + fi + echo partitioning ${D} + echo ============= + N=$( echo ${D} | tr -c -d '0-9' ) + gpart create -s gpt ${D} + gpart add -a 4k -t efi -s 200M -l efiboot${N} ${D} + gpart bootcode -p /boot/boot1.efifat -i 1 ${D} + gpart add -a 4k -t freebsd-boot -s 512k -l gptboot${N} ${D} + gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 2 ${D} + gpart add -a 1m -s 32G -t freebsd-swap -l swap${N} ${D} + gpart add -a 1m -t freebsd-zfs -l zfs${N} ${D} + gpart set -a active ${D} + gpart show ${D} +done sysctl vfs.zfs.min_auto_ashift=12 echo set up zfs pool: ${ZPOOL} alt mount: ${DESTDIR} echo ================= -zpool create -m none -f -R ${DESTDIR} ${ZPOOL} ${DESTDISK}p3 ada1 +zpool create -m none -f -R ${DESTDIR} ${ZPOOL} /dev/gpt/zfs* if [ "${?}" -ne 0 ]; then echo "unable to create zpool" exit 1 @@ -88,7 +96,7 @@ zfs list -r ${ZPOOL} cd ${DESTDIR}/tmp if [ "${?}" -ne 0 ]; then - echo zfs mountpoints arent ready + echo zfs mountpoints are not ready exit 1 fi @@ -97,7 +105,7 @@ echo ======================================= for I in base.txz kernel.txz lib32.txz; do - fetch http://ftp.freebsd.org/pub/FreeBSD/releases/amd64/11.2-RELEASE/${I} + fetch http://ftp.freebsd.org/pub/FreeBSD/releases/amd64/12.0-BETA3/${I} tar --unlink -pJxf ${I} -C ${DESTDIR} done @@ -105,7 +113,7 @@ echo writing configuration files echo ========================== cat << EOF >> ${DESTDIR}/etc/fstab -/dev/${DESTDISK}p2 none swap sw 0 0 +/dev/${DESTDISK_1}p3 none swap sw 0 0 tmpfs /tmp tmpfs rw,mode=1777 0 0 EOF @@ -118,37 +126,28 @@ cat << EOF >> ${DESTDIR}/boot/loader.conf.local vfs.root.mountfrom="zfs:${ZPOOL}/ROOT/master" EOF -cat << EOF >> ${DESTDIR}/etc/rc.conf -sshd_enable="YES" -sendmail_enable="NONE" -kld_list="vmm cuse4bsd cpuctl filemon" -ntpd_enable="YES" -# Set dumpdev to "AUTO" to enable crash dumps, "NO" to disable -dumpdev="AUTO" -zfs_enable="YES" -EOF - -cd ${SCRIPTBASE} -for I in resolv.conf rc.conf.local; do - if [ -r "${I}" ]; then - echo installing ${I} - install -o root -g wheel -m 0644 ${I} ${DESTDIR}/etc/ - fi +COPYCAT="/etc" +cd ${SCRIPTBASE}${COPYCAT} || exit 1 +echo installing files into ${COPYCAT} +for I in *.conf*; do + if [ -r "${I}" -a -f ${I} ]; then + install -o root -g wheel -m 0644 ${I} ${DESTDIR}${COPYCAT}/ + fi done - -for I in loader.conf.local; do - if [ -r "${I}" ]; then - echo installing ${I} - install -o root -g wheel -m 0644 ${I} ${DESTDIR}/boot/ - fi +COPYCAT="/etc/rc.conf.d" +cd ${SCRIPTBASE}${COPYCAT} || exit 1 +echo installing files into ${COPYCAT} +install -o root -g wheel -d -m 0755 ${DESTDIR}${COPYCAT} || exit 1 +for I in *; do + if [ -r "${I}" -a -f ${I} ]; then + install -o root -g wheel -m 0644 * ${DESTDIR}${COPYCAT}/ + fi done - -echo installing rc.conf.d -install -o root -g wheel -d -m 0755 ${DESTDIR}/etc/rc.conf.d -if [ -d "./rc.conf.d" ]; then - echo installing files into rc.conf.d - install -o root -g wheel -m 0644 ./rc.conf.d/* ${DESTDIR}/etc/rc.conf.d/ -fi +COPYCAT="/etc/rc.conf.d/network" +cd ${SCRIPTBASE}${COPYCAT} || exit 1 +install -o root -g wheel -d -m 0755 ${DESTDIR}${COPYCAT} || exit 1 +echo installing files into ${COPYCAT} +install -o root -g wheel -m 0644 * ${DESTDIR}${COPYCAT}/ chroot ${DESTDIR} passwd chroot ${DESTDIR} adduser