X-Git-Url: https://git.grml.org/?p=grml-debootstrap.git;a=blobdiff_plain;f=grml-debootstrap;h=3e773193c970e466168167f263868b22f3342530;hp=e7384f0fc70de5f313f8e81c3bb8b9d1f5b8a50a;hb=960e54dbc6f4c1b446e1df444b1b71275ee30b5e;hpb=1081c44c4f6368490481c4c5b48281f3846cbed1 diff --git a/grml-debootstrap b/grml-debootstrap index e7384f0..3e77319 100755 --- a/grml-debootstrap +++ b/grml-debootstrap @@ -77,9 +77,11 @@ Bootstrap options: Options for Virtual Machine deployment: - --vmfile Set up a Virtual Machine (raw format) instead of installing + --vm Set up a Virtual Machine, instead of plainly installing to a partition or directory, to be combined with --target, - like: --vmfile --target /mnt/sda1/qemu.img + like: --vm --target /dev/mapper/your-vm-disk + --vmfile Like --vm, but install into a file (raw format). + Example: --vmfile --target /mnt/sda1/qemu.img --vmsize Use specified size for size of VM file (default: 2G). Syntax as supported by qemu-img, like: --vmsize 3G @@ -315,7 +317,8 @@ fi [ "$_opt_iso" ] && ISO=$_opt_iso [ "$_opt_release" ] && RELEASE=$_opt_release [ "$_opt_target" ] && TARGET=$_opt_target -[ "$_opt_vmfile" ] && VIRTUAL=1 +[ "$_opt_vm" ] && VIRTUAL=1 +[ "$_opt_vmfile" ] && VMFILE=1 && VIRTUAL=1 [ "$_opt_vmsize" ] && VMSIZE=$_opt_vmsize [ "$_opt_mntpoint" ] && MNTPOINT=$_opt_mntpoint [ "$_opt_debopt" ] && DEBOOTSTRAP_OPT=$_opt_debopt @@ -740,7 +743,9 @@ else # if not running automatic installation display configuration and prompt fo [ -n "$ARCH" ] && echo " Using arch: $ARCH" if [ -n "$VIRTUAL" ] ; then echo " Deploying as Virtual Machine." - [ -n "$VMSIZE" ] && echo " Using Virtual Disk file with size of ${VMSIZE}." + if [ -n "$VMSIZE" -a -n "$VMFILE" ]; then + echo " Using Virtual Disk file with size of ${VMSIZE}." + fi fi if [ ! -t 0 -a -z "$ROOTPASSWORD" -a -z "$NOPASSWORD" ] ; then @@ -974,18 +979,25 @@ mount_target() { # prepare VM image for usage with debootstrap {{{ prepare_vm() { if [ -z "$VIRTUAL" ] ; then - return 0 # be quite by intention + return 0 # be quiet by intention fi - if [ -b "$TARGET" ] ; then + if [ -b "$TARGET" -a -n "$VMFILE" ] ; then eerror "Error: specified virtual disk target ($TARGET) is an existing block device." eend 1 bailout 1 fi + if [ ! -b "$TARGET" -a -z "$VMFILE" ] ; then + eerror "Error: specified virtual disk target ($TARGET) does not exist yet." + eend 1 + bailout 1 + fi ORIG_TARGET="$TARGET" # store for later reuse - qemu-img create -f raw "${TARGET}" "${VMSIZE}" + if [ -n "$VMFILE" ]; then + qemu-img create -f raw "${TARGET}" "${VMSIZE}" + fi echo 4 66 | /usr/share/grml-debootstrap/bootgrub.mksh -A | dd of="$TARGET" conv=notrunc dd if=/dev/zero bs=1 conv=notrunc count=64 seek=446 of="$TARGET" if [ "$FIXED_DISK_IDENTIFIERS" = "yes" ] ; then