From e9ab7fc9d95c426920c3ef5d32be23e2d6404fef Mon Sep 17 00:00:00 2001 From: mustard Date: Tue, 12 Aug 2025 01:50:42 +0200 Subject: [PATCH] feat: added helper scripts --- create.sh | 7 +++++++ extract-kernel-initrd.sh | 15 +++++++++++++++ init.sh | 3 +++ notes.txt | 9 +++++++++ prepare-rootfs.sh | 15 +++++++++++++++ 5 files changed, 49 insertions(+) create mode 100755 create.sh create mode 100755 extract-kernel-initrd.sh create mode 100755 init.sh create mode 100644 notes.txt create mode 100755 prepare-rootfs.sh diff --git a/create.sh b/create.sh new file mode 100755 index 0000000..0224658 --- /dev/null +++ b/create.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +rm ./rootfs.qcow2 +rm -rf ./rootfs +mkdir ./rootfs +tar -xf ./jammy-server-cloudimg-amd64-root.tar.xz -C ./rootfs +virt-make-fs --format=qcow2 --size=2000M only rootfs.qcow2 diff --git a/extract-kernel-initrd.sh b/extract-kernel-initrd.sh new file mode 100755 index 0000000..a5f4f6d --- /dev/null +++ b/extract-kernel-initrd.sh @@ -0,0 +1,15 @@ +#!/bin/bash + + +qemu-nbd /dev/nbd0 --disconnect +sleep 0.5 +umount ./files/mnt +sleep 0.5 +rm -rf ./files/mnt && mkdir ./files/mnt +sleep 0.5 +rmmod nbd +modprobe nbd max_part=8 +qemu-nbd --connect=/dev/nbd0 ./files/jammy-server-cloudimg-amd64-disk-kvm.img && sleep 1 && mount /dev/nbd0p1 ./files/mnt/ + +cp ./files/mnt/boot/initrd.img-*-kvm ./initrd.img +cp ./files/mnt/boot/vmlinuz-*-kvm ./vmlinuz-kvm diff --git a/init.sh b/init.sh new file mode 100755 index 0000000..7c94620 --- /dev/null +++ b/init.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +qemu-system-x86_64 -m 4096M -M microvm -enable-kvm -cpu host -kernel vmlinuz-kvm -initrd initrd.img -append 'console=ttyS0 root=/dev/vda rw fsck.mode=skip nomodeset reboot=t init=/usr/sbin/init' -no-reboot -nodefaults -no-user-config -display none -serial mon:stdio -drive file=rootfs.qcow2,index=0,format=qcow2,media=disk,if=none,id=virtio1 -device virtio-blk-device,drive=virtio1 -netdev tap,id=tap0,script=no,downscript=no -device virtio-net-device,netdev=tap0 diff --git a/notes.txt b/notes.txt new file mode 100644 index 0000000..7ec0dfc --- /dev/null +++ b/notes.txt @@ -0,0 +1,9 @@ +# Stuff to change: + +/etc/shadow for root password + +extract kernel, initrd and pass as arguments + +edit /etc/fstab to mount /dev/vda + +disable snap, multipath services diff --git a/prepare-rootfs.sh b/prepare-rootfs.sh new file mode 100755 index 0000000..1502e3a --- /dev/null +++ b/prepare-rootfs.sh @@ -0,0 +1,15 @@ +#!/bin/bash + + +tar -xf ./files/jammy-server-cloudimg-amd64-root.tar.xz -C ./files/rootfs +sed -i "1 s,^.*$,root:\$y\$j9T\$4Sr0RCDCWboukd7UCeeWvIyH\$5bE15871.Uyzk77tFoYZqmPqOUosbB0MFWkKGq2/KI2::0:99999:7:::," ./files/rootfs/etc/shadow # password is amogus + +echo "/dev/vda / ext4 discard,errors=remount-ro 0 1" > ./files/rootfs/etc/fstab +echo "TimeoutStartSec=1" >> ./files/rootfs/lib/systemd/system/snapd.seeded.service +rm ./files/rootfs/etc/systemd/system/multipath-tools.service +rm ./files/rootfs/lib/systemd/system/multipathd.service + +# rm -f ./files/rootfs/etc/systemd/system/network-online.target.wants/systemd-networkd-wait-online.service +ln -sf ./files/rootfs/dev/null ./files/rootfs/etc/systemd/system/systemd-networkd-wait-online.service + +virt-make-fs --format=qcow2 --size=2000M ./files/rootfs rootfs.qcow2