下面是 linux 系统启动的信息,显示 无法挂载 根文件系统,大家帮忙瞧一瞧,猜一猜 是什么问题!谢谢

前面内容省略...
RAMDISK: Couldn't find valid RAM disk image starting at 0.
Waiting for root device /dev/mmcblk1p2...
mmc1: host does not support reading read-only switch. assuming write-enable.
mmc1: new SD card at address d8b4
mmcblk1: mmc1:d8b4 SU02G 1931264KiB
mmcblk1: p1 p2 p3
mmcblk1: error -110 transferring data
end_request: I/O error, dev mmcblk1, sector 1323336
end_request: I/O error, dev mmcblk1, sector 1323344
....省略类似
JBD: Failed to read block at offset 7898
....省略类似
mmcblk1: error -110 sending read/write command
end_request: I/O error, dev mmcblk1, sector 1518960
Buffer I/O error on device mmcblk1p2, logical block 163935
lost page write due to I/O error on mmcblk1p2
....省略类似
mmcblk1: error -110 sending read/write command
end_request: I/O error, dev mmcblk1, sector 474296
JBD: recovery failed
EXT3-fs: error loading journal.
mmcblk1: error -110 sending read/write command
end_request: I/O error, dev mmcblk1, sector 1260080
mmcblk1: error -110 sending read/write command
end_request: I/O error, dev mmcblk1, sector 207480
FAT: unable to read boot sector
VFS: Cannot open root device "mmcblk1p2" or unknown-block(179,10)
Please append a correct "root=" boot option; here are the available partitions:
b308 1931264 mmcblk1 driver: mmcblk
b309 103712 mmcblk1p1
b30a 1536948 mmcblk1p2
b30b 263340 mmcblk1p3
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(179,10)
这是一套 以arm 6410 为处理器的 嵌入式 产品 ,生产了好多太,唯独这一台启动不起来,应该 是 文件被损坏了, ...大家怎么看?

第1个回答  2011-05-30
挂载文件系统不成功,从启动信息来看,你的根文件系统是放在SD卡
1. 先确定你的SD卡是否是好的,如果说好多台都行的话,可以先把这台出问题的SD卡插入到另外好的产品中试试看,
2. 如果这台出问题的SD卡插到其他产品中没问题,可以再用其他可以工作的SD卡插到这台有问题的设备中,这样基本上可以定位问题了。追问

sd卡没有问题,应该是系统文件被损坏了,但是为什么会坏呢?

追答

根据打印的信息跟踪一下代码吧
我想知道你为什么肯定SD卡没有问题?
我看这打印的信息应该是SD卡驱动所打印出来的吧,应该是扇区读取出错了。
如果说你这SD卡放其他嵌入式产品中,还存在这样的问题,可能存在的原因还是有两种:
SD卡坏了和根文件系统坏了
如果SD卡重新分区格式化后写入文件系统没出错了,那可以肯定SD卡没问题,才能讨论你所说的“系统文件被损坏了,但是为什么会坏呢”这个问题。
而我的意见更倾向于SD卡坏了,因为出现的是I/O error,我的理解是不是读取文件错误,而是读取扇区中的数据时就出错了,在发送读/写命令和SD卡应答的时候就出错了。
所以我还是建议你再查一下是不是真的是SD卡没问题。

追问

非常感谢您的回答,这个CF卡被分成两个区,一个分区可以正常访问,但是另外一个区就是打不开(我插到电脑上也试过),依照此,是否可以断定CF卡没有被损坏呢? 我也很想格式化掉这个CF卡,但是这样现场就被破坏了。根据客户的反应,在保存数据的过程中突然断电,就会出现这样的情况,后来我查阅了网上资料,是否是因为文件系统的问题呢,ext2,ext3,对于非正常断电会有导致数据被破坏的可能性,虽然他们有自修复的功能。

追答

这样的话,你可以这么做
在嵌入式设备去掉操作系统(或者直接在U-BOOT下,假如有的话),编写一个读CF卡的小程序,根据linux下启动信息,直接读取指定出错的扇区数据,如果能正常读到数据的话说明CF卡没坏。
另外将卡插入PC前检查一下卡的写保护功能打开还是关闭了。
PC机访问出错,提示的信息注意看一下,syslog里面是否有对你有帮助的信息?