闲话
- 本来这两天折腾好爱国渠道,想到 parrot 还没配置,,,然而发现每次都进的 win10,之前一直没留意-_-||,
只是感觉少了点什么。在 bios 里面设置了一下也是直接闪退,然后转 win10启动了
LIVE 进入
- 先 从 LIVE 进入系统看下资料还在不在,看了下 boot 目录下面 grub 下没有看到明显的文件缺失,EFI 下面变成空的了。
- 所以重新安装一下 grub 缺的文件就装回来了吧emmm,挂载原来的 linux 分区。
方案一
-
LIVE 进入,先查看一下 linux 的系统分区,如下图所示我的系统在 sda7
sudo fdisk -l
-
挂载分区
sudo mount /dev/sda7 /mnt
-
暂时挂载需要用到的目录
sudo mount --bind /dev /mnt/dev sudo mount --bind /proc /mnt/proc sudo mount --bind /sys /mnt/sys
-
修改程序执行的 参考根目录位置为原系统目录
sudo chroot /mnt
-
安装修复 grub
sudo grub-install /dev/sda7 sduo update-grub
-
退出环境&卸载挂载的目录和设备
exit sudo umount /mnt/dev sudo umount /mnt/proc sudo umount /mnt/sys sudo umount /mount
-
重启收工
方案二(推荐)
-
从 LIVE u盘选择界面按 c 进入 grub 命令行
-
输入
set
可以查看 当前引导是哪个分区cmdpath=(hd0,gpt1)/EFI/parrot prefix=(hd0,gpt1)/boot/grub root=hd0,gpt1
主要看上面这三个其他可以忽略。(hd0,gpt1)这个部分是第一块硬盘的第一个分区,即u盘。
-
输入
ls
显示类似如下信息(hd0,gpt1) (hd1,gpt2) (hd1,gpt3) (hd1,gpt4) (hd1,gpt5) (hd1,gpt6) (hd1,gpt7)......
找到你的 linux 分区
如果不知道具体是哪个分区可以使用ls (hd1,gpt7)/boot/grub
一个个试,当出现一堆文件就是在这个分区了。ps: 之前进入 live 也可以直接使用
sudo fdisk -l
查看具体位置只不过名字不太一样,比如我的是 sdb7 则对应 (hd1,gpt7) -
使用
set
把当前的引导换到原来那个系统路径set root=hd1,gpt7 set prefix=(hd1,gpt7)/boot/grub
再用
set
看一下这两项是不是已经改好了,因为前面的两句输入错的有人不会有回显,会创建新的项目
(我不知道我为什么知道( ╯-_-)╯┴—┴ ) -
确认之后 输入下面两条命令,不出意外应该进到系统了
insmod /boot/grub/normal normal
-
成功的请直接看跳到步骤7,一些奇怪的症状(希望有人补充),下面的是我的情况
情况1: 输入
normal
出现载入界面 然后报错 回到 live 选择界面解决方案1: 往下翻一页发现多了一页,刚好看到有 parrot 回车成功进入系统。
恩貌似是挂载成功了,但是启动还是引导有问题。可惜无法复现测试一下了。待添加:
-
重新安装修复引导
sudo grub-install /dev/sda7 sudo update-grub
ps: 注意这里我已经吧 u 盘拔掉了,所以不是 sdb7 了
如下图,还好留了张图
-
重启收工
参考链接:
https://blog.csdn.net/weixin_39772481/article/details/79212364
ArchWiki-GRUB
话说 Arch 的 wiki 果然名不虚传啊