linewer 发表于 2011-06-25 09:55

qemu调试内核挂在加载root文件系统上????

从官网上下载qemu和相应disk img:linux-0.2.img;编译qemu并编译生成内核2.6.23
运行qemu -s -kernel arch/i386/boot/bzImage -hda linux-0.2.img -append "root=/dev/hda"
挂在
”VFS:cannot open root device "hda" or unknown-block(0,0)
Please append a correct "root=" option; here are the available partitions:
Kernel panic: not syncing vfs unable to mount root fs on unknown block(0,0)"

感觉是根文件系统不对,试了hda1 sda sda1同样错误,甚至/dev/ram也是一样;
手动挂载linux-0.2.img看下里面的fstab也是写的hda;相应的boot里内核位2.6.20,是不是这个只能编译2.6.20的内核调试还是有别的方法
PS:google了半天,网上好些都是说上述命令能运行成功,没有提供我上述遇到的情况,也没找到qemu相关的结果...

wwxbei 发表于 2011-06-26 20:51

官网上那个linux-0.2.img里面已经自带了lilo和kernel,只要
qemu linux-0.2.img
就可以运行了吧?

要自己制作文件系统, 我也遇到很多次不能挂载的问题,至今也没搞清楚是qemu的问题还是内核配置的问题。
现在的情况是用默认配置(arch/x86/configs/i386_defconfig)编出的内核,用自己制作的ext3文件系统能跑起来。
qemu -kernel bzImage -hda rootfs.ext3 -append "root=/dev/sda"
qemu版本是 0.12.5

但是同样的方法对于 qemu-system-mipsel 却死活不行, 本来想模拟MIPS的, 现在只能模拟x86

linewer 发表于 2011-06-27 21:56

回复 2# wwxbei
直接运行那个镜像是好的.
今天下午捣鼓那个VFS挂载问题,还是没啥进展;后来去看qemu的man,看到hda,hdb,hdc,hdd几个硬盘选项,一个个试了下,
发现用hdc是可以的,可以启动到sh#提示符
qemu -s -kernel arch/i386/boot/bzImage -hdc linux-0.2.img -append "root=/dev/hdc"

后来遇到一个问题:在gdbserver设置后,gdb打了断点后,c之后就没法停住,qemu的console中一直输出,刚开始以为是自己用的gdb(6.6)问题,后来试了下gdb7.1还是这样
google了下,zh_kernel上有类似的问题,不过也没给出原因和解决方法
http://zh-kernel.org/pipermail/linux-kernel/2008-August/006422.html

LS的遇见过这个断点打上后断不住的问题么?谢谢!

chishanmingshen 发表于 2012-12-19 15:09

我hda/hdb/hdc/hdd全试了,还是会挂.这个rootfs是到底在哪里?

chishanmingshen 发表于 2012-12-19 19:52

我也挂在了挂载根文件系统这里, 请大家指点下。。。:Q

linuxhunter 发表于 2012-12-20 16:46

内核是否添加了SCSI和SATA驱动?

chishanmingshen 发表于 2012-12-21 08:58

回复 6# linuxhunter
添加了支持SCSI的选项了.

挂在这里:


   

chishanmingshen 发表于 2012-12-26 09:14

qemu -s -kernel arch/i386/boot/bzImage -hdc linux-0.2.img -append "root=/dev/hdc"

求助啊,这个hdc的地方到底应该给啥值,为何老是挂?

wwxbei 发表于 2012-12-26 13:45

用自己做的文件系统, 把ARM跑起来了:
http://blog.chinaunix.net/uid-20273473-id-3267337.html

3.6.8内核,模拟VExpress板子:
qemu-system-arm -kernel /home/hongwang/Public/linux-3.6.8/arch/arm/boot/zImage-nographic-M vexpress-a9 -append "root=/dev/mmcblk0 rw console=ttyAMA0" -sd ~/ARM/QemuA9/a9rootfs.ext3 -dtb ~/Public/linux-3.6.8/arch/arm/boot/dts/vexpress-v2p-ca9.dtb


chishanmingshen 发表于 2012-12-27 09:03

本帖最后由 chishanmingshen 于 2012-12-27 09:28 编辑

我不是用自己做的文件系统, 我是直接用的 linux-0.2.img!感觉没找对 linux-0.2.img这个硬盘根文件系统!在线等高手指点啊~~
回复 9# wwxbei


   
页: [1] 2
查看完整版本: qemu调试内核挂在加载root文件系统上????