为什么linux会提示找不到某路径,【图片】想用处于sda上的ubuntu12的grub引导sdb上的centos7,开机有centos选项,选中回车后提示找不到文件【linux吧】_百度贴吧...

本文详细介绍了在GRUB中如何调试和解决加载Linux内核时遇到的问题,包括insmodext4模块的加载、内核路径与参数设置、initrd命令的使用,以及利用grub命令行进行手动测试的方法。通过检查文件系统支持、路径准确性及内核选项,逐步排查引导错误。
摘要由CSDN通过智能技术生成

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

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

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 —— 绝对路径 —— 这种形式,不太确定)

建议你自己调试下

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值