挂载 RootFS 错误:VFS:无法打开根设备“mtdblock4”或未知块(0,0)

挂载 RootFS 错误:VFS:无法打开根设备“mtdblock4”或未知块(0,0)
我的 MTD 分区是:
在“物理映射闪存”上创建 5 个 MTD 分区:
0x00000000-0x00040000:“UBoot”
0x00040000-0x00060000:“BDINFO”
0x00060000-0x00100000:“JFFS2”
0x00100000-0x00380000:“内核”
0x00380000-0x00800000:“根文件系统”

内核命令行是:
内核命令行:console=ttyS0,115200 mem=32M noinitrd root=/dev/mtdblock4 rw rootfstype=squashfs

现在挂载根文件系统时出现错误,内核启动信息如下:

## 正在检查 81000000 处的图像……
   镜像名称:Linux 内核镜像
   创建时间:2009-12-22 2:10:46 UTC
   图像类型:MIPS Linux 内核图像(gzip 压缩)
   数据大小:874176 字节 = 853.7 kB
   加载地址:80000000
   入口点:801fa000
   验证校验和...确定
RTL8389#cp.b 0x80f60000 0xbd060000 401000
复制到 Flash...完成
RTL8389#'
RTL8389#重置

U-Boot 1.3.0(2009 年 10 月 2 日 - 15:21:34)

CPU:MIPS 4KEc 300 MHz,编号:0x90,修订版本:0x6c
外设:200 MHz
动态随机存取记忆体: 32 MB
闪存:8 MB
在:连续剧
输出:串行
错误:串行
芯片配置 - $Revision: 5971 $
交换机型号:GS-2228(端口数:28)
交换芯片:RTL8389M
网:rtl8389#0
按空格键 1 秒内中止自动启动
## 在 bd100000 启动映像...
   镜像名称:Linux 内核镜像
   创建时间:2009-12-22 2:10:46 UTC
   图像类型:MIPS Linux 内核图像(gzip 压缩)
   数据大小:874176 字节 = 853.7 kB
   加载地址:80000000
   入口点:801fa000
   验证校验和...确定
   正在解压内核映像...确定

正在启动内核...

Linux 版本 2.6.19 ([电子邮件保护]) (gcc 版本 3.4.4 mipssde-6.03.00-20051020) #79 PREEMPT 2009 年 12 月 21 日星期一 21:10:37 EST
CPU 修订版本为:0001906c
确定的物理 RAM 映射:
 内存:02000000 @ 00000000(可用)
用户定义的物理RAM映射:
 内存:02000000 @ 00000000(可用)
已建立 1 个区域列表。总页数:8128
内核命令行:console=ttyS0,115200 mem=32M noinitrd root=/dev/mtdblock4 rw rootfstype=squashfs
主指令缓存 16kB,物理标记,4 路,行大小 16 字节。
主数据缓存 16kB、4 路、行大小 16 字节。
合成的 TLB 重新填充处理程序(20 条指令)。
合成的 TLB 加载处理程序快速路径(32 条指令)。
合成的 TLB 存储处理程序快速路径(32 条指令)。
合成的 TLB 修改处理程序快速路径(31 条指令)。
PID 哈希表条目:128(顺序:7,512 字节)
Dentry 缓存哈希表条目:4096(顺序:2,16384 字节)
Inode 缓存哈希表条目:2048(顺序:1,8192 字节)
内存:30252k/32768k 可用(1668k 内核代码、2516k 保留、351k 数据、100k 初始化、0k highmem)
挂载缓存哈希表条目:512
检查‘等待’指令...可用。
NET: 注册协议系列 16
NET: 注册协议系列 2
IP 路由缓存哈希表条目:256(顺序:-2,1024 字节)
TCP 已建立哈希表条目:1024(顺序:0,4096 字节)
TCP 绑定哈希表条目:512(顺序:-1,2048 字节)
TCP:哈希表已配置(建立1024绑定512)
TCP reno已注册
JFFS2 版本 2.2。(NAND)(C)2001-2006 Red Hat,Inc.
io 调度程序 noop 注册
io 调度程序预期注册
io 调度程序截止期限已注册
io 调度程序 cfq 注册(默认)
串行:8250/16550 驱动程序 $Revision: 1.90 $ 1 个端口,IRQ 共享已禁用
serial8250:MMIO 0x0(irq = 31)处的 ttyS0 是 16550A
闪存设备:2000000,位于 bd000000
物理映射闪存:在 16 位存储体中的 0x0 处找到 1 x16 设备
 Amd/Fujitsu 扩展查询表位于 0x0040
CFI 芯片数量:1
cfi_cmdset_0002:由于代码损坏,禁用擦除暂停程序。
在“物理映射闪存”上创建 5 个 MTD 分区:
0x00000000-0x00040000:“UBoot”
0x00040000-0x00060000:“BDINFO”
0x00060000-0x00100000:“JFFS2”
0x00100000-0x00380000:“内核”
0x00380000-0x00800000:“根文件系统”
TCP立方注册
NET: 注册协议系列 1
NET: 注册协议系列 17
VFS:无法打开根设备“mtdblock4”或未知块(0,0)
请附加正确的“root=”启动选项
内核崩溃 - 未同步:VFS:无法在未知块(0,0)上挂载根文件系统

什么原因?

答案1

您是否在内核中为该设备类型及其文件系统构建了正确的模块?

您可以尝试使用 initramfs 并从那里安装该设备。

答案2

该问题已得到解决。
解决方案是打开CONFIG_SYSFS配置项

相关内容