The Linux Bootdisk HOWTO 中译版(26) 如果你看到许多错误讯息像是: end_request: I/O error, dev 01:00 (ramdisk), sector NNN 这是 ramdisk driver 所报告的 I/O 错误讯息,可能是因为 kernel 正尝试写入超越了设备的结尾。你的 ramdisk 因为太小而不能持有你的 root filesystem 。请检查你的 bootdisk kernel 的初始化讯息,找一行像是: Ramdisk driver initialized : 16 ramdisks of 4096K size 请针对 root filesystem 未经压缩的 size检查上述的 size 。如果 ramdisks 不够大,那就让它更大吧。 请检查 root disk 实际上有包含你所认为应该被包含的目录。 Copy 到错误的 level 是容易犯的错误,以致於到最後在你的 root 磁碟片上,你会有像是 /rootdisk/bin 的目录,而非 /bin。 请检查是否有 /lib/libc.so ,而它是否有与你硬碟内 /lib 目录中所显示之相同 link 。 请检查你既存系统 /dev 目录内的 symbolic links 是否同时也存在於你的 root 磁碟片 filesystem 上,在此,那些 links 是连往你已包括在你 root 磁碟片上的 devices 。尤其是在很多情况下, /dev/console links是最基本的。 请检查你是否已包括了 /dev/tty1, /dev/null, /dev/zero, /dev/mem, /dev/ram 与 /dev/kmem 这些档案。 请检查你的 kernel 组态设定 - 对於直到登录点 (login point) 所需之所有资源的支援必须被内建,不能使用模组。所以 ramdisk 与 ext2 支援必须被内建 。 请检查你的 kernel root device 与 ramdisk 设定是否正确。 以上已经涵盖一般部分,以下是一些更特定的档案与检查项目: 请确定 init 是以 /sbin/init 或 /bin/init 的形式被包括进来。并且确认它是可执行的。 请执行 ldd init 以检查 init 的函式库。通常这个就是 libc.so ,但是请无论如何还是检查一下。请确定你已放入了必备的函式库与 loaders。 请确定你把正确的 loader 给你的函式库 -- ld.so 是给 a.out 而 ld-linux.so 是给 ELF 。 请针对 getty (或某种类似 getty 的程式,诸如 agetty, mgetty 或 getty_ps)的呼叫,检查你bootdisk filesystem上的 /etc/inittab。请针对你硬碟的 inittab 检查两次。再检查你所使用的程式的 man pages 以确定这些是有意义的。 inittab 可能是最诡异的部分,因为它的语法与内容,依据所使用的 init 程式与系统本质而有所不同。解决的唯一之道就是去阅读 init 与 inittab 的man pages,然後再正确地做出既存系统开机时所做的事。请检查以确定 /etc/inittab 有一个系统初始化的记录 (entry) 。它应该包括一个指令以执行必定存在的系统初始化 script 。