Skip to content

Instantly share code, notes, and snippets.

@bencord0
Created May 27, 2013 21:25
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save bencord0/5659164 to your computer and use it in GitHub Desktop.
Save bencord0/5659164 to your computer and use it in GitHub Desktop.
#!/bin/bash
set -e
FETCHCOMMAND='wget -t 3 -T 5 --passive-ftp -O "${DISTDIR}/${FILE}" "${URI}"'
RESUMECOMMAND='wget -c -t 3 -T 5 --passive-ftp -O "${DISTDIR}/${FILE}" "${URI}"'
export FETCHCOMMAND RESUMECOMMAND
emerge --usepkg --buildpkg --update \
app-emulation/qemu \
net-misc/curl \
sys-block/parted \
sys-fs/multipath-tools
qemu-img create -f raw gentoo.img 10G
LOOPDEV=$(losetup --find --show gentoo.img)
PART1=$(echo $LOOPDEV|sed 's=v/l=v/mapper/l=')p1
parted -s gentoo.img -- mklabel msdos
parted -s gentoo.img -- mkpart primary 1049k -1
parted -s gentoo.img -- set 1 boot on
kpartx -a $LOOPDEV
mkfs.ext4 $PART1
mkdir -p /mnt/gentoo
mount -o loop $PART1 /mnt/gentoo
cd /mnt/gentoo
curl http://redacted_host/stage3-amd64-latest.tar.bz2 | tar xjpf -
curl http://redacted_host/portage-latest.tar.bz2 | tar xjf - -C usr
curl http://redacted_host/vmlinuz-latest.tar.bz2 | tar xjf -
curl http://redacted_host/vmoverride-latest.tar.bz2 | tar xjf -
mount --bind {/,}dev
mount --bind {/,}proc
mount --bind {/,}sys
ROOT=/mnt/gentoo emerge --usepkg --buildpkg --update syslinux vim
dd if=/mnt/gentoo/usr/share/syslinux/mbr.bin of=$LOOPDEV
cat << EOF > chroot-script.sh
useradd -m -G wheel,users ec2-user
extlinux --install /boot
EOF
chmod +x chroot-script.sh
chroot /mnt/gentoo /chroot-script.sh
rm -f chroot-script.sh
sync
umount -l dev proc sys .
cd -
kpartx -d $LOOPDEV
losetup -d $LOOPDEV
qemu-img convert -p -f raw -O qcow2 gentoo.img gentoo-$(date +%Y%m%d)-amd64.qcow2
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment