【问题标题】:How to boot the ubuntu cloud image with a customized kernel如何使用自定义内核启动 ubuntu 云镜像
【发布时间】:2021-10-05 01:38:17
【问题描述】:

我尝试使用 我自己的从源代码构建的 Linux 内核ubuntu cloud image 并使用 QEMU 启动它。我的自定义内核在 ubuntu 镜像之外:

$ ls
kernel   ubuntu-20.04-amd64.img  ...

这是我使用的命令行:

sudo qemu-system-x86_64 \
    -enable-kvm -cpu host -smp 2 -m 4096 -nographic \
    -drive id=root,media=disk,file=ubuntu-20.04-amd64.img \
    -kernel ./kernel/arch/x86/boot/bzImage \
    -append "root=/dev/sda console=ttyS0" \
    -device e1000,netdev=net0 -netdev user,id=net0,hostfwd=tcp:127.0.0.1:5555-:22

当我启动它时,我可以看到以下日志:

[    0.875446] List of all partitions:
[    0.875736] 0800         4194304 sda 
[    0.875736]  driver: sd
[    0.876259]   0801         4194303 sda1 00000000-01
[    0.876259] 
[    0.876893] No filesystem could mount root, tried: 
[    0.876893]  ext3
[    0.877435]  ext2
[    0.877610]  ext4
[    0.877834] 
[    0.878149] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(8,0)

有什么建议吗?

【问题讨论】:

  • 是否在没有内核选项的情况下启动?
  • 是的,它在没有 -kernel 选项@wxz 的情况下启动

标签: linux linux-kernel qemu


【解决方案1】:

你引用的日志说磁盘映像是分区的:也就是说,sda 是整个(虚拟)磁盘,它有一个分区表,其中有一个名为 sda1 的分区。您的“附加”命令行要求使用“/dev/sda”,就好像磁盘映像上只有一个文件系统一样。改用“/dev/sda1”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-10-06
    • 2019-11-22
    • 1970-01-01
    • 1970-01-01
    • 2015-01-13
    • 2021-03-17
    • 2016-10-26
    相关资源
    最近更新 更多