kali更新grub修复双系统windows10引导启动项
kali双系统grub修复windows10引导启动项
背景
本人笔记本只有一块SSD硬盘,装有一个UEFI启动模式的win10 操作系统,经过分区后安装了KALI,结果2022年6月某次最新更新kali系统重启电脑后,grub引导界面没有了win10的启动项。
搜索过很多“双系统grub添加Windows10引导启动项”之类文章,照做总是提示不能识别efi启动分区sda1。估计是kali升级后添加的windows启动项不能再简要设置指定位置,要严格按照grub手册参数要求,$hints_string 和 $fs_uuid 缺一不可。
解决方法
1:
fdisk -l 查看确认efi启动分区是否sda1,或者其他分区;
首先要知道win10启动项分区的UUID,使用blkid /dev/sda1或者grub命令均可,详情如下
blkid /dev/sda1
# 或者
grub-probe -t fs_uuid -d /dev/sda1
2:修改grub.cfg文件
首先定位 /boot/grub/grub.cfg,修改权限为777;
UEFI/GPT 模式下安装的 Windows
这个模式寻找 Windows 的启动加载器的位置,然后当用户选择了相应的菜单条目的时候,通过链式载入的方法在 GRUB 之后加载它。这里主要的任务是找到 EFI 系统分区然后从上面运行启动加载器。
注意: 这个启动项仅在 UEFI 模式下才起作用,而且 Windows 和 UEFI 的位数必须相同。
if [ ‘${grub_platform}’ == ‘efi’ ]; thenmenuentry ‘Microsoft Windows Vista/7/8/8.1/10 UEFI/GPT’ {insmod part_gptinsmod fatinsmod chainsearch --no-floppy --fs-uuid --set=root $hints_string $fs_uuidchainloader /EFI/Microsoft/Boot/bootmgfw.efi}
fi
其中 $hints_string 和 $fs_uuid 由下述两个命令得到。
$fs_uuid 命令检测 EFI 系统分区的 UUID:
grub-probe --target=fs_uuid esp/EFI/Microsoft/Boot/bootmgfw.efi
输出:1ce5-7f28
或者(以 root 身份)运行 blkid 然后从结果中找到 EFI 系统分区的 UUID:
blkid /dev/sda1
输出:/dev/sda1: SEC_TYPE=“msdos” UUID=“1ce5-7f28” BLOCK_SIZE=“512” TYPE=“vfat” PARTLABEL=“EFI system partition” PARTUUID=“d8cc1e8f-5tb8-4cd9-85v8-e7dfedcc327d”
$hints_string 命令可以确定 EFI 系统分区的位置,在当前的例子中是 harddrive 0:
grub-probe --target=hints_string esp/EFI/Microsoft/Boot/bootmgfw.efi
输出:–hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1
(如果输出为:–hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 那说明你的window是BIOS/MBR 模式下安装的 Windows)
这两个命令都是假设 Windows 使用的 ESP 是挂载在$esp上的。当然,Windows的 EFI 文件路径可能有变,因为这就是Windows…
本例中实际 /dev/sda1 是挂载在 /boot/efi ,所以用 /boot/efi 替换上述的 esp
结果
修改 /boot/grub/grub.cfg文件中:
### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###
添加中间内容实际修改为:
### BEGIN /etc/grub.d/30_os-prober ###
menuentry 'Microsoft Windows 10' {insmod part_gpt ## -> 现在一般是gpt格式的硬盘insmod fat ## -> 实际上是fat格式,可以自己试一下是vfat还是fatinsmod chainsearch --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1 1ce5-7f28chainloader /EFI/Microsoft/Boot/bootmgfw.efi ## 注意大写
}
### END /etc/grub.d/30_os-prober ###
保存,重启,搞定。
结语
本文仅适合UEFI/GPT 模式下安装的 Windows,kali 双系统情况,如果你是BIOS/MBR 模式下安装的 Windows,请参考:GRUB:BIOS/MBR 模式下安装的 Windows
本人的台式机也是如此,试了很多文章的方法都是比较旧的依据grub方式复杂的命令模式,还不能修复,原因就是那些文章都是基于grub旧版,升级最新的linux都依据使用了grub2,启动文件和参数都发生了变化,最简单的方式是,首先修复windows的正常启动,安装使用 Grub2Win,定位到 linux 的grub2启动文件,通常在 /boot/grub/grub.cfg,在windows 模式下,使用 Grub2Win 导入这个grub.cfg(可以用 DiskGenius 读取linux文件系统的boot文件夹,将此文件复制到 win 的硬盘),就可以在win 启动菜单添加 linux(kali)的 grub 启动菜单项。
kali更新grub修复双系统windows10引导启动项相关推荐
- centos安装后两个启动项、_Windows安装Centos7双系统后Windows启动项消失
方法一: 在Centos7下root登陆 编辑 /boot/grub2/grub.cfg vim /boot/grub2/grub.cfg 在第一行添加 menuentry "Windows ...
- linux 开机默认启动windows系统时间,Windows和Linux双系统批改默认启动项、超时时间...
Windows和Linux双系统修改默认启动项.超时时间 修改/etc/default/grub, 然后update-grub. 执行命令 sudo gedit /etc/default/grub 主 ...
- bcedit双系统更改启动项名称_Win7下双系统修改BCD启动项名称
Win7 下双系统修改 BCD 启动项名称 2010 年 08 月 06 日 星期五 下午 10:32 使用了启动项修复后,可能有些名称操作系统显示名称不正确,例如"早期的 Windows ...
- 修复GRUB:win10 1709 秋季创意者更新导致Linux双系统无法引导
引言和吐槽 之前就一直看到各种 win10 1709 秋季创意者更新的文章,说什么毛玻璃特效.各种更新balabala弄得自己心里很期待的样子.于是当看到系统提示 win10 可以更新1709的时候就 ...
- win10+Ubuntu双系统,设置默认启动项为win10
在win10下安装了Ubuntu20.04系统后,开机进入系统引导项界面,默认选择的是Ubuntu系统. 这是因为,双系统后由Ubuntu的grub引导启动的, 一般还是WIN10用的多一些,下面就设 ...
- 双系统 Win10 Ubuntu 启动项修复
双系统 Win10 安装 Ubuntu 没有grub启动项的解决及双系统 Ubuntu grub启动项中 没有Windows的解决 一.此方法针对sudo update-grub不起作用找不到启动项 ...
- linux win10双系统启动顺序,Windows 10 和 Ubuntu 20.04 双系统 GRUB2 默认启动项的更改...
测试环境系统:Windows 10和Ubuntu 20.04 许多喜欢使用GNU/Linux发行版的用户由于各种原因不能放弃Windows.因此,许多人选择双启动(或多启动).如果您在安装了Windo ...
- Win7/8/10安装Centos7/Redhat7双系统丢失windows启动项的解决办法
Win7/8/10安装Centos7/Redhat7双系统后可能会丢失windows启动项,这是因为Linux系统默认将mbr改写成grub2,新安装的Linux系统默认不识别windows下的ntf ...
- Windows安装Centos7双系统后Windows启动项消失
原文: https://www.cnblogs.com/xinglichao/p/9999049.html https://blog.csdn.net/yingzinanfei/article/det ...
- 两种方法教你彻底卸载Ubuntu双系统,无启动项残留
两种方法教你彻底卸载ubuntu双系统 方法一: 1.在windows下下载磁盘工具DiskGenius *下载地址:*http://www.diskgenius.cn/download.php 下载 ...
最新文章
- 保留两位小数除法算式_北师大|五年级上册|第一周周测·小数除法(1)
- 规格选择_Axure教程:实现商品规格选择功能
- 你确定你真的喜欢编程吗??
- 操作篇 DHCP协议学习与应用
- (十三)nodejs循序渐进-高性能游戏服务器框架pomelo之扩展聊天服务器为机器人自动聊天
- 互联网日报 | 3月22日 星期一 | 苹果iMac Pro全球下架;知乎更新上市招股书;字节跳动成立朝夕光年奇想基金...
- java时间中间加横杠方法_知识点:java一些方法会有横线?以Date 过期方法为例...
- mfc控件随框变化(EasySize的用法,仔细看绝对有用)
- 使用XAML和SharpMap渲染一幅地图
- vue.js 添加 fastclick的支持
- 算法复习周------“贪心问题之‘单源最短路径’”
- Ubuntu 22.04下以SOEM为EtherCAT主站的驱动电机例子
- 智能电视的“假聪明”与“真智慧”
- uboot 中Nand flash 常用操作命令解析
- 怎么用计算机给u盘加密文件,win10电脑怎么给U盘文件夹加密
- 计算机中URL是指什么 ?
- (java)跳台阶:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
- 华为eNSP-ISIS理论+实验配置
- 作者:吴力波(1974-),女,复旦大学大数据学院教授、副院长、博士生导师...
- Nexus的权限管理及分配
热门文章
- HDCP版权保护机制
- R语言select()filter()subset()筛选函数
- 简单基于tun实现的用户态NAT64
- 五、pcb文件初始设置
- python下载kivy_下载、目录-『Python Kivy』Kivy and PyDev on Eclipse -by小雨
- vue 修改logo实现展示自定义的logo
- HDU6080(很水的计算几何+floyd)
- 【科技论文的写作程序及方法】
- Docker搭建内部知识库(Wiki)
- Font family [‘sans-serif‘] not found.Falling back to DejaVu Sans.解决办法