双系统安装全攻略:Win10+Ubuntu 16.04的GRUB引导与分区避坑 简介Windows 10与Ubuntu 16.04双系统安装中分区规划、BIOS设置和引导修复是最容易出问题的三个环节而这份PDF教程正好围绕这些难点展开。它针对Thinkpad E550进行了完整演示涵盖制作Ubuntu 16.04启动U盘、在Windows磁盘管理中预留100GB未分配空间、设置BIOS为UEFILegacy混合模式并关闭安全启动以及手动划分根目录、swap和/home分区并将启动引导器安装到与/boot相同位置等细节。教程还点出固态硬盘MBR、机械硬盘GPT这类常见磁盘组合下如何规划启动方式同时提醒安装前备份数据、安装时暂不连接WiFi、重装Win10时移除多余硬盘等实用事项能帮助新手避开常见坑。资源包为单个PDF文档大小815KB内容集中便于随时查阅。目前已有5547人学习适合初次尝试双系统安装或希望了解Linux环境的读者按步骤对照操作可有效减少反复重装带来的时间浪费。1. 双系统不是装两个系统是装一个能管住两者的引导链Win10 Ubuntu 16.04 这套老组合现在还被人翻出来多半是手里有一台 2016 年前后的机器或者要在固定环境里复现旧工程。真正劝退多数人的不是 ISO 下载而是装完重启那一刻GRUB 菜单消失、Windows 直接启动、grub invalid signature 报错、两个系统时间来回差 8 小时。我装过几十次双系统只要把引导方式、分区方案和 Secure Boot 三件事在开工前定下来全程大概一小时中途临时改主意才是翻车之源。如果不折腾底层硬件用 VMware 虚拟机自然更省心但双系统的价值是真机性能和显卡直通这个教程就是为后者写的。下面按我自己排的工序先摸底再分区最后处理引导故障。2. 开工前摸底确认 UEFI 还是 Legacy选对 16.04 的安装路线2.1 两个入口快速判断启动模式与分区表第一步永远是先搞清楚机器以什么方式引导而不是急着下载镜像。最常见的入口是系统信息Win R 打开运行框输入 msinfo32回车。右侧“BIOS 模式”一栏会直接写 UEFI 或“传统”。同屏的“安全启动状态”也顺带记一下如果显示“已启用”后面有一步要回 BIOS 关掉它。只看固件模式还不够还要确认系统盘是 GPT 还是 MBR。用 Win10 自带的磁盘管理右键“属性”也能看但命令行更快也更适合批量确认多块硬盘的情况。管理员 PowerShell 里执行# 管理员 PowerShell列出所有磁盘的分区表类型 Get-Disk | Format-Table Number,FriendlyName,PartitionStylePartitionStyle 一栏显示 GPT 对应 UEFI 引导显示 MBR 对应 Legacy 引导。正常出厂的新机器几乎都是 UEFI GPT这不是问题Ubuntu 16.04 完全支持只是后面启动盘和 bootloader 的写法不一样。真正麻烦的是 UEFI 固件搭配 MBR 系统盘这种非标准组合这类机器多数是早期 Win8 升级到 Win10 留下的我会直接建议先转 GPT 再装避免双系统引导互相踩。2.2 UEFI GPT 与 Legacy MBR 的判定与选择装双系统最怕的是两个系统用了不同的引导协议。Windows 走 UEFIUbuntu 却以 Legacy 方式装进同一块盘结果就是装完重启找不到 Ubuntu或者反过来 Ubuntu 能进、Windows 条目丢失。判断逻辑其实只有一张表机器现状正确路线容易踩的坑UEFI GPT启动盘选 GPT/UEFIbootloader 装到 ESP 分区Secure Boot 未关导致 invalid signatureLegacy MBR启动盘选 MBR/BIOSbootloader 装到 /dev/sda 的 MBR 区分区超过 4 个主分区压缩卷灰掉UEFI MBR少见建议把系统盘转 GPT 再装混搭引导经常不进任何系统这里有一个必须提前知道的硬限制MBR 分区表最多只允许 4 个主分区。Win10 出场时通常已经占了恢复分区、EFI 分区、C 盘、D 盘四个名额用满后你在 Windows 磁盘管理里压缩 C 盘得到的未分配空间Ubuntu 安装器会显示为“不可用”。解决办法是把数据盘删掉一个腾出主分区名额或者整体转成 GPT后者在 BIOS 里要确认主板支持 UEFI。这个问题我遇见过不下十次全是装到一半才发现的所以放在开工前说。2.3 16.04 镜像去哪下归档站才是正确来源Ubuntu 16.04代号 xenial早已结束官方维护主站 archive.ubuntu.com 上已经找不到对应的镜像文件直接访问下载页会一直转圈。这个版本现在只能从 old-releases.ubuntu.com 的 xenial 目录下或者国内高校/云厂商镜像站的旧版本目录里拿。文件名一般是 ubuntu-16.04.6-desktop-amd64.iso16.04.6 是这个系列最后一个小版本修复了此前积累的安装器问题比早期 16.04.0 更适合装机。下载完别急着写盘先校验一遍哈希。Windows 下用 certutilLinux 下用 sha256sum# 核对 Ubuntu 镜像完整性Linux/macOS sha256sum ubuntu-16.04.6-desktop-amd64.iso镜像站通常会在下载页旁边给出官方 SHA256 值对比一致再继续因为 16.04 的镜像年代久远很多第三方站转存过没法保证文件没被改动。如果 Win10 系统本身也需要重装ISO 建议用微软官方媒体创建工具生成别下第三方打包版省得装完多个全家桶。2.4 装前唯一值得做的备份我一般不建议新手上来就做整盘镜像太耗时但有一个地方必须备份Windows 的 EFI 系统分区ESP。这个分区通常只有 100MB 到 260MB里面装着 Windows Boot Manager 的引导文件双系统安装时 Ubuntu 也会往这里写 GRUB 文件。实操中很多人误删或误格式化这个分区导致 Win10 直接进不去。备份方法很简单用 DiskGenius 或 Macrium Reflect 把 ESP 分区做成一个镜像文件放到移动硬盘装完系统之后再发现引导坏了恢复也就是几分钟的事。这就是双系统安装里真正的“后悔药”。3. Windows 侧收尾压缩 C 盘、制作启动盘、关掉两个干扰项3.1 压缩卷给 Ubuntu 腾出未分配空间在 Windows 磁盘管理里右键 C 盘选“压缩卷”输入要压缩的空间大小。单位是 MB注意换算50GB 要填 5120080GB 填 81920。我的建议是根分区至少给 40GB加上 swap 和后续软件膨胀50GB 起步比较稳如果计划装 ROS、深度学习框架或者当开发主力机直接给 100GB 以上后期在 Windows 里跨分区挪数据很麻烦。压缩卷的原理是收缩 NTFS 卷并在末尾留出连续未分配空间不会动已有文件。它会根据当前卷内碎片情况给出一个“可用压缩空间”你填的数字不能超过这个上限。如果压缩卷按钮是灰的或者计算出来的可用空间很小大概率是前面说的 MBR 4 主分区限制先删一个不用的恢复分区或数据分区再试。压缩完成后磁盘管理里会出现一块黑色“未分配”区域Ubuntu 安装时直接用它不需要在 Windows 里预先格式化。3.2 用 Rufus 写启动盘分区类型选错等于白做Rufus 是写 Linux 启动盘最顺手的工具免费、单文件、无需安装。插上 8GB 以上的 U 盘后设备选 U 盘引导类型选镜像文件然后定位到刚才下载的 16.04 ISO。最关键的一项在“分区类型”下拉框目标是 UEFI GPT 机器选 GPT目标系统选 UEFI目标是 Legacy MBR 机器选 MBR目标系统选 BIOS 或 UEFI-CSM。文件系统保持 FAT32 即可16.04 的 UEFI 引导需要 FAT32 才能被固件识别。卷标我习惯写成 UBUNTU1604方便在 BIOS 启动菜单里跟 Windows Boot Manager 区分。写盘过程大概几分钟写完后不要手贱格式化 U 盘引导文件已经写进隐藏分区一格式化就全没。3.3 关闭快速启动与设备加密Win10 默认开启“快速启动”它的本质是把关机变成深度休眠系统内核状态被写进休眠文件。这个功能在双系统里是个大坑Ubuntu 挂载 NTFS 分区时会发现文件系统处于未完全卸载状态于是以只读方式挂载甚至直接报错。关掉它的路径是控制面板 → 硬件和声音 → 电源选项 → 选择电源按钮的功能 → 更改当前不可用设置取消勾选“启用快速启动 (推荐)”。设备加密是第二个坑。Win10 家庭版可能开着“设备加密”专业版则是 BitLocker它们都会把 Windows 分区的数据加密。Ubuntu 16.04 默认的 NTFS 驱动不支持读取加密分区装完系统后你会发现只能看到一个锁死的分区想共享文件都做不到。关闭方法设置 → 更新和安全 → 设备加密 → 关闭专业版走控制面板的 BitLocker 驱动器加密逐个盘暂停保护再关闭。建议把所有盘都关了再进入安装流程。3.4 进 BIOS 的一次性设置Secure Boot 与 SATA 模式重启后按 Del / F2 / F10 / Esc 进入固件设置品牌不同入口不同具体见开机首屏提示。两个地方必须看一眼。第一个是 Secure Boot能关就关。16.04 自带的 shim 引导器在多数主板上能过 Secure Boot但戴尔、联想某些 OEM 固件策略很怪装完重启就报 grub invalid signature。关闭位置一般在 Boot 或 Security 菜单里改完按 F10 保存退出。第二个是 SATA 模式。如果 BIOS 里显示的是 RAID 或 Intel RST要改成 AHCI。16.04 的 4.4 内核默认不认 Intel RST 驱动保持 RAID 模式会直接在安装器里找不到硬盘。注意从 RAID 改 AHCI 前先在 Win10 的管理员命令行里执行一次bcdedit /set {current} safeboot minimal重启进 BIOS 改 AHCI进系统后再执行bcdedit /deletevalue {current} safeboot关闭安全模式否则 Windows 会蓝屏。这一步是很多人改完喊救命的原因提前做完就没事。4. 安装 Ubuntu 16.04从引导菜单到分区落点一次装到位4.1 从 U 盘启动安装器选带 UEFI 前缀的那一项保存 BIOS 设置后重启按 F12 / F11 / F7 等快捷键调出一次性启动菜单。这里通常会看到同一个 U 盘出现两次一次叫“UEFI: U 盘型号”一次是纯设备名。UEFI 机器必须选带 UEFI 前缀的那一项选纯设备名会以 Legacy 方式启动安装器装出来的系统引导方式和 Windows 不一致重启大概率只有 Windows 自己出现。进入安装器欢迎界面后可以先选“试用 Ubuntu”而非直接安装目的是确认键盘、网卡、显卡在 16.04 下有基本驱动。确认没问题再双击桌面上的“安装 Ubuntu 16.04”。安装类型出现前有一个“安装时下载更新”和“安装第三方软件”的复选框不建议勾选下载更新——16.04 源早就 404 了联网安装只会拖慢速度第三方软件里包含的闭源驱动也未必匹配你的硬件。4.2 安装类型走 Something else 手动分区而不是“与 Windows 共存”安装器检测到已有 Windows 时会给出“Install Ubuntu alongside Windows”选项看起来很省事但实际效果并不完美。自动安装经常把 swap 大小分得很随意bootloader 落点也可能不对尤其是 Windows 的恢复分区占了 ESP 之外的额外分区时容易把 GRUB 装进奇怪的位置。手动分区虽然多两步但每一步都是可预期的。选择“Something else”其他选项后你会看到现有分区列表。我的最小分区方案如下区域建议大小文件系统说明已有 ESP 分区保持不动FAT32安装器会自动往里面写 GRUB 引导文件新建根分区 /40GB 起步建议 50GBext4系统和所有软件都装这里新建 swap4~8GBswap内存 8GB 给 4GB16GB 给 8GB休眠需求则至少等于内存/home 独立分区剩余空间按需ext4建议但非必须习惯重装系统的人强烈建议分在空闲空间上点“”先建根分区大小填 51200MB类型主分区或逻辑分区都可以UEFI 下没有主分区限制位置选起始点用于 ext4挂载点选 /。再建 swap建议大小等于已安装内存的一半到一倍用于“交换空间”。最后检查表格里的“引导加载程序安装设备”我一般直接选整块磁盘 /dev/sda不选具体的 sda1、sda2。原因是UEFI 模式下安装器会自动找到 ESP 并把引导文件写进去Legacy 模式下则会写 MBR无论哪种选整块盘都是最不会出错的落点。4.3 首次重启的黑屏救场记住 nomodeset 参数安装完成后重启如果顺利会看到 GRUB 菜单里面有 Ubuntu 和 Windows Boot Manager 两个条目。但 16.04 年代的机器有个高发故障选 Ubuntu 后屏幕直接黑掉或者显示一堆花屏噪点后死机。这是因为 16.04 默认加载的是 nouveau 开源驱动它对当时的 GTX 900 系及更新的 NVIDIA 显卡兼容性很差一进桌面就崩。遇到这种情况在 GRUB 菜单选中 Ubuntu 后按 e 键进入编辑模式找到以 linux 开头的那一行在行尾加一个空格和 nomodeset然后按 Ctrl X 启动。这个参数会告诉内核不要加载显卡的模式设置驱动改用通用 framebuffer能保证你先进到桌面。进去之后第一件事是把 nouveau 拉黑否则每次开机都要手动加参数# 禁用 nouveau写进 modprobe 配置并重建 initramfs echo -e blacklist nouveau\noptions nouveau modeset0 | sudo tee /etc/modprobe.d/blacklist-nouveau.conf sudo update-initramfs -uecho 生成两行配置tee 写入 /etc/modprobe.d 下的配置文件update-initramfs 重新打包启动镜像让黑名单在下次开机时就生效。重启后如果不再黑屏再去系统设置里用“软件与更新”的附加驱动选项卡装 NVIDIA 闭源驱动或者用官方 .run 包安装。顺序不能反先禁用开源驱动再装闭源驱动否则两个驱动打架表现就是进桌面闪屏。4.4 装完第一时间做的事切源、刷新引导Ubuntu 16.04 已经 EOL默认的 archive.ubuntu.com 源不会再有更新apt update 会报一堆 404。不把源切到归档站后面连软件都装不了。一条 sed 命令把所有官方源地址替换成 old-releases 即可# 把 16.04 的官方源指向 old-releases 归档站避免 apt update 404 sudo sed -i s/archive\.ubuntu\.com/old-releases.ubuntu.com/g /etc/apt/sources.list sudo apt-get updatesed 的替换范围包括 sources.list 里的 security 和 updates 后缀源一次性全部改干净。apt-get update 完成后顺手确认引导链完整性这步是装完系统最关键的验证# 刷新 GRUB 配置确认 GRUB 能识别 Windows sudo update-grub正常输出里会看到 “Found Windows Boot Manager on /dev/sda1” 之类的提示。看到这行说明 GRUB 已经接管两个系统此时再重启才会出现双系统选择菜单。5. 避坑排查从 grub invalid signature 到 8 小时时差的五类现场5.1 现象重启直接进 WindowsGRUB 菜单根本没出现很多人在安装完成后重启发现电脑直接进入 Win10好像 Ubuntu 根本不存在。这不一定是安装失败而是 UEFI 固件的启动顺序里Windows Boot Manager 仍然排在第一位主板根本没机会加载 GRUB。原因Ubuntu 的引导文件虽然写进了 ESP 分区但固件 Boot Order 里没有把它调到最前。解决开机按 F12 调出启动菜单选择名字里带 ubuntu 的条目确认能进系统后再进 BIOS 把 ubuntu 调整到第一启动项。如果启动菜单里连 ubuntu 都没有说明 GRUB 没写进 ESP用第 5.5 节的 boot-repair 重建。还有一种变体是开机后卡在 grub 提示符这是 GRUB 模块加载成功但找不到 grub.cfg输入exit可以退回 UEFI 启动菜单严重时同样用 boot-repair 修复。5.2 现象grub invalid signature 或 Check Secure Boot Policy 直接甩脸这条报错是我搜双系统问题见到最多的关键词。现象是开机后还没看到菜单屏幕就弹黑色错误页写有 “Invalid signature detected. Check Secure Boot Policy” 或类似的引导签名验证失败信息机器要么停在那里要么自动重启进 Windows。原因Secure Boot 处于开启状态而主板固件不信任 Ubuntu 自带的 shim 引导器签名。这个问题在戴尔、联想和华硕的 OEM 固件上尤其常见Win10 的一次功能更新还可能重置固件信任策略导致原本正常的双系统突然进不去。解决重启进 BIOS把 Secure Boot 设为 Disabled。如果 BIOS 里有 “Reset to Setup Mode” 之类的选项也执行一次。改完后重新启动GRUB 就能正常加载。这里提醒一句关 Secure Boot 不会让系统变脆弱正常使用没有任何影响不用有心理负担。5.3 现象Ubuntu 和 Win10 来回切换时间总差 8 小时现象最直白进入 Ubuntu 看时间是对的回 Windows 就慢了 8 小时或者反过来。原因是两个系统对硬件时钟的解释不同——Windows 默认把主板 RTC 当本地时间Linux 默认当 UTC 时间。解决我一般直接在 Ubuntu 里把 RTC 解释成本地时间改动最小# 让 Ubuntu 把硬件时钟当作本地时间与 Windows 保持一致 sudo timedatectl set-local-rtc 1 timedatectltimedatectl 输出里看到 “RTC in local TZ” 就生效了。副作用是 Linux 的 NTP 时间同步偶尔会提示警告但双系统场景下时间不乱跑才是第一需求。如果你更希望 Windows 那边改成 UTC也可以管理员命令行执行reg add HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_DWORD /d 1 /f两案选其一不要两边同时设置。5.4 现象apt update 报 404软件源失效这是 16.04 独有的问题而且是新装完最容易遇到。现象是执行 sudo apt-get update 时一堆条目指向 archive.ubuntu.com 的 URL 都返回 404apt 最后提示无法下载。严格说这不算装系统的坑而是系统装完后的第一道坎。原因16.04 结束标准支持后官方仓库把 xenial 相关文件全部移到了 old-releases.ubuntu.com。解决就是第 4.4 节那条 sed 命令把 sources.list 里的域名整体替换。注意如果系统里还有 /etc/apt/sources.list.d 下的第三方源也要一起检查16.04 时代常用的 PPA 大部分也已停止对 xenial 的构建。另外提醒一句16.04 已经没有安全更新主力开发机不建议长期停留在该版本老项目复现则没问题。5.5 现象引导彻底坏掉只剩 Live USB 可用boot-repair 是最后的后悔药如果 GRUB 写到一半断电、Windows 重装后覆盖了 MBR、或者 ESP 被误格式化系统开机就彻底没菜单这时候就只能用 Ubuntu Live USB 启动挂载网络后用 boot-repair 一键修复。# 从 Live USB 启动选择“试用 Ubuntu”联网后执行 sudo sed -i s/archive\.ubuntu\.com/old-releases.ubuntu.com/g /etc/apt/sources.list sudo apt-get update sudo add-apt-repository ppa:yannubuntu/boot-repair sudo apt-get install -y boot-repair boot-repair打开的窗口里直接点 “Recommended repair”它会自动检测系统里的 Windows 和 Ubuntu 引导信息把 GRUB 重新写进 ESP/MBR。修复过程中会打印一份日志按提示做就行。跑之前确保已经关闭 Secure Boot 和快速启动否则修复完可能又被固件策略挡在门外。遇到过 Live USB 里 apt 源也 404 的就是先 sed 换源再继续那个提示我现在闭着眼睛都能打出来。6. 收尾必修课验证引导链、改默认系统、把后悔药提前备好6.1 每次更新内核后都要验证一遍引导链Ubuntu 更新内核会自动运行 update-grub但我仍然建议手动检查一次输出。在终端执行# 刷新 GRUB 菜单并确认 Windows 引导项仍在 sudo update-grub # 查看当前 UEFI 启动项顺序 sudo efibootmgrupdate-grub 的输出里如果还能看到 Windows Boot Manager说明 ESP 里的 Windows 引导文件没被动过。efibootmgr 输出里的 BootOrder 一行看 ubuntu 是否排在 Windows 之前。两条都正常双系统才算健康。我一般会在每次内核升级或用 Windows 更新之后跑一遍二十秒的事能防止很多“莫名其妙进不去系统”的意外。6.2 把默认启动项改成你想要的那个系统如果默认进 Ubuntu 不是你的诉求编辑 GRUB 配置就能改。用下面命令打开配置文件sudo nano /etc/default/grub # 找到 GRUB_DEFAULT00 表示菜单第一项 # 改 GRUB_TIMEOUT5 控制菜单等待秒数16.04 的 GRUB 菜单第一项通常是 Ubuntu后面才是 Windows Boot Manager。要让 Windows 默认启动不要填数字直接填菜单条目名更稳比如GRUB_DEFAULTWindows Boot Manager (on /dev/sda1)保存后执行 sudo update-grub 让它生效。填数字的办法在菜单条目顺序变化时会失效字符串匹配不会。最后说一条我自己的规矩任何双系统折腾之前先备份 ESP 分区和 Windows 引导再动手。这几年靠这个习惯救回过三台机器一次是 Windows 重装后 GRUB 被覆盖一次是手滑格式化分区还有一次是固件更新把启动项重置了。备份一个 200MB 的 esp.img 只要一分钟却能让所有引导问题都有后悔药。装完这套系统后再遇到黑屏、签名报错、时间不对的事按第 5 章的顺序过一遍就能解决真正麻烦的其实永远是装之前那十分钟的摸底。希望帮到你。本文还有配套的精品资源点击获取