群晖 grub error

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了群晖 grub error相关的知识,希望对你有一定的参考价值。

参考技术A 该症状是当设备描述符正确但是随后出现没定义过的某个错误时出现。
解决方法,该错误一般出现在使用交互式的Grub安装方式。也就是Grub下的安装方法时没有输入以下两行。grub>root(hd0,0)。grubsetup(hd0,0)。
(hd0,0)必须用你自己的引导扇区代替,(hd0,0)也必须同时用你选择的harddrive代替,因为上述两条命令的实质就是在把bootloader安装到第一个硬盘上。

GRUB修复记录

很多时候,特别是在linux调整分区后,开机重启时会出现:

error : unknow filesystem
grub rescue>

 

这表示你的grub2的配置文件出错了。
由于分区调整或分区UUID改变造成grub2不能正常启动,从而进入修复模式了(grub rescue),也称救援模式。
在救援模式下只有很少的命令可以用:set 、ls 、 insmod 、 root 、 prefix:
(1)set 查看环境变量,这里可以查看启动路径和分区。
(2)ls 查看设备
(3)insmod 加载模块
(4)root 指定用于启动系统的分区,在救援模式下设置grub启动分区
(5)prefix 设定grub启动路径

具体修复步骤如下:
1、查看分区:

grub rescue> ls

会出现如下字样:

(hd0) (hd0,msdos9) (hd0,msdos8) (hd0,msdos7) (hd0,msdos6) (hd0,msdos5) (hd0,msdos2) (hd0,msdos1)

注:上面是我的分区设备,每个人可能不一样,但原理都是一样的。
2、寻找Linux所在分区,就是寻找你的Linux系统是装在以上哪个分区里:
grub rescue> ls (hd0,msdos1)/
若出现unknown filesystem字样,则尝试下一个,若出现的是你的Linux主文件夹下的文件夹和文件的名字,那就是的要找的分区了。
3、假如你找到的启动分区是hd0,msdos6,修改启动分区:

grub rescue>set root=(hd0,msdos6) //grub路径设置
grub rescue>set prefix=(hd0,msdos6)/grub2
grub rescue>insmod normal //启动normal启动
grub rescue>normal

之后你就会看到熟悉的启动菜单栏了,如果可以直接运行linux,则直接看第5步。
4、 进入命令行启动linux
进入系统启动选项界面后还是进不去,因为你还没有真正的修改grub,这个要到Linux里修改进入系统启动项界面后,按C进入命令行模式

grub >set root=hd0,msdos8
grub >set prefix=(hd0,msdos8)/boot/grub
grub >linux /vmlinuz-xxx-xxx root=/dev/sda8 //里边的xxxx可以按Tab键,如果有acpi问题,在最后加一句acpi=off
grub >initrd /initrd.img-xxx-xxx
grub >boot

这样就可以进入了
5、正常进入系统后,如果不先修复grub的引导的话,重启电脑之后还是会进入刚刚那个rescue模式。
首先重建/boot/grub2/grub.config文件。
如果是Ubuntu直接在终端里运行:

sudo update-grub

如果是其他的Linux发行版,执行sudo update-grub命令时候提示找不到该命令的话可以用下边命令来代替:

grub2-mkconfig -o /boot/grub2/grub.cfg

6、安装grub到分区,首先运行df命令:

df

文件系统 1K-块 已用 可用 已用% 挂载点


devtmpfs 1725688 0 1725688 0% /dev
tmpfs 1740456 0 1740456 0% /dev/shm
tmpfs 1740456 1924 1738532 1% /run
tmpfs 1740456 0 1740456 0% /sys/fs/cgroup
/dev/mapper/fedora-root 32878296 7421308 23757148 24% /
tmpfs 1740456 148 1740308 1% /tmp
/dev/mapper/fedora-home 16113532 306980 14968308 3% /home
/dev/sda6 999320 155568 774940 17% /boot
tmpfs 348088 16 348072 1% /run/user/42
tmpfs 348088 5788 342300 2% /run/user/1000


可看出挂载点是 /dev/sda,sda的含义是指的你的第几个磁盘a代表第一块sdb表示第二块而sda1代表第一块磁盘的第二分区。你可以用ls /dev/sd*   查看你的磁盘情况。
再运行:

sudo grub2-install /dev/sda


出现

Installation finished. No error reported.

即表示完成修复。

 

 将windows设为默认启动项

grub2-set-default "Windows Boot Manager (on /dev/sda1)"

 

参考资料:

http://blog.chinaunix.net/uid-27037833-id-3235145.html

https://www.cnblogs.com/keitsi/p/6229005.html

https://blog.csdn.net/peerless1994/article/details/52226169

http://www.cnblogs.com/saptechnique/archive/2012/04/05/2433643.html

http://www.jinbuguo.com/linux/grub.cfg.html

http://linux-wiki.cn/wiki/Grub2%E9%85%8D%E7%BD%AE

 

特别感谢:

LunarShaddow 对本文中实际操作部分的指导!

以上是关于群晖 grub error的主要内容,如果未能解决你的问题,请参考以下文章

黑群晖隐藏启动界面

vmware黑群晖硬盘直通只能读取2个硬盘

黑群晖 5022 安装教程

黑群晖安装教程

3代处理器装黑群晖哪个版本

黑群晖各种问题修正(黑裙洗白黑裙休眠硬盘顺序)