Page MenuHomeFreeBSD

D23334.1789840413.diff
No OneTemporary

Size
2 KB
Referenced Files
None
Subscribers
None

D23334.1789840413.diff

Index: release/scripts/mk-vmimage.sh
===================================================================
--- release/scripts/mk-vmimage.sh
+++ release/scripts/mk-vmimage.sh
@@ -52,6 +52,9 @@
d)
DESTDIR="${OPTARG}"
;;
+ F)
+ VMFSTYPE="${OPTARG}"
+ ;;
f)
VMFORMAT="${OPTARG}"
;;
@@ -91,6 +94,10 @@
if [ ! -z "${VMCONFIG}" ] && [ ! -c "${VMCONFIG}" ]; then
. "${VMCONFIG}"
+ fi
+
+ if [ ! -z "${VMFSTYPE}" ] && [ ! -c "${VMFSTYPE}" ]; then
+ . "${VMFSTYPE}"
fi
case ${TARGET}:${TARGET_ARCH} in
Index: release/tools/vmimage.subr
===================================================================
--- release/tools/vmimage.subr
+++ release/tools/vmimage.subr
@@ -76,8 +76,7 @@
}
vm_create_base() {
- # Creates the UFS root filesystem for the virtual machine disk,
- # written to the formatted disk image with mkimg(1).
+ # Creates temporary UFS root filesystem for the virtual machine disk.
mkdir -p ${DESTDIR}
truncate -s ${VMSIZE} ${VMBASE}
Index: release/tools/zfs.conf
===================================================================
--- /dev/null
+++ release/tools/zfs.conf
@@ -0,0 +1,63 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+export ZPOOL_NAME="zroot"
+
+vm_copy_base() {
+ mkdir -p ${DESTDIR}/old
+ mdold=$(mdconfig -f ${VMBASE})
+ mount /dev/${mdold} ${DESTDIR}/old
+
+ truncate -s ${VMSIZE} ${VMBASE}.tmp
+ mkdir -p ${DESTDIR}/new
+ mdnew=$(mdconfig -f ${VMBASE}.tmp)
+
+ zpool create \
+ -O mountpoint=/ \
+ -O canmount=noauto \
+ -O compression=on \
+ -O atime=off \
+ -R ${DESTDIR}/new ${ZPOOL_NAME} /dev/${mddev}
+
+ tar -cf- -C ${DESTDIR}/old . | tar -xUf- -C ${DESTDIR}/new
+
+ umount_loop /dev/${mdold}
+ rmdir ${DESTDIR}/old
+ mdconfig -d -u ${mdold}
+
+ umount_loop /dev/${mdnew}
+ rmdir ${DESTDIR}/new
+ zpool export ${ZPOOL_NAME}
+ mv ${VMBASE}.tmp ${VMBASE}
+}
+
+write_partition_layout() {
+ if [ -z "${NOSWAP}" ]; then
+ SWAPOPT="-p freebsd-swap/swapfs::${SWAPSIZE}"
+ fi
+
+ BOOTFILES="$(env TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
+ WITH_UNIFIED_OBJDIR=yes \
+ make -C ${WORLDDIR}/stand -V .OBJDIR)"
+ BOOTFILES="$(realpath ${BOOTFILES})"
+
+ case "${TARGET}:${TARGET_ARCH}" in
+ amd64:amd64 | i386:i386)
+ mkimg -s gpt -f ${VMFORMAT} \
+ -b ${BOOTFILES}/i386/pmbr/pmbr \
+ -p freebsd-boot/bootfs:=${BOOTFILES}/i386/gptzfsboot/gptzfsboot \
+ ${SWAPOPT} \
+ -p freebsd-zfs/rootfs:=${VMBASE} \
+ -o ${VMIMAGE}
+ ;;
+ *)
+ # ENOTSUPP
+ return 1
+ ;;
+ esac
+
+ return 0
+}
+

File Metadata

Mime Type
text/plain
Expires
Sat, Sep 19, 5:53 PM (19 h, 52 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
29787220
Default Alt Text
D23334.1789840413.diff (2 KB)

Event Timeline