使用包含文件系统的磁盘映像切换到 BusyBox 中的根文件系统

使用包含文件系统的磁盘映像切换到 BusyBox 中的根文件系统

我的磁盘映像是从下载的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.imgQEMU 命令中提供的参数。

我试着跟随,但我想我应该用 therootfs.img代替/dev/sda1。再说一遍,我不知道该怎么做。

相关内容