projects
/
grml-debootstrap.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add option --vm to install VMs into LVs and such
[grml-debootstrap.git]
/
grml-debootstrap
diff --git
a/grml-debootstrap
b/grml-debootstrap
index
06200d8
..
3e77319
100755
(executable)
--- a/
grml-debootstrap
+++ b/
grml-debootstrap
@@
-77,9
+77,11
@@
Bootstrap options:
Options for Virtual Machine deployment:
Options for Virtual Machine deployment:
- --vm
file 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,
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 <size> Use specified size for size of VM file (default: 2G).
Syntax as supported by qemu-img, like: --vmsize 3G
--vmsize <size> Use specified size for size of VM file (default: 2G).
Syntax as supported by qemu-img, like: --vmsize 3G
@@
-93,10
+95,12
@@
Configuration options:
instead of using /etc/debootstrap/packages.
--nopackages Skip installation of packages defined in
/etc/debootstrap/packages
instead of using /etc/debootstrap/packages.
--nopackages Skip installation of packages defined in
/etc/debootstrap/packages
+ --nokernel Skip installation of default kernel images.
--nointerfaces Do not copy /etc/network/interfaces from host system
to target system.
(This option is automatically enabled when using --vmfile.)
--nointerfaces Do not copy /etc/network/interfaces from host system
to target system.
(This option is automatically enabled when using --vmfile.)
- --nokernel Skip installation of default kernel images.
+ --defaultinterfaces Install a default /etc/network/interfaces file (enabling
+ DHCP for eth0) instead of taking over config from host system.
--debconf <file> Pre-seed packages using specified pre-seed db file.
--grmlrepos Enable Grml's Debian repository (deb.grml.org).
--backportrepos Enable Debian's backports repository (backports.debian.org).
--debconf <file> Pre-seed packages using specified pre-seed db file.
--grmlrepos Enable Grml's Debian repository (deb.grml.org).
--backportrepos Enable Debian's backports repository (backports.debian.org).
@@
-313,7
+317,8
@@
fi
[ "$_opt_iso" ] && ISO=$_opt_iso
[ "$_opt_release" ] && RELEASE=$_opt_release
[ "$_opt_target" ] && TARGET=$_opt_target
[ "$_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
[ "$_opt_vmsize" ] && VMSIZE=$_opt_vmsize
[ "$_opt_mntpoint" ] && MNTPOINT=$_opt_mntpoint
[ "$_opt_debopt" ] && DEBOOTSTRAP_OPT=$_opt_debopt
@@
-332,6
+337,7
@@
fi
[ "$_opt_hostname" ] && HOSTNAME=$_opt_hostname
[ "$_opt_password" ] && ROOTPASSWORD=$_opt_password
[ "$_opt_nopassword" ] && NOPASSWORD='yes'
[ "$_opt_hostname" ] && HOSTNAME=$_opt_hostname
[ "$_opt_password" ] && ROOTPASSWORD=$_opt_password
[ "$_opt_nopassword" ] && NOPASSWORD='yes'
+[ "$_opt_defaultinterfaces" ] && DEFAULTINTERFACES="true"
[ "$_opt_nointerfaces" ] && NOINTERFACES="true"
[ "$_opt_nokernel" ] && NOKERNEL="true"
[ "$_opt_bootappend" ] && BOOT_APPEND=$_opt_bootappend
[ "$_opt_nointerfaces" ] && NOINTERFACES="true"
[ "$_opt_nokernel" ] && NOKERNEL="true"
[ "$_opt_bootappend" ] && BOOT_APPEND=$_opt_bootappend
@@
-737,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 "$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
fi
if [ ! -t 0 -a -z "$ROOTPASSWORD" -a -z "$NOPASSWORD" ] ; then
@@
-971,18
+979,25
@@
mount_target() {
# prepare VM image for usage with debootstrap {{{
prepare_vm() {
if [ -z "$VIRTUAL" ] ; then
# prepare VM image for usage with debootstrap {{{
prepare_vm() {
if [ -z "$VIRTUAL" ] ; then
- return 0 # be qui
te
by intention
+ return 0 # be qui
et
by intention
fi
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
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
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
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
@@
-1153,7
+1168,6
@@
preparechroot() {
[ -n "$MIRROR" ] && echo "MIRROR=\"$MIRROR\"" >> $CHROOT_VARIABLES
[ -n "$MKFS" ] && echo "MKFS=\"$MKFS\"" >> $CHROOT_VARIABLES
[ -n "$NOPASSWORD" ] && echo "NOPASSWORD=\"true\"" >> $CHROOT_VARIABLES
[ -n "$MIRROR" ] && echo "MIRROR=\"$MIRROR\"" >> $CHROOT_VARIABLES
[ -n "$MKFS" ] && echo "MKFS=\"$MKFS\"" >> $CHROOT_VARIABLES
[ -n "$NOPASSWORD" ] && echo "NOPASSWORD=\"true\"" >> $CHROOT_VARIABLES
- [ -n "$NOINTERFACES" ] && echo "NOINTERFACES=\"true\"" >> $CHROOT_VARIABLES
[ -n "$NOKERNEL" ] && echo "NOKERNEL=\"true\"" >> $CHROOT_VARIABLES
[ -n "$PACKAGES" ] && echo "PACKAGES=\"$PACKAGES\"" >> $CHROOT_VARIABLES
[ -n "$PRE_SCRIPTS" ] && echo "PRE_SCRIPTS=\"$PRE_SCRIPTS\"" >> $CHROOT_VARIABLES
[ -n "$NOKERNEL" ] && echo "NOKERNEL=\"true\"" >> $CHROOT_VARIABLES
[ -n "$PACKAGES" ] && echo "PACKAGES=\"$PACKAGES\"" >> $CHROOT_VARIABLES
[ -n "$PRE_SCRIPTS" ] && echo "PRE_SCRIPTS=\"$PRE_SCRIPTS\"" >> $CHROOT_VARIABLES
@@
-1247,8
+1261,12
@@
iface eth0 inet dhcp
if [ -n "$NOINTERFACES" ] ; then
einfo "Not installing /etc/network/interfaces as requested via --nointerfaces option" ; eend 0
if [ -n "$NOINTERFACES" ] ; then
einfo "Not installing /etc/network/interfaces as requested via --nointerfaces option" ; eend 0
+ elif [ -n "$DEFAULT_INTERFACES" ] ; then
+ einfo "Installing default /etc/network/interfaces as requested via --defaultinterfaces options."
+ echo "$DEFAULT_INTERFACES" > "${MNTPOINT}/etc/network/interfaces"
+ eend $?
elif [ -n "$VIRTUAL" ] ; then
elif [ -n "$VIRTUAL" ] ; then
- einfo "
Installing into
Virtual Machine, installing default /etc/network/interfaces"
+ einfo "
Setting up
Virtual Machine, installing default /etc/network/interfaces"
echo "$DEFAULT_INTERFACES" > "${MNTPOINT}/etc/network/interfaces"
eend $?
elif [ -r /etc/network/interfaces ] ; then
echo "$DEFAULT_INTERFACES" > "${MNTPOINT}/etc/network/interfaces"
eend $?
elif [ -r /etc/network/interfaces ] ; then