So I'm working on writing my own INIT, and I downloaded arch qemu image to boot from. I mount the drive, add the init to it, umount and then run the vm with:
sudo qemu-system-x86_64 \
-boot c \
-drive file=vm/Arch-Linux-x86_64-basic-20221224.113482.qcow2,format=qcow2 \
-m size=8G \
-cpu host \
-smp "$(nproc)" \
-enable-kvm
This however takes an awful lot of time to load, with the message "guest has not initialized the display yet". after a while it gets to a shell. btw the init is in rust (my first ever rust project), and it looks like:
use std::process::Command;
use execute::Execute;
fn main() {
Command::new("agetty")
.arg("tty1")
.execute()
.expect("failed running tty1");
}