kali引导修复
问题:windows更新系统有时会把kali的引导刷掉,本文主要解决kali引导失效。
准备:kali安装盘(带live模式)
流程:
- U盘启动,进入live模式(启动界面第一个选项)
- 打开终端
- 获取root权限
sudo -i
- 查看kali系统安装在哪些盘、分区
fdisk -l
- 挂载分区——分情况
a.磁盘分区安装时没有分区,只有一个根目录
1.只需要挂载根目录盘符mount /dev/sda# /mnt
注:1./sda#是根目录所在分区编号,可由第四步得知。2.固态通常是/nvme0n1…
2.再挂载
mount --bind /dev /mnt/dev
mount --bind /proc /mnt/proc
mount --bind /sys /mnt/sys
3.chroot到硬盘上的linux系统
chroot /mnt
4.安装&更新Grub
grub2-install /dev/sda
grub2-mkconfig -o /boot/grub2/grub.cfg
5.修复成功后,卸载设备,退出chroot环境,重启
exit #退出chroot环境
umount /mnt/dev
umount /mnt/proc
umount /mnt/sys
umount /mnt
reboot
b.手动分区
1.我的系统分区: / /boot /swap.根据实验除了/swap不需要挂载,其他的都需要挂载,除此之外还要挂载EFI分区才可以正常执行grub更新过程.
mount /dev/nvme0n1# /mnt #挂载root分区
mount /dev/nvme0n1# /mnt/boot #挂载boot分区,如果boot没有单独分区,默认在根目录下,不用在单独挂载
mkdir -p /mnt/boot/efi #创建EFI分区的挂载点
mount /dev/nvme0n1# /mnt/boot/efi #挂载EFI分区
注:nvme0n1#是分区代号(盘符数字),"#"是就个人情况来说的,机械一般是sda开头
2.继续挂载
mount --bind /dev /mnt/dev
mount --bind /proc /mnt/proc
mount --bind /sys /mnt/sys
3.chroot到硬盘上的linux系统
chroot /mnt
4.开始安装grub:
apt-get install grub-efi-amd64
grub-install --recheck --no-floppy --force #把grub的boot loader安装在EFI分区上
echo "configfile (hd0,gpt#)/boot/grub.cfg" > /boot/efi/EFI/grub.cfg
#让grub从/boot加载grub.cfg
#我记得当时是这个文件夹,就是在/boot下查找grub.cfg这个文件,找到之后把路径记下来就好了
#关于(hd0,gpt#) 和boot在的/dev/sda 是一个数字标志符
#按道理这里每个人应该不同,但我是按这儿写的来的最后也成功了
update-grub #创建grub menu list
5.修复成功后,卸载设备,退出chroot环境,重启
#开始卸载每一个挂载的盘,如果显示不能卸载,使用umount -l /mnt/…,强制卸载
exit #退出chroot环境
uumount /.........
umount /mnt/dev
umount /mnt/proc
umount /mnt/sys
umount /mnt
reboot
6. 重启后进入linux,出现了见不到windows引导的情况:
进入系统执行
apt-get update
apt-get upgrade
apt-get dist-upgrade
再重启就有了
过程截图:
参考:https://blog.csdn.net/Blueooo/article/details/82930789