Linux 修复grub开机引导(ubuntu)

Linux 修复grub开机引导(ubuntu),第1张

问题 : 有时候Linux系统/boot分区损坏时,启动Linux系统时直接进入字符介面的grub引导,并没有进入到系统或者开机显示 error:unknow filesystem提示

解决办法:

Linux开机自动会进入到grub引导介面(如果没进入到grub引导介面可以按C键进入)

第一步:找到系统对应的扇区及/boot/grub目录

注意 :假设是硬盘接口类型sd,hd0对应是sda hd1对应是sdb

(hd0)≠(hd0)

(hd1,gpt2)=(hd1,2)

ls (hd1,gpt2) 查看(hd1,gpt2)扇区信息(盘符、空间等)

ls (hd1,gpt2)/  查看(hd1,gpt2)扇区下的内容(文件、文本等)

如果打印每个扇区目录信息,会出现两种情况:

1、ls (hd1,gpt2)显示Unknow filesystem提示说明这个扇区不是我们要找系统分区

2、ls (hd1,gpt2)显示/boot /proc等系统目录信息说明这个扇区是我们要找的系统分区

如果找到对应扇区的系统分区,可能会遇到两种情况:

1、 A目录下有/boot/grub

2、A目录下有/boot,B目录下有/grub (此时在第二步加载系统内核要使用 set prefix=(hd1,gpt2)/grub 命令)

grub >ls

(hd0), (hd1), (hd1, gpt1), (hd2,gpt2), (hd3, gpt3)

第二步:加载系统内核

grub >set root=hd1,2 #此处不需要括号,加括号也可以,hd0和hd1是有区别

grub >set prefix=(hd1,2)/boot/grub

grub >linux /vmlinuz root=/dev/sdb2 #vmlinuz必须使用TAB补全(可能有后缀),注意sda或sdb需要看自己的实际情况

grub >initrd /initrd.img-xxx #TAB补全,多内核情况下版本需统一

grub >boot

提示 :如果在boot之后不幸进入BusyBox,说明参数设置有问题,可以仔细查看出错的日志,再重启系统后重复执行第二步 *** 作(重启系统后上面设置的参数会被清空)。

第三步:修改grub引导

如果成功进入系统,记得要马上信息grub引导,不然重启系统后问题还是存在

sudo update-grub2 #grub2命令(高版本使用grub2)

$ sudo grub-install /dev/sdb

第四步:重启系统

重启系统后即可正常进入系统

reboot

出现grub rescue模式一般是硬盘分区出现变动、导致旧的grub找不到启动文件而出现的。

出现错误具体原因未知,但开机不能引导肯定是grub配置文件出错,/boot/grub2/grub.cfg

解决方法:

1,插入安装U盘或者光盘,进入救援模式,重装grub重新生成grub.cfg文件:grub2-install /dev/sda*boot目录所在分区grub2-mkconfig -o /boot/grub2/grub.cfg重启后应该就OK了。

2,grub>模式下:输入:ls 查看所有磁盘分区:hd。x,x......用:ls hd(x,x)/grub 找grub所在的分区,有正确执行结果的便是找到linux所在分区后执行setprefix=hdx,x/grubsetroot=hx,x、insmod normal再使用normal命令进入系统后,再修复grub 配置。or:查找boot分区:find /boot/grub/menu.lst 或者 find /boot/grub2/grub.cfg

输入以下命令:cat hd0,7/boot/grub/grub.conf 关于内核信息的,看一下就明白了。按照下面命令依次输入指定/boot分区使用命令:grub>root hd0,0grub>kernel /boot/vmlinuz-2.6.18-53.el5 ro root=LABEL=/ rhgb quiet 回车grub>initrd /boot/initrd-2.6.18-53.el5.img 回车boot 回车启动

在个人计算机使用 Linux系统时,通常都是Linux和MS Windows 9X或MS Windows NT并存的。

由于重新安装其他的 *** 作系统,经常会导致原有的Linux不能启动。这主要是因为,这些 *** 作系统默认为计算机中没有其他的 *** 作系统,因而改写了硬盘的主引导记录(MBR),覆盖掉了Linux的LILO系统引导程序。

如果有急救盘组,那么很简单,用第一张启动盘启动硬盘的Linux系统,重新运行LILO命令,就可以将LILO系统引导程序写回硬盘的主引导记录,再次开机即可。

最先应该想到,也许也是最简单的办法,就是当boot loader—通常都是grub—开始执行时,通过它调整系统运行级别。

在出现菜单项后,按下键盘上的“e”按键,这样,菜单项能显示一个或者多个启动命令,找到有关内核的这一行,将光标移到上面,高亮这一行,再按下“e”,grub就会将这行内容用一个简单的编辑器环境打开,让我们能够对其做出改变。

很简单,只需要告诉init程序,我们希望通过那个级别启动即可。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8459884.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-16
下一篇 2023-04-16

发表评论

登录后才能评论

评论列表(0条)

保存