ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

Ubuntu与Windows双系统安装:分区规划与GRUB引导修复

Ubuntu与Windows双系统安装:分区规划与GRUB引导修复

1. 先把这件事想明白:双系统不是装个软件那么简单

一台电脑上同时存在 Ubuntu 和 Windows,开机时按方向键选一个进,这套玩法到今天依然是很多人的刚需。做嵌入式的要跑交叉编译链,做数据分析的想用原生 bash 和 Docker,写前端的不想开虚拟机吃内存,学生党只有一台笔记本又要兼顾课程软件和 Linux 环境,Ubuntu 与 Windows 双系统安装就成了性价比最高的方案。它解决的核心问题只有一个:让同一块硬盘上的两套操作系统各自独立运行,互不抢占资源,性能不打折。

但我要先把话说在前面,双系统安装本质上是对磁盘分区表的重新划分,不是装个 App 点下一步就完事。分区表一旦被写坏,你原来 Windows 里的资料是有概率整体丢失的。我见过太多人拿着电脑来找我,说装到一半卡住了直接强制关机,结果开机只剩一个 grub 命令行。所以这篇文章我不会写成“下一步下一步”的流程说明,而是把每一步背后的判断依据讲清楚——为什么要先装 Windows、为什么 ESP 分区不能乱建、为什么时间会差 8 小时、为什么装完 GRUB 里找不到 Windows。

内容适合三类人看:第一类是完全没碰过 Linux 分区的小白,照着做能避开 90% 的坑;第二类是装过一次但踩了坑想搞明白原理的;第三类是帮别人装、需要一份能对照排查的清单的。无论哪一类,动手之前请务必把第 2 章的分区规划看完,那是整个流程里唯一一个做错了要付出数据代价的环节。

1.1 你的机器到底适不适合装双系统

不是所有机器都适合折腾双系统,先做三个判断。第一看固件类型,近十年的机器基本都是 UEFI 引导加 GPT 分区表,这套组合最省心;如果你的机器是 Legacy BIOS 加 MBR,也能装,但多系统引导的兼容性会差一些,后面 GRUB 覆盖引导记录的概率更高。第二看硬盘容量,512GB 是条心理线,低于这个数,装完双系统你会很快陷入“哪个盘都不敢存东西”的窘境。第三看有没有第二块硬盘,如果有,那是最舒服的方案——Windows 独占一块盘,Ubuntu 独占另一块盘,两个 ESP 分区各自独立,互相不碰对方的引导文件,出问题也好修。

还有一类机器要特别注意:预装 Windows 的轻薄本,出厂时硬盘往往被 BitLocker 全盘加密,并且 BIOS 里开了 Secure Boot。前者意味着你在 Ubuntu 安装器里看到的 NTFS 分区是加密的、无法调整大小,强行操作可能触发恢复密钥流程;后者本身不影响 Ubuntu 安装(官方镜像带签名),但装第三方显卡驱动时会要求你注册 MOK 密钥。这两件事在动手前必须确认状态,而不是装到一半发现分区没法压缩再回头。

1.2 装之前必须完成的四件准备事

第一件是备份。不用把整块硬盘拷出来,但个人文档、照片、项目代码这类不可再生的东西,一定要挪到移动硬盘或者另一台机器上。分区调整理论上不碰数据区,但“理论上”这三个字在磁盘操作里不值钱。

第二件是记下 Windows 的激活状态和重要账户信息。双系统不会影响 Windows 激活(主板里的数字许可证还在),但如果你后面要重装 Windows,提前把 Microsoft 账户绑定情况确认一下,省得折腾。

第三件是查清楚自己机器的型号对应的 BIOS 进入方式,以及关闭 Secure Boot、关闭 Fast Boot、切换硬盘模式这几个选项在哪个菜单下。不同厂商的 BIOS 界面差异极大,有的把 Secure Boot 藏在 Security 页签,有的放在 Boot 页签,提前拍照记下来,装完再改回去会方便很多。

第四件是准备一个 8GB 以上的 U 盘,注意是会被格式化的,里面有东西先挪走。同时把 Ubuntu 的 ISO 镜像下好,建议选 LTS 版本,桌面版就行,不要下 Server 版——服务器版没有图形安装界面,对新手极度不友好。

提示:下载完 ISO 一定要做一次哈希校验。镜像站偶尔会出现下载中断导致的半截文件,写进 U 盘后表现为安装到一半报“无法读取介质”,这种错误极难排查,不如一开始就花两分钟比对 SHA256。

2. 分区规划:整个流程里唯一不能试错的一步

很多人装双系统失败,不是失败在安装过程,而是失败在分区这一步的手抖。Windows 的磁盘管理能压缩卷,但它的压缩能力受限于“不可移动文件”的位置,有时候你明明有 200GB 空闲,它只让你压缩 30GB。这时候不要急着去找第三方分区工具硬来,先做磁盘碎片整理(机械盘)或者用 Windows 自带的优化功能(固态盘),再重新压缩,通常能多释放一些空间出来。

分区方案我一般推荐三区制:一个根分区/、一个家目录/home、加上系统自动创建的 ESP 和 swap 文件。也有人图省事只分一个/,把 home 也塞进去,日常用没问题,但重装系统时个人配置和文档要一起备份,麻烦。分开的好处是,下次换新版本重装,只格式化/就行,/home原样保留,浏览器书签、编辑器配置、SSH 密钥全都在。

2.1 UEFI 加 GPT 环境下各个分区的真实角色

先把几个名词说清楚,不然后面看分区表会懵。ESP是 EFI 系统分区,FAT32 格式,容量一般 100MB 到 500MB,所有操作系统的引导文件都放这里,Windows 的引导在EFI/Microsoft目录下,Ubuntu 的在EFI/ubuntu目录下,两者共存不冲突。根分区/是 ext4 格式,装系统文件和软件。swap在现代 Ubuntu 里默认是一个交换文件而不是分区,除非你要用休眠功能,否则不用单独划 swap 分区。

关键点在于:安装 Ubuntu 时绝对不要新建一个 ESP 分区。Windows 已经建好了,你只需要在安装器的“设备用于引导加载程序”那一栏,把位置指向那个已存在的 ESP 分区(通常在lsblk里显示为nvme0n1p1或sda1,类型标注为 EFI System)。新手最常见的错误是手动分区时又建了一个 300MB 的 EFI 分区,结果主板上出现两个启动项,Windows 更新之后引导顺序乱掉,开机直接进 GRUB rescue。

表格对照一下推荐的分区方案,以 512GB 硬盘、Windows 已占用 300GB 为例:

分区建议容量文件系统挂载点说明
ESP(已有)100MB 左右FAT32不挂载复用 Windows 建的,不要新建
MSR(已有)16MB无不挂载Windows 保留分区,不要动
Windows C 盘保留NTFS不挂载压缩出空间即可,不要格式化
根分区40 到 60GBext4/装系统和软件,太小会后期吃紧
家目录剩余全部ext4/home个人文件,重装可保留
swap默认文件swap无内存 16GB 以上基本用不到

2.2 给 Ubuntu 留多少空间才不憋屈

这个问题没有标准答案,但有几个经验值可以参考。如果你只是偶尔进 Ubuntu 写写脚本、跑跑命令,40GB 的根分区加 60GB 的 home 就够。如果你打算在 Ubuntu 里做深度学习、跑容器、装一堆开发工具链,根分区给到 80GB 起步,因为 Docker 镜像、conda 环境、编译产物全默认堆在/下面,很快就会撑爆。家目录按你个人文件的量来,至少留 100GB。

另外提醒一句,压缩 Windows 分区的时候,不要把它压到只剩 20GB。Windows 系统更新、虚拟内存文件、休眠文件都需要空间,C 盘红了之后系统会变得非常难用,到时候你还得反过来给 Windows 扩盘,而扩盘比压缩更麻烦。

2.3 三个必须处理的 Windows 开关

第一个是快速启动。这个功能让 Windows 关机时把内核状态写进休眠文件,下次开机直接读回来。问题是它会让 NTFS 分区处于“未完全卸载”状态,Ubuntu 挂载这些分区时只能只读,甚至报错。关闭路径在控制面板的电源选项里,取消勾选“启用快速启动”。

第二个是BitLocker。如果你的 C 盘启用了设备加密,先在设置里暂停保护或者直接关闭并解密,等双系统装完、确认一切正常,再决定要不要重新开启。原因是安装器调整分区大小会改变磁盘布局,触发 BitLocker 的完整性检查,开机要求输入 48 位恢复密钥,而很多人根本不知道那串密钥在哪。

第三个是Secure Boot。Ubuntu 官方镜像支持安全启动,理论上不用关。但如果你后面要装 NVIDIA 闭源驱动、VirtualBox 内核模块、或者某些无线网卡驱动,签名验证会拦住它们。我的做法是:安装阶段保持开启,装完之后如果遇到驱动加载失败,再进 BIOS 关闭,这样能少一次来回折腾。

注意:关闭 Secure Boot 之后,某些预装 Windows 的机器会提示“安全启动状态已更改”,这不影响使用,但如果机器还在保修期内需要送修,建议提前恢复原状。

3. 启动盘制作与固件设置:细节决定能不能进安装界面

镜像写盘这件事本身不复杂,但工具选错会导致 U 盘启动后直接黑屏或者报错。Windows 环境下我常用两个:一个是 Rufus,分区类型选 GPT、目标系统选 UEFI,文件系统保持 FAT32;另一个是 Ventoy,把 ISO 直接拷进 U 盘就行,一个盘能放多个镜像,适合经常装系统的人。如果你在 Linux 环境下操作,dd命令最直接,但一定要确认目标设备名,写错盘符就是把整个硬盘抹了。

写完之后别急着拔,先在文件管理器里看一眼 U 盘根目录,正常应该能看到EFI文件夹和casper目录。看不到说明写入失败,重来一次。

3.1 进入固件设置的几个关键项

开机狂按 Del 或 F2 进 BIOS,找到这几个开关:

  • Boot Mode:确认是 UEFI,不是 Legacy 或 CSM。混用模式是双系统引导错乱的根源之一。
  • Secure Boot:先保持开启,遇到驱动问题再关。
  • Fast Boot(固件层的快速启动,和 Windows 的不是一回事):建议关闭,它会让 USB 设备在 POST 阶段被跳过,导致你插着 U 盘也进不去。
  • SATA Mode:必须是 AHCI。如果出厂是 RAID 模式(部分轻薄本会这样),Ubuntu 安装器认不到硬盘,需要在 BIOS 里改成 AHCI,但改完 Windows 可能蓝屏进不去,得先用安全模式启动一次让驱动切换过来。
  • Boot Order:把 USB 调到第一位,或者开机时按 F12 之类的快捷键调出启动菜单,直接选 U 盘。

这里有个坑要说清楚:有些机器关闭 Secure Boot 之后,U 盘启动项会从列表里消失,或者出现两个同名条目,一个是 UEFI 前缀一个不带。一定要选带 UEFI 前缀的那个,选错了会以 Legacy 方式启动,后面分区表就对不上了。

3.2 从 U 盘启动到安装界面的第一次判断

U 盘启动后会出现 GRUB 菜单,选“Try or Install Ubuntu”。如果卡在黑屏、花屏、或者长时间停在紫色背景,多半是显卡驱动和内核打架。这时候重启,在 GRUB 菜单按e编辑启动参数,在linux那一行末尾加上nomodeset,再按 F10 启动。这个参数让内核不加载显卡驱动,用最基础的显示模式进桌面,装完系统再装正式驱动。

进到桌面之后,先别急着点安装。打开文件管理器确认一下能不能看到你的硬盘分区,打开终端跑一句lsblk -f,看看输出里有没有你的硬盘、ESP 分区是不是 FAT32、Windows 分区是不是 NTFS。这一步是预检,能提前发现硬盘没被识别、分区表异常之类的问题。

lsblk -f sudo efibootmgr -v

第二条命令会列出主板里所有的 UEFI 启动项。正常情况下你能看到 Windows Boot Manager 和一个 U 盘条目。如果efibootmgr报“EFI variables are not supported”,说明你是以 Legacy 模式启动的,必须重启回到 UEFI 模式,否则装完系统开不了机。

4. 安装过程实录:每一步在做什么,为什么这么选

双击桌面上的安装图标,前面几步语言、键盘、网络都是常规操作,网络建议先连上,安装器会顺便下载语言包和更新,省得装完再补。真正需要动脑的是“安装类型”这一屏。

安装器会给你几个选项:清除整个磁盘安装、与 Windows 共存安装、以及其他选项。永远不要选第一个,除非你确定这块盘上没有任何要保留的东西。第二个“共存”看起来很美,自动帮你压缩分区、自动分配空间,但它分配的容量往往很保守(比如只给 20GB),而且对 BitLocker 加密盘和 RAID 模式经常判断失误。我的建议是选其他选项,手动指定分区,慢五分钟,换来完全可控的结果。

4.1 手动分区的具体操作顺序

进入手动分区界面,你会看到一长串分区列表,包括 Windows 的 EFI、MSR、C 盘,以及一块标着“空闲”的空间。操作顺序是这样的:

  1. 选中那块空闲空间,点“+”号新建分区,大小填 40960(也就是 40GB),类型选 ext4,挂载点选/。
  2. 再选中剩余的空闲空间,新建分区,大小留空表示全部用完,类型 ext4,挂载点选/home。
  3. 找到那个类型为 EFI System 的已有分区(容量 100MB 左右,通常是列表第一个),选中它,点“更改”,挂载点不要设,只确认“用于引导加载程序的设备”这一栏指向它。

第三步是最容易搞错的。有些版本的安装器会把 ESP 显示为efi,有些显示为EFI System Partition,认准容量和 FAT32 格式就不会错。千万别在这一步点“格式化”,格式化了 Windows 的引导文件就没了。

分区建好之后,界面底部有个“设备用于引导加载程序安装”的下拉框,确认它指向的是整块硬盘(比如/dev/nvme0n1),而不是某个具体分区。在 UEFI 模式下,安装器会把引导文件写进 ESP 里的EFI/ubuntu目录,并往主板 NVRAM 里加一条启动项,选整盘还是选 ESP 分区,实际结果差别不大,但选整盘更保险。

4.2 账户设置与时区选择里的小心思

用户名建议全小写、不含空格和特殊字符。Linux 的用户名会变成家目录名,带空格的话以后每次敲路径都要转义,非常烦。密码不要太简单,因为 Ubuntu 默认允许 sudo 提权,弱密码等于没有密码。

时区这一屏选你所在地就行,但要注意后面会遇到的“时间差 8 小时”问题,根因不在这里,而在 Windows 和 Linux 对硬件时钟的理解不同,第 5 章会专门讲。

安装过程大概 10 到 20 分钟,取决于 U 盘速度和硬盘类型。进度条走完之后会提示重启,重启前把 U 盘拔掉,否则可能又从 U 盘启动,进入安装界面,让人以为没装成功。

4.3 第一次开机的验收清单

重启之后应该能看到 GRUB 菜单,里面有 Ubuntu,往下还有 Windows Boot Manager。如果两个都在,恭喜,最难的部分过去了。进 Ubuntu 之后按顺序做几件事:

第一,打开终端跑lsblk,确认所有分区都在,/和/home挂载正确。第二,打开文件管理器,点一下 Windows 的 C 盘,看能不能正常读写。如果提示“无法挂载”或者进去之后全是只读,说明 Windows 的快速启动没关干净,回 Windows 关掉再试。第三,跑一次系统更新,把内核和驱动补到最新。第四,测试一下无线网卡、蓝牙、声音、亮度调节这些外设,有问题趁早处理。

5. 装完才是真正的开始:引导、时间、驱动三件事

很多人以为装完能进系统就结束了,实际上一周之内必然遇到三个问题:GRUB 菜单里突然没有 Windows 了、时间总是差 8 小时、显卡驱动装完开机黑屏。这三件事都有明确的成因和解法,提前了解能省下大量搜索时间。

5.1 GRUB 找不到 Windows 的真实原因

Ubuntu 从某个版本开始,默认关闭了os-prober这个探测其他操作系统的工具,理由是安全考虑。结果就是:装完双系统,GRUB 菜单里只有 Ubuntu,没有 Windows。这不是 Windows 被删了,只是没被扫描到。

解决办法是编辑 GRUB 配置,把探测开关打开,然后重新生成菜单:

sudo nano /etc/default/grub

找到GRUB_DISABLE_OS_PROBER这一行(如果没有就手动加一行),改成:

GRUB_DISABLE_OS_PROBER=false

顺便把超时时间调长一点,默认 5 秒有时候手速不够:

GRUB_TIMEOUT=10

保存退出后执行:

sudo update-grub

终端会打印出Found Windows Boot Manager on /dev/nvme0n1p1之类的信息,说明扫描成功。重启就能看到 Windows 选项了。

如果你想让 Windows 成为默认启动项(比如家里人要用的机器),把GRUB_DEFAULT=0改成GRUB_DEFAULT="Windows Boot Manager (on /dev/nvme0n1p1)",注意这里的字符串要和update-grub输出的名字完全一致。更稳妥的做法是用GRUB_DEFAULT=saved配合grub-set-default命令,避免手写字符串出错。

5.2 时间差 8 小时:一个存在了二十年的老问题

现象很典型:从 Ubuntu 重启进 Windows,发现时间慢了 8 小时(东八区),或者反过来快 8 小时。原因是 Windows 把硬件时钟当作本地时间读写,Linux 默认把硬件时钟当作 UTC 读写。两个系统对同一块主板上的时钟理解不一致,来回切换就会互相“纠正”,越纠越乱。

两种解法,选一种就行,不要两种都做,否则会抵消。

方案一,让 Linux 迁就 Windows,把硬件时钟当本地时间:

timedatectl set-local-rtc 1 --adjust-system-clock

方案二,让 Windows 迁就 Linux,把硬件时钟当 UTC。在 Windows 里以管理员身份打开命令提示符,执行:

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation" /v RealTimeIsUniversal /t REG_DWORD /d 1 /f

我个人倾向方案二,因为 UTC 是更规范的做法,而且不影响 Linux 下的时区切换。改完之后重启一次,确认时间正常。如果还是不对,检查一下timedatectl的输出,看RTC in local TZ是不是 no,以及有没有开启网络时间同步。

5.3 显卡驱动:装对了是生产力,装错了是黑屏

NVIDIA 独显的机器在 Ubuntu 下有几个坎。第一,安装时如果用了nomodeset参数,进系统后分辨率会很低,需要装完驱动再恢复正常。第二,驱动有三种来源:开源的 nouveau、Ubuntu 仓库里的nvidia-driver-xxx、以及官网的.run包。新手只用第二种,在“软件和更新”的“附加驱动”里选带proprietary和tested字样的版本,点应用,等它自己编译安装。

第三,如果你开着 Secure Boot,驱动模块加载时会要求你设置一个 MOK 密码,重启后会进入一个蓝底白字的界面,要求你确认密钥。这个流程走完驱动才能生效,很多人在这里直接跳过,结果发现nvidia-smi报错说模块没加载。

AMD 显卡相对省心,开源驱动开箱即用。无线网卡是另一个高发区,某些型号(尤其是一些较新的芯片)在 LTS 版本自带的内核里没有驱动,表现为设置里根本找不到 Wi-Fi 选项。这时候可以先用手机 USB 共享网络,然后在“附加驱动”里找对应驱动,或者升级内核版本。

lspci -nn | grep -i network uname -r

这两条命令分别看网卡型号和当前内核版本,拿着型号去搜解决方案,比盲目试要快得多。

6. 常见故障排查速查表与卸载的正确姿势

装双系统这件事,出问题的概率和操作规范程度成反比,但只要动手就有风险。下面这张表是我这些年遇到过的高频故障,按现象分类,附上原因和处理方式。

6.1 高频故障对照表

现象大概率原因处理方式
开机直接进 Windows,没有 GRUB启动顺序被改,或 GRUB 未写入 NVRAM进 BIOS 调启动顺序,或用 live 环境执行efibootmgr检查
GRUB 菜单里没有 Windowsos-prober 被禁用按 5.1 开启后update-grub
卡在 grub rescue 命令行ESP 分区被格式化,或分区号变动用 live U 盘启动,挂载分区后grub-install修复
Windows 分区只能只读快速启动未关闭回 Windows 关闭快速启动,再执行sudo ntfsfix /dev/xxx
开机黑屏只有光标显卡驱动冲突GRUB 里加nomodeset进系统,卸载冲突驱动
安装器认不到硬盘SATA 模式为 RAID,或缺少驱动BIOS 改 AHCI,注意先处理 Windows 的蓝屏问题
系统时间反复错乱RTC 时间标准不一致按 5.2 选一种方案,只做一次
更新后 GRUB 消失Windows 大版本更新覆盖引导live 环境重装 GRUB,或提前用独立 ESP 隔离

再说几个排查时的通用思路。遇到引导问题,第一件事是用 Ubuntu 的 live U 盘启动,进“试用”环境,因为 live 环境不依赖硬盘上的系统,能给你一个干净的操作界面。进去之后先挂载根分区和 ESP:

sudo mount /dev/nvme0n1p5 /mnt sudo mount /dev/nvme0n1p1 /mnt/boot/efi for i in /dev /dev/pts /proc /sys /run; do sudo mount -B $i /mnt$i; done sudo chroot /mnt

然后就可以在 chroot 环境里执行grub-install和update-grub,相当于在硬盘系统内部操作。这套流程能修复绝大多数引导故障,值得记下来。

注意:执行 chroot 前的挂载顺序不能反,先挂根分区再挂 ESP,否则/boot/efi目录不存在会报错。另外分区号一定要用lsblk确认,凭记忆敲是最危险的习惯。

6.2 数据抢救:分区表写坏了怎么办

如果真的把分区表搞乱了,第一原则是停止一切写入操作,不要尝试往那块盘里装系统、拷文件、甚至不要反复重启。拿另一台机器做一个 live U 盘,启动后先跑sudo fdisk -l看当前分区表状态,再用testdisk扫描丢失的分区。testdisk能根据残留的文件系统头信息重建分区表,成功率取决于你写坏之后又操作了多少次。

如果只是误格式化了某个分区,photorec可以按文件签名做恢复,但它恢复出来的文件名是乱的,只能靠文件类型和大小去筛。这就是为什么我在第 1 章反复强调备份,数据恢复永远是最后手段,不是常规手段。

6.3 想反悔了:干净卸载 Ubuntu 的步骤

用一段时间发现不习惯,想彻底删掉 Ubuntu 只留 Windows,步骤要按顺序来,不能直接在 Windows 磁盘管理里删分区了事。

第一步,在 Windows 里用管理员权限打开命令提示符,用diskpart找到 Ubuntu 的分区并删除,或者直接在磁盘管理里右键删除卷。注意别删错,ESP 和 Windows 的恢复分区不能动。

第二步,清理 ESP 里的 Ubuntu 文件夹。用diskpart挂载 ESP 分区:

diskpart list disk select disk 0 list partition select partition 1 assign letter=Z exit

然后在资源管理器里进入 Z 盘,删掉EFI/ubuntu目录。这一步不做,主板的启动项里会残留一个失效的 Ubuntu 条目,开机可能先尝试它然后失败。

第三步,删除 UEFI 启动项。在 Windows 里用bcdedit /enum firmware查看所有固件启动项,找到描述为 ubuntu 的那条,记下标识符,然后bcdedit /delete {标识符}。或者在 Linux live 环境里用efibootmgr -b 000X -B删除。

第四步,把 Windows Boot Manager 设为第一启动项,执行bcdedit /set {bootmgr} path \EFI\Microsoft\Boot\bootmgfw.efi保险起见再跑一次,重启验证。如果开机直接进 Windows 且没有多余菜单,清理完成。

这套流程我做过不下十次,最容易漏的是第二步的 ESP 清理,很多人删完分区发现开机还是有个 Ubuntu 选项,就是因为EFI/ubuntu目录还在。

7. 一些踩过坑之后才明白的经验

装双系统这件事,教程到处都是,但真正让人卡住的往往不是步骤本身,而是步骤之外的判断。我把自己这些年反复验证过的几条经验放在这里,都是那种“知道了能省半天,不知道要折腾一周”的类型。

第一,能分盘就别分区。如果机器有第二个 M.2 插槽或者一块闲置的 SATA 硬盘,把 Ubuntu 装到独立硬盘上,两个系统各用各的 ESP,GRUB 装在 Ubuntu 那块盘上,Windows 更新永远碰不到它。这种方案下,就算 Ubuntu 彻底崩了,把盘拔了照样进 Windows,容错率完全不是一个级别。

第二,Windows 的大版本更新是双系统最大的敌人。某些更新会重写引导顺序,把 Windows Boot Manager 顶到第一位,结果就是开机看不到 GRUB。预防办法是提前把 Windows 的自动更新设置为“通知后安装”,看到大更新先备份引导配置。修复办法前面讲过,用 live 环境跑一遍grub-install就行,十分钟的事,但不知道的人会以为系统坏了。

第三,不要迷信自动分区。安装器的“与 Windows 共存”选项在小硬盘上经常给出很奇怪的方案,比如把/和/home合并、swap 分区给到 8GB 这种。手动分区多花的五分钟,换来的是后面几年不用为空间发愁。

第四,记录你的分区布局。装完之后跑一次lsblk -f和sudo fdisk -l,把输出截图存到手机里。半年后出了问题,你根本想不起来哪个分区是干嘛的,有这张图能省掉大量猜测时间。

第五,内核更新后进不去系统,先别慌。GRUB 菜单里有个“Advanced options for Ubuntu”,点进去能选旧内核启动。九成以上的驱动问题、黑屏问题,用旧内核都能进去,进去之后再慢慢修。这个入口很多人不知道,一黑屏就以为系统废了要重装。

最后分享一个小技巧:装完双系统后,在 Ubuntu 里给 Windows 分区加一个只读挂载的 fstab 条目,避免手滑改坏 Windows 的系统文件。编辑/etc/fstab,加一行UUID=xxxx /mnt/windows ntfs defaults,ro 0 0,UUID 用blkid查。这样平时能读文件,想写入得手动 remount,多一道保险。我在自己的主力机上一直这么用,几年下来没出过误删 Windows 系统文件的事故。

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进