简介:一份完整的Win10与Ubuntu 16.04双系统安装图文教程,适合想在保留Windows 10的基础上体验Linux桌面、用于开发或学习的用户。教程覆盖U盘启动盘制作、Windows磁盘管理划分安装空间、BIOS与UEFI/Legacy启动模式切换,以及手动分区时/、swap、/home和引导器安装位置的具体设置,核心操作均配有界面截图与说明。完整内容打包为1个PDF文件,大小约815KB,方便离线查看和对照操作。作者结合ThinkPad E550实测,针对安装后无系统启动菜单、重装Windows导致引导冲突等常见问题给出了easyBCD/easyUEFI修复思路和操作顺序建议,可帮助初学者少走弯路。目前已有5549人学习,适合作为首次搭建双系统时的步骤参考和避坑清单。
1. 把双系统装明白:Win10 + Ubuntu 16.04 分区前的三个决定
有些人看到“双系统安装教程”就以为是要从头把电脑重装一遍,其实不是。Win10 + Ubuntu 16.04 双系统的核心,是在你现有的 Windows 10 里给 Ubuntu 16.04 腾出一块独立空间,通过 GRUB 引导菜单实现开机二选一。做这个组合的人,大多是搞 ROS 开发、嵌入式编译或服务端调试,又没法彻底脱离 Windows 的开发者。装之前有三个决定没做,后面大概率翻车:第一,确认电脑是 UEFI+GPT 还是 Legacy+MBR 引导,这决定了分区表和修复命令是两套完全不同的逻辑;第二,想清楚给 Ubuntu 分多大、分区怎么划,而不是进安装界面乱填;第三,进 BIOS 关掉 Secure Boot 和 Windows 快速启动,否则装完要么不出现 GRUB 菜单,要么 Ubuntu 里网卡和显卡先出问题。这篇就是把这三件事拆开讲透,每一步给到可复现的参数。
2. 准备阶段:ISO 镜像、启动盘与 BIOS 设置的前置细节
2.1 为什么选 Ubuntu 16.04 而不是新版本
Ubuntu 16.04 的代号是 Xenial Xerus,2016 年 4 月发布的 LTS 版本。它的标准支持期早已结束,但直到现在仍有很多人坚持装它,原因集中在三点:一是 ROS(机器人操作系统)的 Kinetic 版本官方只适配 16.04,很多老工程依赖它的二进制包,换到 18.04 或 20.04 就得重编一大堆依赖;二是一些工控软件和硬件厂商的驱动只针对 16.04 的内核(4.4 系列)做过验证;三是老电脑上 16.04 比新版本更省内存。
选择 16.04 桌面版而不是服务器版,对双系统场景也更合理。桌面版自带图形安装器,能直接看到分区表状态;服务器版虽然体积小,但安装器和驱动集不完整,装完还要手动补一堆包。要注意的是,16.04 的 Unity 桌面内存占用虽然不高,但新硬件的兼容性很一般,NVMe 硬盘、Intel 第 11 代之后的核显、较新的 NVIDIA 显卡都可能要加内核参数才能进安装界面,这一点在第 5 章会有专门排查。
还容易忽略的一点是,选 16.04 不等于能用最新的软件源。默认源指向 archive.ubuntu.com 和旧版安全更新池,国内访问速度很慢。装完系统的第一件事就是把 apt 源切换到国内 16.04(xenial)镜像,否则apt update会在网络连接上卡很久。如果你只是单纯想体验 Linux,装 22.04 LTS 会更省心;明确知道自己要跑 ROS Kinetic 或依赖旧内核的软件,才值得在 16.04 上花时间。
2.2 制作 Ubuntu 16.04 启动盘:Rufus 参数与 dd 命令
先解决镜像问题。Ubuntu 16.04 的官方 ISO 文件名形如ubuntu-16.04.7-desktop-amd64.iso,从 ubuntu.com 的旧版本仓库可以下载。下载后确认两件事:文件名是 amd64 而不是 i386(除非你的 CPU 真是 32 位);用官方 SHA-256 校验一下文件完整性,避免下载到被改动过的镜像。
在 Windows 10 下制作启动盘,常见做法是用 Rufus。如果你之前有过 win10 系统重装的习惯,熟悉下载 win10 镜像 iso 文件再写盘的路子,会发现 PE 工具解包镜像的思路在 Linux 上行不通——Ubuntu 的 ISO 是 isohybrid 结构,必须整盘镜像写入,而不是把文件解压到 FAT32 分区再塞一个 bootmgr。这也是很多新手第一次翻车的地方。
Rufus 的关键参数如下:
| 参数项 | 取值 | 说明 |
|---|---|---|
| 设备 | 你的 U 盘 | 8GB 以上容量 |
| 分区类型 | GPT(UEFI 模式)或 MBR(Legacy 模式) | 与你的 BIOS 设置严格对应 |
| 目标系统 | UEFI(非 CSM)或 BIOS(或 UEFI-CSM) | 与分区类型配套 |
| 文件系统 | FAT32 | UEFI 必须 FAT32 |
| 写入方式 | DD 镜像模式 | 不使用 ISO 镜像模式 |
如果你切换到了 Linux 环境写盘,用 dd 更快:
sudo dd if=ubuntu-16.04.7-desktop-amd64.iso of=/dev/sdb bs=4M status=progress && syncif指定 ISO 文件路径,of指定 U 盘设备名(是 /dev/sdb 而不是 /dev/sdb1),bs=4M把块大小设为 4MB 以减少写入次数,status=progress显示进度,最后的sync确保缓存落盘。dd 是整盘覆写,会把 U 盘上的原分区表一起清掉,写之前用lsblk确认盘符,别把自己存了资料的硬盘带走了。
校验 ISO 的方式可以在终端里这样写:
echo "官方sha256值 ubuntu-16.04.7-desktop-amd64.iso" | sha256sum --check -sha256sum --check会读取前面的哈希值和文件名,然后对当前目录下的 ISO 文件计算哈希并比对。输出OK代表校验通过;如果显示FAILED,说明文件不完整或被改过,换个来源重新下载。
Rufus 的写入方式里,“DD 镜像模式”和“ISO 镜像模式”的差别值得留意:ISO 镜像模式会把文件解包后逐文件写入,在 UEFI 环境下偶尔导致启动时找不到efi/boot/bootx64.efi;DD 模式做的是整盘复制,兼容性更稳。所以我一般无脑选 DD 模式,省得碰上那种“在别人电脑能启动、到自己电脑黑屏”的玄学问题。U 盘品牌无关紧要,但 USB 3.0 接口能把安装时间缩短将近一半。
2.3 BIOS 设置:Secure Boot、CSM 与 U 盘启动优先级
U 盘做好以后,先别急着插上重启。进 BIOS 需要把三样东西的状态确认掉:Secure Boot、CSM(或 Legacy Support)、启动模式。
Secure Boot 是 UEFI 的安全启动机制。Ubuntu 16.04 的引导器自带 shim 签名,理论上能过 Secure Boot,但后续安装 NVIDIA 闭源驱动时,签名校验经常会失败,装完驱动重启就黑屏。常见做法是进 BIOS 的 Security 或 Boot 页,把 Secure Boot 设为 Disabled。不同品牌位置不同:联想在 Security 页,戴尔在 Secure Boot 页,华硕在 Boot 页的 Secure Boot 子项里。
第二项是 CSM。2015 年后的主流电脑默认 UEFI 模式,CSM 保持 Disabled 即可。如果老机器还在用 Legacy(BIOS 里显示 CSM Enabled 或 Legacy),那么安装盘的分区表必须选 MBR,后续手动分区时不会出现 EFI 分区,引导修复方式也不同。判断方式很简单:进 BIOS 看启动模式是 UEFI 还是 Legacy。
第三项是 U 盘启动优先级。重启后按 F12(戴尔)、F11(联想)、F10(惠普)或 Esc(华硕)调出一次性启动菜单,选择带 UEFI 前缀的 U 盘条目,比如 “UEFI: SanDisk”。建议同时在 Boot Option Priorities 里把 U 盘临时放第一位,装完再改回来。启动顺序不对的典型后果是:明明插着 U 盘却还是进了 Windows,或者进了一个花屏的 GRUB 命令行。这两个坑我都踩过,后面第 5 章会讲排查逻辑。
提示:启动 U 盘时如果黑屏或只有光标闪烁,先在 GRUB 菜单按
e,在linux开头那行末尾加nomodeset,再按 F10 启动。这个参数能绕过内核模式设置的显卡初始化问题,对 16.04 的旧内核尤其有效。
3. 为 Ubuntu 16.04 腾出空间:Win10 磁盘压缩与分区规划
3.1 磁盘压缩的边界:为什么一次压出 60GB 以上
进入 Windows 10 后先别急着重启。右击“此电脑”选“管理”,进入“磁盘管理”,找到 C 盘所在磁盘,右击 C 盘选择“压缩卷”。Windows 会计算可压缩空间,弹出一个输入框,单位是 MB。要留 60GB 就填 61440,要留 100GB 就填 102400。
磁盘管理工具只能压缩到 C 盘里“可移动文件”的物理边界。如果页面文件、休眠文件或系统还原点在磁盘中段固定不动,压缩卷给出的可压缩空间会远小于预期。比如你明明有 200GB 空余,它只允许压出 80GB。这不是系统在骗你,是它判断那些文件不在可移动区间。常见做法是先把系统保护关闭、把休眠关闭(powercfg /h off)、把页面文件改成自定义大小,再执行压缩,往往能多挤出几十 GB。
为什么强调一次压出 60GB 以上?Ubuntu 16.04 装完系统本身占 6~10GB,装 ROS Kinetic 和常用开发工具又得 10~20GB,还要留编译缓存和 Docker 镜像空间。如果只切 30GB,很快会看到“磁盘空间不足”。到时候想扩展分区,又得动用 GParted 在双系统下调整分区,风险比压缩 C 盘高一个量级。60GB 是舒服的起步线;512GB 及以上的硬盘,直接分 100GB 给 /home 都不用犹豫。
还要注意一点:新电脑多数是 NVMe 固态,C 盘压缩出来的空闲分区默认就是 4K 对齐的,安装 Ubuntu 时不需要自己调整扇区对齐参数,保持默认即可。另外,如果磁盘管理里显示“动态磁盘”,压缩卷的操作会受限;一律建议在基本磁盘上做双系统,动态磁盘是服务器遗留方案,个人电脑直接转回基本磁盘再继续。
压缩前先用 PowerShell 确认一下 BitLocker 状态:
manage-bde -status C:manage-bde是 Windows 自带的管理工具,-status C:打印 C 盘卷的加密状态。输出如果显示 “Protection On” 或 “BitLocker 已启用”,先在“设置→系统→关于→BitLocker 管理”里暂停保护或解密。否则,Ubuntu 安装器看到的分区可能是一块加密卷,写入分区表后 Windows 侧数据将不可读。我见过不止一次有人没关 BitLocker 直接装,最后只能重装 Windows 救数据。
3.2 分区规划:/、swap、/home 的大小分配逻辑
安装器进度到这里,选择“其他选项”进入手动分区。最常见的三区方案如下:
| 挂载点/类型 | 大小(参考) | 文件系统 | 用途 |
|---|---|---|---|
| /(根分区) | 30~40GB | ext4 | 系统、软件、/usr 与 /var 都在这 |
| swap(交换分区) | 8GB(或与内存相同) | swap | 内存溢出后备空间与休眠支持 |
| /home | 剩余全部 | ext4 | 用户数据、配置文件、下载内容 |
根分区给 30GB 以上是有实际理由的:16.04 的 /usr 默认包含大部分应用,内核更新会在 /boot 里积累多个版本的 vmlinuz 和 initrd.img,30GB 很快会告急。swap 按经验分配:内存 8GB 以下,swap 给到和内存相同;内存 16GB 以上,swap 给 8GB 足够应对多数编译场景;如果有休眠需求,swap 至少要和内存一致,否则休眠无法恢复。
/home 单独分区的价值在于:系统损坏或重装时,只要不格式化 /home,桌面文件、配置和工程源码都还在。代价是可能出现“根分区满了但 home 还很空”的失衡,需要定期清理 /var 或 /tmp。如果嫌麻烦,只分 / 和 swap 两区也完全能跑,Ubuntu 官方默认就支持最简结构;从可维护性角度,我仍然推荐三区。
分区物理顺序也值得讲究。安装器会显示空闲区域,建议把 / 放在最前面,swap 放中间,/home 放最后。这样以后想扩展 / 时,左侧有空闲空间可直接扩;swap 放在中段,读写延迟没有明显差异。顺序不是必须,但安排好会给后期调整留余地。
这里还要明确一个选择:安装类型页里的 “LVM” 和“加密 Ubuntu 新安装”选项,双系统场景下我都建议不选。LVM 增加了一层逻辑卷映射,GRUB 和后续分区调整都要多绕一步;加密卷在开机时要求输入密码,配合 GRUB 双系统菜单更容易出现引导失败。16.04 的安装器默认不加密,保持默认就好。
3.3 备份与后悔药:压缩前必做的三个动作
手动分区是无法回退的操作,动手前做完这三件事再谈安装。
第一,备份 Windows 侧的文档和项目。压缩卷在理论上只是划分空间,是安全的,但任何分区表操作都有断电、介质坏道等意外风险。备份不是可选项,是必须项。
第二,记录当前系统分区结构。在磁盘管理里查看磁盘 0 是 GPT 还是 MBR,是否有 EFI 系统分区(通常 100MB 或 260MB 的 FAT32 分区)、是否有恢复分区。这个信息在安装器选引导设备时要用,可以直接用 PowerShell 打印:
Get-Disk | Select Number, FriendlyName, PartitionStyle Get-Partition | Select DiskNumber, PartitionNumber, DriveLetter, Type, Size第一行命令列出每块盘的 GPT 还是 MBR,第二行列出每个分区的类型和大小。输出里类型为 “System” 的 ESP 分区(EFI 系统分区)要记住,安装 Ubuntu 时它就是写入 GRUB 的位置。
第三,关闭 Windows 的“快速启动”。快速启动会把内核状态写入 hiberfil.sys,下次开机跳过部分初始化。双系统下,快速启动开启可能让 Windows 抢占启动权,甚至导致 ext4 分区挂载异常。关闭方法:控制面板→电源选项→选择电源按钮的功能→更改当前不可用的设置→取消勾选“启用快速启动”。这一项不做,第 5 章第一个坑迟早找上来。
还有一条血泪经验:不要用第三方分区工具在 Windows 侧“无损”移动或压缩 C 盘里的文件来腾空间。这类工具在 MBR/GPT 转换、跨分区移动数据时,一旦断电或者被 Windows 更新打断,丢失数据的概率比官方压缩卷高得多。空间不够就清理 C 盘重试,别图省事用分区助手硬切。
4. 正式安装:U 盘引导、手动分区与 GRUB 写入
4.1 从 U 盘引导到安装界面的关键动作
插上 U 盘,重启,快速按启动菜单热键,选择 UEFI 开头的 U 盘条目。启动后你会看到 GRUB 菜单,有 “Try Ubuntu without installing” 和 “Install Ubuntu” 两个选项。建议先选第一个,进入 Live 桌面后用lsblk确认磁盘状态,确认无误后再双击桌面“安装 Ubuntu 16.04”图标。
安装向导第一步选语言,简体中文。第二步“安装中下载更新”和“安装第三方软件”两个复选框,我一般都不勾。16.04 的更新源在境外,安装时下载更新可能卡半小时;第三方软件里的 NVIDIA 闭源驱动版本老旧,装上新显卡反而黑屏。系统装完自己换源,再手动装驱动,可控性高得多。
向导进行到“安装类型”时,选择“其他选项”。这一步如果选择前安装器提示“这台计算机目前有 Windows 10”,说明它识别到了现有系统;如果它看起来会把整个磁盘清除,说明引导模式或分区表识别出了问题,立刻退出检查 BIOS 设置,不要继续。
4.2 手动分区:对应 /、swap、/home 的精确操作
进入“其他选项”后,你会看到分区表,找到大小约等于你压缩出来的那个空闲空间,选中它,点击“加号”逐块创建。
先建根分区:大小填 30720(30GB),类型选“主分区”(MBR)或“逻辑分区”(取决于已有主分区数量),位置选“起始”,用于选“ext4 日志文件系统”,挂载点选/。然后建 swap:选中剩余空闲空间,加号,大小填 8192,用于选“交换空间”。最后建 /home:选中所有剩余空间,加号,大小保持默认(填满剩余),用于选 ext4,挂载点选/home。
每个分区创建后,列表里会显示设备名,比如 /dev/sda5、/dev/sda6。这里有两个必须检查的点:第一,列表中存在一个 Windows 的 NTFS 分区,且没有被标记为“格式化”;第二,存在一个小尺寸的 FAT32 分区(EFI 系统分区)。如果列表里没有后者,说明安装器没识别到 UEFI 模式,回到 BIOS 检查。EFI 分区会显示为 “EFI System Partition” 或属于 Windows 恢复环境,保留即可,绝对不要删除或格式化。
同时,注意不要把 / 分区添加到已有的 Windows 分区上。具体表现是:分区表列表里如果出现 “/dev/sda3 ext4 /” 这样把 NTFS 分区直接改格式的配置,立刻点“还原”重来。正确的结果是:Windows 原分区保持 NTFS 不动,旁边多出三个 Linux 专用分区。
4.3 Boot Loader 安装位置:为什么选 /dev/sda
手动分区页面最下方有个下拉框,写着“安装启动引导器的设备”,默认往往是 /dev/sda。这里是最容易把双系统装成单系统的地方。
UEFI 模式下,下拉框应该选整块磁盘,比如 /dev/sda(NVMe 硬盘是 /dev/nvme0n1),而不是 /dev/sda1 或 /dev/sda2。GRUB 2 的 UEFI 安装流程会把引导文件写入该磁盘对应的 EFI 系统分区,并向 UEFI 变量注册一个名为 ubuntu 的启动项。如果你选了某个根分区或 home 分区,重启后 UEFI 固件找不到启动项,直接进 Windows。
Legacy(MBR)模式下,引导器要写到硬盘的 MBR 区域,同样选 /dev/sda。关键是要选安装 Ubuntu 的那块物理磁盘而不是 U 盘。不少新人在这个下拉框里选了 U 盘的设备名,装完拔掉 U 盘,GRUB 跟着消失,重启后直接进 Windows。所有“装了 Ubuntu 却找不到启动入口”的报告里,一半是引导器选错位置造成的。
如果你的电脑有两块物理硬盘,Win10 装在一块、想装另一块,下拉框请选择 Ubuntu 所在的那块盘的设备名,比如 /dev/sdb。这样 GRUB 会写在第二块盘的对应引导区域,开机的启动顺序由 BIOS 里的启动盘优先级决定。
4.4 安装完成后的首次进入与 update-grub
点击“现在安装”,安装器会列出将要在 /dev/sda 上写入的分区表变更,确认无误后继续。安装过程通常 10~20 分钟,完成后提示重启。这时拔掉 U 盘,重启后应该看到 GRUB 菜单,里面有 Ubuntu 和 Windows Boot Manager(UEFI 模式下由 os-prober 自动探测到)。
第一次进 Ubuntu 后,打开终端,立即执行一次引导更新:
sudo update-grubupdate-grub会重新扫描磁盘,把当前内核和检测到的 Windows 启动项写进 /boot/grub/grub.cfg。执行时注意输出里是否出现Found Windows Boot Manager on /dev/sda1类似字样。如果这一行没出现,说明 os-prober 没识别到 Windows,后面的第 5 章有对应排查。扫描完成后重启验证一次,GRUB 菜单里应该有两个入口,双系统主体安装完成。
新装完的 16.04 还有两个马上要做的事:跑一次sudo apt update && sudo apt upgrade补齐安全更新;然后编辑 /etc/apt/sources.list,把 archive.ubuntu.com 换成国内镜像站,否则后续每次 apt 安装都会卡在连接海外源。这两步不做,装软件时的排队等待会让你后悔没早换源。
首次进入后如果屏幕分辨率很低或窗口滚动卡顿,先打开“软件和更新”的“附加驱动”选项卡,看是否有可用的 NVIDIA 驱动。16.04 的附加驱动列表会给出推荐版本,直接应用并重启。这个动作放在换源之后做更顺畅,因为驱动下载同样依赖网络。显卡驱动装好之前,桌面由 llvmpipe 软件渲染,卡顿是正常的,不要误以为是系统坏了。
5. 双系统避坑:引导丢失、时间错乱与显卡驱动的排查记录
5.1 现象:重启后直接进 Win10,根本看不到 GRUB 菜单
这个现象几乎每个装双系统的人都会遇到一次。原因分三类:第一类,UEFI 启动顺序里 Windows Boot Manager 排在 ubuntu 前;第二类,安装时引导器写进了 U 盘;第三类,Windows 更新后把 ubuntu 启动项覆盖了。
排查第一步:进 BIOS 的 Boot 选项页,看启动顺序列表里有没有 “ubuntu”。如果有但排在后面,把它调到第一位,保存退出。如果列表里没有 ubuntu,用 Ubuntu 启动 U 盘的 Live 模式启动,终端里执行:
sudo efibootmgr sudo efibootmgr -o 0002,0001efibootmgr不带参数会列出当前 UEFI 可用的启动条目和编号;每条记录以 Bootxxxx 命名,后面的描述字符串比如 “ubuntu” 或 “Windows Boot Manager”。-o参数按顺序设置启动顺序,把 ubuntu 的编号放前面,Windows 的编号放后面。这个命令只改 EFI 变量,不动分区数据,可以反复试。
如果 efibootmgr 输出里根本没有 ubuntu 条目,说明 GRUB 没写进 EFI 分区。这时用启动 U 盘进入 Live 系统,挂载根分区和 EFI 分区,重新执行 grub-install 再 update-grub。手动修复前,先把 EFI 分区整个复制到 U 盘做备份,比修坏了找后悔药强得多。
5.2 现象:Ubuntu 和 Win10 时间来回相差 8 小时
双系统时间错乱,原因不是主板电池没电,而是两个系统对硬件时钟的解释不同:Windows 把硬件时间当“本地时间”,Ubuntu 把硬件时间当“UTC 时间”,再按系统时区换算显示。
解法一,让 Ubuntu 使用本地时间:
timedatectl set-local-rtc 1timedatectl set-local-rtc 1把 RTC 设置为本地时间,执行后再看timedatectl输出,出现 “RTC in local TZ: yes” 即生效。这个方法简单直接,推荐多数人使用。
解法二,让 Windows 使用 UTC 时间:在注册表 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation 下新建 DWORD 值RealTimeIsUniversal,值改为 1,重启。这里要注意,Windows 10 某些版本会定期重置这个注册表项,过几天又错乱的话,去检查一下值还在不在。
排查时第一步永远是看 RTC 模式:Ubuntu 执行timedatectl,Windows 检查“自动设置时间”是否开启。两个系统里只能由一个负责管理 RTC,不要两边同时改。
5.3 现象:安装过程中卡在“安装系统”界面
Ubuntu 16.04 在较新硬件上安装时,经常卡在“正在安装系统”,进度条不动或黑屏。最普遍的原因是显卡驱动加载失败。安装器默认加载开源驱动,新显卡或近几年的 NVIDIA 卡都可能无法正确初始化。
解决方式:在 U 盘启动的 GRUB 菜单里,选中 “Install Ubuntu” 按e键编辑启动参数,找到以linux开头那一行,在末尾加:
nomodesetnomodeset是内核参数,强制内核不加载 KMS(内核模式设置),让显卡进入兼容模式。加参数后按 F10 启动,安装器应该能继续。装完系统后,第一次进入前同样要在 GRUB 里加nomodeset,进系统装好对应闭源驱动,再把这个参数去掉。
另一个常见原因是内存不足。16.04 桌面版安装器在内存 2GB 以下的机器上容易卡在复制文件阶段。如果是老机器,除了加nomodeset,还可以按 Ctrl+Alt+F1 切到 TTY 看日志。不要无脑重启,习惯性看日志能节省大量重复等待时间。
5.4 现象:Ubuntu 16.04 装完连不上 Wi-Fi
装完 16.04 后无线网络不可用,多半是无线网卡缺固件或驱动。16.04 默认内核 4.4,对 2017 年后的 Intel 无线网卡支持很差,Intel 8265、9260 系列都需要额外固件。
排查路径先走有线。插网线,换国内源后执行:
sudo apt update && sudo apt install linux-firmwarelinux-firmware包含大量无线网卡和蓝牙固件,是给老系统补空缺最常用的包。装完重启,在网络菜单里看是否出现 Wi-Fi 列表。
如果网络包安装失败,先在 Windows 的设备管理器里查网卡芯片型号,再到对应固件来源下载文件放进 /lib/firmware,权限设 644。核心思路是先确认芯片型号,再找匹配固件包,没有一键命令覆盖所有网卡。
5.5 现象:开机进入 GRUB rescue 模式,或提示 invalid signature
开机黑屏并出现grub rescue>提示符,触发原因一般是 Windows 更新、误删 Linux 分区,或第三方工具改动了分区导致 GRUB 配置失效。如果在黑屏界面看到的是invalid signature而不是grub rescue>,多半是 Secure Boot 没关干净或 EFI 分区里的 GRUB 模块签名有问题,处理路径同样是进 rescue 后重新生成引导。
在grub rescue>下先确认分区再手动加载:
ls set root=(hd0,msdos5) set prefix=(hd0,msdos5)/boot/grub insmod normal normalls列出 GRUB 能识别的分区,(hd0,msdos5)的编号根据ls输出判断,原则是哪个分区里有boot/grub目录就选哪个。set root告诉 GRUB 根分区位置,set prefix指向 grub.cfg 所在目录,insmod normal加载正常模块,normal进入 GRUB 菜单。
进入系统后,先sudo update-grub重新生成配置,再执行:
sudo grub-install /dev/sdagrub-install /dev/sda把 GRUB 重新写入磁盘的正确引导区域,/dev/sda替换成你安装目标盘的设备名。这一步是为了根治,只执行一半,下次重启大概率还会回到 rescue。
6. 装完之后的进阶收尾:默认启动项切换、GRUB 分辨率与系统验证
6.1 把 Windows 设为默认启动项
装好后大多数人希望开机默认进 Windows。最稳妥的做法是编辑 /etc/default/grub:
sudo nano /etc/default/grub把GRUB_DEFAULT=0改成GRUB_DEFAULT=saved,在文件末尾加一行GRUB_SAVEDEFAULT=true。保存后sudo update-grub。这样 GRUB 会记住你上一次选择的系统:想默认进 Windows,重启时在菜单里选一次 Windows,之后它会一直记住。
另一种方式是指定菜单项编号:先执行grep "^menuentry" /boot/grub/grub.cfg看 Windows Boot Manager 排在第几项(从 0 开始数),把GRUB_DEFAULT改成对应数字。缺点在于内核更新后菜单项数量可能变化,编号会漂移,saved 模式更省心。
6.2 GRUB 分辨率调整
16.04 的 GRUB 默认 640x480,大屏上又糊又小。编辑 /etc/default/grub,加两行:
GRUB_GFXMODE=1920x1080 GRUB_GFXPAYLOAD_LINUX=keep第一行设置 GRUB 菜单分辨率,第二行让内核沿用 GRUB 的分辨率,避免进入系统时闪跳。保存后sudo update-grub。如果显示器不支持所选分辨率,GRUB 会自动回退到相近值,不会黑屏。
6.3 验证双系统完整性的三个命令
lsblk -f列出所有分区的文件系统和挂载点。正常应看到 EFI 分区是 vfat,/ 是 ext4,swap 是 swap,/home 是 ext4。
efibootmgr检查 UEFI 启动列表里 ubuntu 和 Windows Boot Manager 都在,BootCurrent 指向 ubuntu 对应编号。
sudo update-grub输出应包含 “Found Windows Boot Manager” 一行,说明 os-prober 正常。这三步跑完,这个双系统才算是真正装完。
这些年帮人装双系统,遇到的问题加起来没有自己第一次装时多。Ubuntu 16.04 是个老版本,越老越考验你对引导分区的理解,但跑通之后对 UEFI 和 GRUB 的认识会扎实很多。希望这篇能把你可能踩的坑提前拆掉,祝一次装成。
本文还有配套的精品资源,点击获取