ubuntu windows双系统踩坑

我有个台式机,先安装的ubuntu,本来想专门用来做开发,后面儿子长大了,给他看了一下星际争霸、魔兽争霸,立马就迷上了。还有一台windows的笔记本,想着可以和他联局域网一起玩,在ubuntu上用wine跑魔兽,联局域网老是掉线,没办法,就想着把ubuntu的root分区缩小个100G用来装windows,结果windows倒是装上了,ubuntu起不来了。然后就摸索了两天,各种搜索、deepseek求助,总算是解决问题了,还是有挺多坑的,这里记录一下。

  1. 安装windows后,无法启动ubuntu,需要修复ubuntu的grub

要支持windows和ubuntu双系统,必须用grub引导,按照deepseek的建议:

1)刷一个ubuntu live usb启动盘

2)启动ubuntu live进入terminal,进行如下操作

复制代码
# 首先通过这个命令获取根分区、efi分区、boot分区
sudo fdisk -l

# 然后挂到/mnt
sudo mount /dev/sdX4 /mnt #根分区
# 问题出在这里,因为有个boot分区,这里一定要挂上
sudo mount /dev/sdX1/mnt/boot
sudo mount /dev/sdX2 /mnt/boot/efi  #efi分区
# 没有挂载boot就会发现发现boot目录下面没有efi,按照提示要我自己创建,反倒是有问题
# sudo mkdir -p /mnt/boot/efi

sudo mount --bind /dev /mnt/dev
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys
sudo chroot /mnt
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=ubuntu
update-grub
exit
sudo reboot

这里我漏掉了/boot有一个专门的分区,导致重启后直接进入了grub,没有引导起来。

  1. 按照上面步骤,ubuntu起来了,结果windows又不行了

原来是跑update-grub时报错了: "os-prober will not be executed to detect other bootable partitions",这意味着 os-prober 工具没有被执行,因此 GRUB 无法检测到其他操作系统(如 Windows)的引导项。

原来是Ubuntu 20.04 及更高版本默认禁用了 os-prober,需要手动启用 os-prober:

1)sudo vi /etc/default/grub

2)确保 GRUB_DISABLE_OS_PROBER=false 存在,如果没有,手动添加

3)确保 os-prober 已安装,否则: sudo apt install os-prober

4)最后重跑:sudo update-grub

成功!完美解决

相关推荐
小麦嵌入式30 分钟前
Linux驱动开发实战(十一):GPIO子系统深度解析与RGB LED驱动实践
linux·c语言·驱动开发·stm32·嵌入式硬件·物联网·ubuntu
刘若水32 分钟前
Linux: 进程信号初识
linux·运维·服务器
阳小江1 小时前
Docker知识点
运维·docker·容器
只是橘色仍温柔2 小时前
xshell可以ssh连接,但vscode不行
运维·vscode·ssh
IT里的交易员2 小时前
【系统】换硬盘不换系统,使用WIN PE Ghost镜像给电脑无损扩容换硬盘
运维·电脑
共享家95273 小时前
深入剖析Linux常用命令,助力高效操作
linux·运维·服务器
大刘讲IT3 小时前
制造业数字化转型:流程改造先行还是系统固化数据?基于以MTO和MTS的投资回报分析
运维·经验分享·生活·产品经理·数据可视化
跳跳糖炒酸奶3 小时前
第四章、Isaacsim在GUI中构建机器人(1): 添加简单对象
人工智能·python·ubuntu·机器人
Zfox_3 小时前
【C++项目】从零实现RPC框架「四」:业务层实现与项目使用
linux·开发语言·c++·rpc·项目
吃旺旺雪饼的小男孩3 小时前
Ubuntu 22.04 安装和运行 EDK2 超详细教程
linux·运维·ubuntu