我的磁盘映像是从下载的ubuntu-22.04-minimal-cloudimg-amd64-root.tar.xz使用以下命令:
fallocate -l 16GiB rootfs.img
mkfs.ext4 rootfs.img
mkdir rootfs
sudo mount -o loop ./rootfs.img ./rootfs
sudo tar xf ubuntu-22.04-minimal-cloudimg-amd64-root.tar.xz -C rootfs
sudo umount rootfs
init
在目录中创建文件后_install
,我做了
find . | cpio -H newc -o | gzip > initramfs.cpio.gz
然后我使用以下 QEMU 命令尝试启动:
qemu-system-x86_64 -nographic -kernel /path/to/bzImage -initrd initramfs.cpio.gz -append "console=ttyS0" /path/to/rootfs.img
我的init
文件目前看起来像这样(找不到它,rootfs.img
因为它太大而无法放入 .cpio 文件中):
#!/bin/sh
set -ex
exec switch_root rootfs.img /sbin/sh
我不确定应该如何指定参数才能switch_root
使其使用/path/to/rootfs.img
QEMU 命令中提供的参数。
我试着跟随这,但我想我应该用 therootfs.img
代替/dev/sda1
。再说一遍,我不知道该怎么做。