尝试使用 QEMU 运行 Linux 内核,启动过程遇到问题

尝试使用 QEMU 运行 Linux 内核,启动过程遇到问题

对于一个项目,我需要能够运行未压缩的 Linux 内核。建议我尝试使用 QEMU 来模拟这一点,因为这比直接在机器上启动它涉及的内容更少。但是,我无法在 QEMU 上正确加载内核。我在 Arch Linux 上运行。

我已经使用它生成了一个图像mkinitcpio --generate customImage3.img --kernel 5.9.1-arch1-1。然后,我尝试使用命令行选项的各种组合来运行 QEMU,最新的是:

sudo qemu-system-x86_64 -kernel ../kernel-build/linux-5.9.1/vmlinux -nographic -initrd customImage3.img -append "console=ttyS0" -m 512 --enable-kvm -cpu host

我还尝试在附加部分(例如root=/dev/sda3)中指定“根”,但这不会改变我得到的错误。

我运行 QEMU 时的输出是:

SeaBIOS (version ArchLinux 1.14.0-1)


iPXE (http://ipxe.org) 00:03.0 CA00 PCI2.10 PnP PMM+1FF912A0+1FEF12A0 CA00



Booting from ROM..mount: /proc: must be superuser to use mount.
mount: /sys: must be superuser to use mount.
mount: /dev: must be superuser to use mount.
mount: /run: must be superuser to use mount.
/init: line 13: can't open /proc/cmdline: no such file
:: running early hook [udev]
Warning: /lib/modules/5.9.1/modules.devname not found - ignoring
Failed to parse kernel command line, ignoring: No such file or directory
Starting version 246.6-1-arch
:: running hook [udev]
:: Triggering uevents...
Failed to scan subsystems: No such file or directory
Failed to scan devices: No such file or directory
ERROR: device '' not found. Skipping fsck.
:: mounting '' on real root
mount: /new_root: mount failed: Operation not permitted.
You are now being dropped into an emergency shell.
sh: can't access tty; job control turned off
[rootfs ]#

它似乎找不到它需要的任何东西,比如要启动的设备。我认为我一定错过了一些关键选项,但无论进行多少搜索都无法帮助我弄清楚我需要什么。任何有关这种情况的帮助将不胜感激。

答案1

这是 mkinitcpio 中的一个错误:修复存档中的设置 uid=0 gid=0

解决方法是使用 sudo 调用 mkinitcpio。

相关内容