当前位置: 首页 > Linux

ubuntu系统grub引导修复

时间:2023-04-06 02:36:37 Linux

特别是在linux中调整分区后,开机重启会出现error:unknownfilesystemgrubrescue>字样,系统就是进不去。这意味着你的grub2配置文件坏了...由于分区调整或分区UUID改变,grub2无法正常启动,从而进入修复模式(grubrescue),也称为救援模式。救援模式下只有几个命令可用:set、ls、insmod、root、prefix(1)set查看环境变量,这里可以查看启动路径和分区。(2)ls查看设备(3)insmod加载模块(4)root指定用于启动系统的分区,将grub引导分区设置为rescue模式(5)prefix设置grub引导路径。具体修复步骤如下:1、检查分区:grubrescue>ls回车会出现以下字样:(hd0)(hd0,msdos9)(hd0,msdos8)(hd0,msdos7)(hd0,msdos6)(hd0,msdos5)(hd0,msdos2)(hd0,msdos1)注:以上是我的分区设备,每个人可能不一样,但是原理是一样的。grub>find/boot/grub/grub.conf也行2、找到ubuntu所在的分区:(就是找到你的Linux系统安装在哪个分区)grubrescue>ls(hd0,msdos1)/Ifunknownfilesystemappears,thentrythenextone...如果出现你的ubuntu主文件夹下的文件夹和文件的名称,那就是你正在寻找的分区。3、修改boot分区:(如果找到的boot分区是hd0,msdos8)rescue>root=(hd0,msdos8)grubrescue>prefix=/boot/grub//grub路径设置grubrescue>setroot=(hd0,msdos8)grubrescue>setprefix=(hd0,msdos8)/boot/grubgrubrescue>insmodnormal//启动normal启动grubrescue>normal之后就会看到熟悉的启动菜单栏4.输入命令行启动ubuntu后进入系统启动选项界面,还是进不去,因为你还没有真正修改grub。这个需要在ubuntu中修改。进入系统启动选项界面后,按C键进入命令行模式。grub>setroot=hd0,msdos8grub>setprefix=(hd0,msdos8)/boot/grubgrub>linux/vmlinuz-xxx-xxxroot=/dev/sda8//里面的xxxx可以按Tab键,如果有acpi问题,在最后加一句acpi=offgrub>initrd/initrd.img-xxx-xxxgrub>boot这样就可以输入5了。进入ubuntu修复grub,运行sudoupdate-grub`sudogrub-在终端sda6中安装/dev/,重启,完成!!注意:有时只修改1~3步,然后在菜单栏就可以进入系统,一切正常。重启的时候,系统只有左上角的光标一直在闪,进不了系统。可能是启动项的问题,把启动项改成硬盘启动就没事了。方法二:先制作一个Ubuntu启动U盘,复制code代码如下:sudoddif=ubuntu-13.10-desktop-amd64.isoof=/dev/sdb1#/dev/sdb1为U盘盘符1.使用启动USB进入Ubuntu试用环境2.查看硬盘分区状态,获取Linux系统安装分区号sudofdisk-l查看输出结果,然后根据判断Linux系统安装在哪个硬盘和分区文件类型和分区大小。我的电脑在/dev/sda3上安装了Ubuntu。或者,打开Gparted图形工具查看分区信息。挂载Ubuntu分区3.已知Ubuntu安装在/dev/sda3上,所以我们可以使用如下命令挂载Ubuntu安装分区。您需要将/dev/sda3替换为您自己的Linux安装分区。sudomount/dev/sda3/mnt4.挂载其他需要的目录(使用--bind)sudomount--bind/dev/mnt/devsudomount--bind/proc/mnt/procsudomount--bind/sys/mnt/sys5.Chroot到Linux系统代码上硬盘如下:sudochroot/mntchroot命令切换根目录到指定目录6.Install&updateGrubgrub2-install/dev/sdagrub2-mkconfig-o/boot/grub2/grub.cfg7.Grub已经修复成功,我们还需要退出chroot环境,卸载挂载的设备和目录:重新开始。*可以输入grub,好办>root(hd0,x)提示:输入(后按TAB键自动补全,很好用。x表示你的linux根分区>linux/vmlinuzroquietinitrd/initrd.lzboot首先找到menu.lst菜单文件:find--set-root/boot/grub/menu.lst然后加载:Grubcommandindexconfigfile/boot/grub/menu.lst菜单文件可以换成grub.conf试试。更多互联网资讯,关注蓝队云微信公众号,享受上云福利