加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux:在qemu中运行自编译内核:VFS:无法在未知的wn-block(0,0

发布时间:2020-12-14 01:46:40 所属栏目:Linux 来源:网络整理
导读:我试着让它运转起来,不知道我做错了什么.我已经创建了一个Debian.img(原始格式的磁盘,带有虚拟设备管理器 – 我认为是libvirt)并安装了debian而没有任何麻烦.现在我想用自编译的内核运行它.我从我的工作(虚拟)debian复制了.config文件,并且没有进行任何更改.
我试着让它运转起来,不知道我做错了什么.我已经创建了一个Debian.img(原始格式的磁盘,带有虚拟设备管理器 – 我认为是libvirt)并安装了debian而没有任何麻烦.现在我想用自编译的内核运行它.我从我的工作(虚拟)debian复制了.config文件,并且没有进行任何更改.这就是我做的:

qemu-system-x86_64 -m 1024M -kernel /path/to/bzImage -hda /var/lib/libvirt/images/Debian.img -append "root=/dev/sda1 console=ttyS0" -enable-kvm -nographic

但在启动过程中我总是收到此错误消息.

[    0.195285] Initializing network drop monitor service
    [    0.196177] List of all partitions:
    [    0.196641] No filesystem could mount root,tried: 
    [    0.197292] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
    [    0.198355] Pid: 1,comm: swapper/0 Not tainted 3.2.46 #7
    [    0.199055] Call Trace:
    [    0.199386]  [<ffffffff81318c30>] ? panic+0x95/0x19e
    [    0.200049]  [<ffffffff81680f7d>] ? mount_block_root+0x245/0x271
    [    0.200834]  [<ffffffff8168112f>] ? prepare_namespace+0x133/0x169
    [    0.201590]  [<ffffffff81680c94>] ? kernel_init+0x14c/0x151
    [    0.202273]  [<ffffffff81325a34>] ? kernel_thread_helper+0x4/0x10
    [    0.203022]  [<ffffffff81680b48>] ? start_kernel+0x3c1/0x3c1
    [    0.203716]  [<ffffffff81325a30>] ? gs_change+0x13/0x13

我做错了什么?请有人帮忙.我需要传递-initrd选项吗?我已经试过了,但还没有运气.

解决方法

我自己想通了.一段时间过去了,但我记得解决方案是提供一个初始的ramdisk.这就是我使用硬件加速的方法.

编译

make defconfig

CONFIG_EXT4_FS=y
CONFIG_IA32_EMULATION=y
CONFIG_VIRTIO_PCI=y (Virtualization -> PCI driver for virtio devices)
CONFIG_VIRTIO_BALLOON=y (Virtualization -> Virtio balloon driver)
CONFIG_VIRTIO_BLK=y (Device Drivers -> Block -> Virtio block driver)
CONFIG_VIRTIO_NET=y (Device Drivers -> Network device support -> Virtio network driver)
CONFIG_VIRTIO=y (automatically selected)
CONFIG_VIRTIO_RING=y (automatically selected)

—>见http://www.linux-kvm.org/page/Virtio

在配置中启用paravirt

在HOST上禁用NMI监视程序以在GUEST上使用性能计数器.你可以忽略这个.

cat /proc/sys/kernel/nmi_watchdog

—>见http://kvm.et.redhat.com/page/Guest_PMU

从Qemu开始

sudo qemu-system-x86_64 -m 1024M -hda /var/lib/libvirt/images/DEbian.img -enable-kvm -initrd /home/username/compiled_kernel/initrd.img-3.2.46 -kernel /home/username/compiled_kernel/bzImage -append "root=/dev/sda1 console=ttyS0" -nographic -redir tcp:2222::22 -cpu host -smp cores=2

从KVM开始

Kernal路径:/ home / username / compiled_kernel / bzImage
Initrd路径:/home/username/compiled_kernel/initrd.img-3.2.46
内核参数:root = / dev / sda1

希望如果有人有同样的问题,这会有所帮助.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读