我有某种家庭娱乐系统,运行旧版本的 Linux 2.6。它有一个 SATA > USB 桥接系统和几个 USB 端口。我想做的是将其用作网络附加存储。
现在,幸运的是,它有一个开放且可访问的 telnet 服务器正在运行。
问题是,我找不到内核或初始化系统在哪里。该盒子正在运行 BusyBox。
该板上有一个闪存芯片。但是,在 block/ 中的 sysfs 下,我看到多个闪存芯片:
/sys/block # ls
...
mtdblock0 mtdblock2 mtdblock4
mtdblock1 mtdblock3
顺便说一句,这是为什么呢?
现在,我想/dev
为它们创建一个条目,以便我可以将它们转储到 USB 闪存驱动器并进行分析。
所以我这样做了:
/sys/block # cat /sys/block/mtdblock0/dev
31:0
和 ..
mknod /dev/mtdblock0 c 31 0
以 0 退出,然后我尝试读取原始数据来测试设备:
/sys/block # cat /dev/mtdblock0
cat: /dev/mtdblock0: No such device or address
这是为什么? dd 也这么说。有条目/proc/devices
:
/sys/block # cat /proc/devices
Character devices:
1 mem
{ ... }
Block devices:
1 ramdisk
7 loop
8 sd
31 mtdblock
{ ... }
答案1
mknod /dev/mtdblock0C31 0
您创建了一个字符设备。你想要一个块设备。所以在命令中使用b
而不是。c
mknod
块设备号和字符设备号是独立的。块设备 31:0 与字符设备 31:0 无关。您的内核没有字符设备 31:0 的驱动程序,因此出现“没有此类设备或地址”错误。