-#!/bin/sh -
-
-# Before running, make sure 'vmlinuz' in this examples directory is a
-# bootable Linux kernel or a symlink to one. You can just use any
-# kernel out of the /boot directory for this.
-#
-# eg:
-# cd examples
-# ln -s /boot/vmlinuz-NNN vmlinuz
-#
-# Also make 'guest-image' be a symlink to a virtual machine disk image.
-
-# This is a realistic example for 'libguestfs', which contains a
-# selection of command-line tools, LVM, NTFS and an NFS server.
-
-set -e
-
-if [ $(id -u) -eq 0 ]; then
- echo "Don't run this script as root. Read instructions in script first."
- exit 1
-fi
-
-if [ ! -e vmlinuz -o ! -e guest-image ]; then
- echo "Read instructions in script first."
- exit 1
-fi
-
-febootstrap \
- -i bash \
- -i coreutils \
- -i lvm2 \
- -i ntfs-3g \
- -i nfs-utils \
- -i util-linux-ng \
- -i MAKEDEV \
- fedora-10 ./guestfs $1
-
-echo -n "Before minimization: "; du -sh guestfs
-febootstrap-minimize --all ./guestfs
-echo -n "After minimization: "; du -sh guestfs
-
-# Create the /init which will scan for and enable all LVM volume groups.
-
-create_init ()
-{
- cat > /init <<'__EOF__'
-#!/bin/sh
-PATH=/sbin:/usr/sbin:$PATH
-MAKEDEV mem null port zero core full ram tty console fd \
- hda hdb hdc hdd sda sdb sdc sdd loop sd
-mount -t proc /proc /proc
-mount -t sysfs /sys /sys
-mount -t devpts -o gid=5,mode=620 /dev/pts /dev/pts
-modprobe sata_nv pata_acpi ata_generic
-lvm vgscan --ignorelockingfailure
-lvm vgchange -ay --ignorelockingfailure
-/bin/bash -i
-__EOF__
- chmod +x init
-}
-export -f create_init
-febootstrap-run ./guestfs -- bash -c create_init
-
-# Convert the filesystem to an initrd image.
-
-febootstrap-to-initramfs ./guestfs > guestfs-initrd.img
-
-# Now run qemu to boot this guestfs system.
-
-qemu-system-$(arch) \
- -m 256 \
- -kernel vmlinuz -initrd guestfs-initrd.img \
- -hda guest-image -boot c