mirror of https://github.com/sipwise/netscript.git
From: Michael Prokop <mprokop@sipwise.com>ksolomko/vlan
parent
fb6813974d
commit
16c0ed6b9b
@ -1,78 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -x
|
||||
set -e
|
||||
|
||||
if ! [ -r /etc/grml_cd ] ; then
|
||||
echo "Not running inside Grml, exiting to avoid damage." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# FIXME - integrate in vmdebootstrap
|
||||
wget grml.org/sipwise/bootgrub.mksh
|
||||
|
||||
# FIXME - don't depend on it
|
||||
if ! [ -d /mnt/sda1/lost+found ] ; then
|
||||
mount /dev/sda1 /mnt/sda1
|
||||
fi
|
||||
|
||||
# FIXME - integrate in deployment ISO
|
||||
apt-get update ; apt-get -y install kpartx qemu-utils mksh
|
||||
|
||||
IMAGE=/mnt/sda1/qemu.img
|
||||
TMPDIR=$(mktemp -d) || exit 1
|
||||
|
||||
qemu-img create -f raw "${IMAGE}" 3G
|
||||
echo 4 66 | mksh bootgrub.mksh -A | dd of="$IMAGE" conv=notrunc
|
||||
dd if=/dev/zero bs=1 conv=notrunc count=64 seek=446 of="$IMAGE"
|
||||
parted -s "${IMAGE}" 'mkpart primary ext3 2M -1'
|
||||
|
||||
DEVINFO=$(kpartx -av $IMAGE) # 'add map loop1p1 (253:0): 0 6289408 linear /dev/loop1 2048'
|
||||
if [ -z "$DEVINFO" ] ; then
|
||||
echo Error setting up loopback device >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
LOOP=$(echo ${DEVINFO} | sed 's/.* linear //; s/ [[:digit:]]*//') # '/dev/loop1'
|
||||
BLOCKDEV=$(echo "${DEVINFO}" | sed -e 's/.* (\(.*:.*\)).*/\1/') # '253:0'
|
||||
LOOP_PART="$(echo ${DEVINFO##add map } | sed 's/ .*//')" # '/dev/loop1p1'
|
||||
TARGET="/dev/mapper/$LOOP_PART" # '/dev/mapper/loop1p1'
|
||||
|
||||
echo "Debug:
|
||||
DEVINFO=$DEVINFO
|
||||
LOOP=$LOOP
|
||||
BLOCKDEV=$BLOCKDEV
|
||||
LOOP_PART=$LOOP_PART
|
||||
TARGET=$TARGET
|
||||
"
|
||||
|
||||
blockdev --rereadpt $LOOP
|
||||
|
||||
echo FSCK=no >> /etc/debootstrap/config
|
||||
echo y | grml-debootstrap --hostname vmbuilder --mirror http://debian.inode.at/debian/ -r squeeze -t "$TARGET" --password foobar
|
||||
|
||||
kpartx -d $IMAGE
|
||||
LOOPDEV=$(losetup -f)
|
||||
losetup $LOOPDEV ${IMAGE}
|
||||
reread_partition_table $LOOP
|
||||
mount /dev/$LOOP_PART $TMPDIR
|
||||
|
||||
mkdir -p "$TMPDIR/boot/grub"
|
||||
cp "$TMPDIR"/usr/lib/grub/i386-pc/* "$TMPDIR/boot/grub/"
|
||||
grml-chroot "$TMPDIR" grub-mkimage -O i386-pc -p "(hd0,msdos1)/boot/grub" -o /tmp/core.img biosdisk part_msdos ext2
|
||||
dd if="$TMPDIR/tmp/core.img" of="$IMAGE" conv=notrunc seek=4
|
||||
|
||||
grml-chroot $TMPDIR update-grub
|
||||
|
||||
sed -i "s;set root=.*;set root='(hd0,msdos1)';" $TMPDIR/boot/grub/grub.cfg
|
||||
# sed 's/insmod ext2/insmod ext2\n insmod part_msdos/' $TMPDIR/boot/grub/grub.cfg
|
||||
|
||||
cat $TMPDIR/boot/grub/grub.cfg > /tmp/grub.cfg
|
||||
|
||||
umount $TMPDIR
|
||||
rmdir $TMPDIR
|
||||
losetup -d "$LOOPDEV"
|
||||
|
||||
echo 'done :)'
|
||||
|
||||
# EOF
|
Loading…
Reference in new issue