Debian grub丢失后修复的方法
第一种,命令方式
通过Debian rescue模式重建grub
- 制作debian的U盘安装盘
- 进入debian的U盘安装盘的 rescue模式(急救模式)
- 选择语言/键盘/输入姓名/配置网络等信息后,进入急救模式->选择在安装程序环境中运行shell->选择请不要使用根文件系统(方便手动挂载已有系统文件系统)。
# 由于/ /boot /home都是独立的分区,所以需要分别进行挂载 mount /dev/sda11 /mnt mount /dev/sda8 /mnt/boot mount /dev/sda12 /mnt/home mount -t proc proc /mnt/proc mount -t sysfs sys /mnt/sys mount -o bind /dev /mnt/dev chroot /mnt /bin/bash grub-install /dev/sda grub-mkconfig -o /boot/grub/grub.cfg cd / umount -a exit cd / umount -a reboot # 重启后即可出现引导菜单界面 # 若有办法进入系统(如手动启动引导),则可进入系统后直接采用如下方式安装grub sudo grub-install /dev/sda sudo grub-mkconfig -o /boot/grub/grub.cfg reboot
手动启动引导
从win的启动引导中进行手动启动引导.此方式需要在win下通过easybcd安装grub,所以需要能进入win系统.既然能进入win,当然也可以在win下制作对应Linux系统的U盘安装盘,然后通过上面介绍的救援模式进行修复.
- 在win下安装easybcd
- 添加linux的grub,可针对不同分区多添加几项,避免不断重启添加其他分区。
- 重启后即可出现linux的grub引导项,可逐项尝试。
- 进入grub rescue后,即可进行手动启动引导。
- 可通过ls查看分区信息.
- 若根分区为(hd0,10),输入如下命令(注:root和prefix后到末尾都没有输入空格)
set root=(hd0,10) set prefix=(hd0,10)/boot/grub insmod normal normal # 最后的normal命令输入后即可进入引导菜单。 # 进入系统后即可直接安装grub # 若未能进入grub2引导菜单,而是进入了另一个grub2命令界面.可在此进行如下操作. set root=(hd0,msdos8) # (hd0,msdos8) 为/boot分区 linux /vmlinuz* ro root=/dev/sda11 # *指具体的内核版本,可通过tab键补全, sda11为根目录的分区. initrd /initrd.img* boot # 至次已经成功启动系统. # set root=(hd0,msdos8) (hd0,msdos8) 为/boot分区 # linux /vmlinuz* ro root=/dev/sda11 *指具体的内核版本,可通过tab键补全, sda11为根目录的分区. 注:若/boot为独立分区时: /vmlinuz* 若/boot不是独立分区时: /boot/vmlinuz* # initrd /initrd.img* *指具体的内核版本,可通过tab键补全 # set root后,可通过ls命令查看该分区指定路径下的文件信息.比如:不记得分区信息了,可依次设置分区,然后通过ls查看/或/boot下是否包含内核文件及根分区相应的目录,从而确定/分区和/boot分区.
转自:https://www.uupee.com/home/view/1362/
第二种,图形化方式
debian安装U盘进入高级模式
选命令行急救模式
一路默认配置即可,中文就行
网络用不到
一直到选择根目录,就是linux安装的系统盘,/ 目录 ,我的是/dev/sda2
yes即可
如果:此处选择后,进入了恢复模式的命令行,输入exit退出恢复模式即可,继续下一步
进入急救模式
选重安装Grub引导,需要手动输入esp分区
输出引导分区,我一般esp分区安装在头部,即/dev/sda1。默认安装的是尾部盘区,看自己当初磁盘分区
安装完,重启系统就好了
转自:https://blog.csdn.net/liao1049164366/article/details/117133568