#!/bin/sh # Prerequisites # setup-interfaces # ifup eth0 # Set up repositories cat </etc/apk/repositories http://repository.fit.cvut.cz/mirrors/alpine/v3.7/main http://repository.fit.cvut.cz/mirrors/alpine/v3.7/community #http://repository.fit.cvut.cz/mirrors/alpine/edge/main #http://repository.fit.cvut.cz/mirrors/alpine/edge/community #http://repository.fit.cvut.cz/mirrors/alpine/edge/testing EOF # Install disk management tools apk --no-cache add lvm2 cryptsetup e2fsprogs syslinux # Create disk partitions cat </mnt/etc/fstab /dev/vg0/root / ext4 rw,noatime,data=ordered 0 1 ${BOOT_UUID} /boot ext4 rw,noatime,data=ordered 0 2 /dev/vg0/swap swap swap defaults 0 0 EOF echo "system /dev/sda2 none luks" >/mnt/etc/crypttab # Rebuild initfs sed -i 's/lvm/lvm cryptsetup/' /mnt/etc/mkinitfs/mkinitfs.conf mkinitfs -c /mnt/etc/mkinitfs/mkinitfs.conf -b /mnt $(ls /mnt/lib/modules) # Update extlinux sed -i 's/rootfstype=ext4/rootfstype=ext4 cryptroot=\/dev\/sda2 cryptdm=system/' /mnt/etc/update-extlinux.conf chroot /mnt update-extlinux # Set time zone chroot /mnt setup-timezone -z Europe/Prague # Set hostname echo 'vm' >/mnt/etc/hostname sed -i 's/localhost/vm/' /mnt/etc/network/interfaces sed -i 's/localhost /vm localhost /' /mnt/etc/hosts # Enable services on boot ln -s /etc/init.d/networking /mnt/etc/runlevels/boot ln -s /etc/init.d/urandom /mnt/etc/runlevels/boot # Install bootloader to MBR dd bs=440 count=1 conv=notrunc if=/mnt/usr/share/syslinux/mbr.bin of=/dev/sda # Unmount and shut down umount /mnt/boot umount /mnt swapoff -a vgchange -a n cryptsetup luksClose system poweroff