#!/bin/bash
VERSION='7.10.1'
IFACE=$(ip -o link show | awk -F': ' '{print $2}' | grep -v lo | head -n1)

wget https://download.mikrotik.com/routeros/$VERSION/chr-$VERSION.img.zip -O chr.img.zip && \
gunzip -c chr.img.zip > chr.img && \
apt-get update && \
apt install -y qemu-utils pv parted e2fsprogs fdisk psmisc && \
qemu-img convert chr.img -O qcow2 chr.qcow2 && \
qemu-img resize chr.qcow2 1073741824 && \
modprobe nbd && \
qemu-nbd -c /dev/nbd0 chr.qcow2 && \
echo "Give some time for qemu-nbd to be ready" && \
sleep 2 && \
partprobe /dev/nbd0 && \
sleep 5 && \
mount /dev/nbd0p2 /mnt && \
ADDRESS=$(ip addr show $IFACE | grep global | awk '{print $2}' | head -n1) && \
GATEWAY=$(ip route list | grep default | awk '{print $3}') && \
PASSWORD="CHANGEME" && \
echo "/ip address add address=$ADDRESS interface=[/interface ethernet find where name=ether1]
/ip route add gateway=$GATEWAY
/ip service disable telnet
/user set 0 name=root password=$PASSWORD
/ip dns set servers=1.1.1.1,1.0.0.1
/system package update install
 " > /mnt/rw/autorun.scr && \
umount /mnt && \
echo -e 'd\n2\nn\np\n2\n65537\n\nw\n' | fdisk /dev/nbd0 && \
e2fsck -f /dev/nbd0p2 && \
resize2fs /dev/nbd0p2 && \
sleep 1 && \
mount -t tmpfs tmpfs /mnt && \
pv /dev/nbd0 | gzip > /mnt/chr-extended.gz && \
sleep 1 && \
killall qemu-nbd && \
sleep 1 && \
echo u > /proc/sysrq-trigger && \
sleep 1 && \
DISK=$(lsblk -dno NAME | grep -E '^(sda|vda|hda)' | head -n1) && \
zcat /mnt/chr-extended.gz | pv > /dev/$DISK && \
echo "Password: CHANGEME" && \
sleep 5 || true && \
echo s > /proc/sysrq-trigger && \
echo b > /proc/sysrq-trigger