该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

描述下原理,这样可以自己调试

1、insmod ext2:目的是令grub可以读取相应文件系统中的文件,可能应是insmod ext4。之前写ext2是因为一来不知grub2有无ext4模块(可能用ext2指代ext2和ext4),二来注意到原配置文件中写了insmod ext2,先以此作尝试,既然仍提示 “未知文件系统”,可以尝试改成ext4

2、linux命令:此命令加载内核,重点有:

a、内核路径。当使用/开头时,默认使用root命令(grub root命令,不是kernel option)指定的分区;当使用指定分区,如(hd1,msdos1)开头时,忽略root命令

b、内核参数(kernel option)。必须指定的是root参数,这里使用root=uuid=xxx(指定uuid必须配合initrd/initramfs中的脚本,如无initrd/initramfs,则不支持uuid=这种形式,这个例子中有initramfs,故可用)应无问题

3、initrd命令:载入initrd/initramfs。同linux命令,但只需注意文件路径

整个引导linux过程大体分:

1、grub部分。可能的问题是找不到文件,原因常见俩:fs不支持、路径和/或文件名写错了

2、linux部分。可能的问题是kernel option设置不正确

目前你的问题还属grub部分。grub支持简单的shell,支持单命令的使用测试。因此建议:

1、进入grub命令行模式,help列出支持的命令

2、测试insmod ext4。如不存在,可使用lsmod查看支持的modules

3、使用ls命令。如ls (hd1,msdos1)/ 可列出该分区的文件,通过结果可知:

a、是否支持该分区文件系统

b、确认(hd1,msdos1)是否正确指定到centos的boot分区,检验方法是查看列出的文件是否包含vmlinuz和initramfs文件

c、ls (hd1,msdos),查看分区信息,如辨识文件系统之类的。和列文件区别是末尾不带斜杠

4、手动测试时,linux、initrd命令无错后,可输入boot,直接测试引导

5、search命令。该命令可在所有支持的分区中搜索某名字的文件,用法是search后面直接跟文件名(印象中需要写成/file —— 绝对路径 —— 这种形式,不太确定)

建议你自己调试下