内核启动报错:Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(1,0)

Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(1,0)
在开发板启动后,串口输出停止了,内核卡住了,经过查看串口消息,发现了kernel panic这段内核恐慌的报错提示,提示不能挂载根文件系统。
因为我用的是ramdisk虚拟磁盘充当文件系统的,但是内核并没有准确设置randisk的大小,我做的ramdisk大小是64M,也就是65536Kbytes。

内核配置:
make menuconfig
general setup找到 Initial RAM filesystem and RAM disk 这一行,enable它
filesystem 里启动对ext2文件系统的支持,因为ramdisk是ext2文件系统。
device drivers-> block devices:
找到下面两个设置ramdisk的默认数量,虽然我们只有1个ramdisk,不过他自带默认是16,那就16吧,重点是第二个默认的ramdisk大小(默认是16384,也就是默认为16M的ramdisk),注意以kbytes为单位,我做的ramdisk是64M,上面说了,就是65536Kbytes。所以ram磁盘大小必须设置为65536千字节,不然会内核恐慌(kernel panic)报错的。
(16) Default number of RAM disks
(65536) Default RAM disk size (kbytes)

修改后,重启系统,顺利开机。另外内核命令行参数设置如下:
其实就是默认的:
Kernel command line: console=ttyPS0,115200 root=/dev/ram rw earlyprintk

在uboot启动时设置环境变量:
setenv bootargs ‘console=ttyPS0,115200 root=/dev/ram rw earlyprintk’

你可能感兴趣的:(linux内核学习)