ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Win10与Ubuntu 20.04双系统安装避坑指南:UEFI、GRUB与引导修复

Win10与Ubuntu 20.04双系统安装避坑指南:UEFI、GRUB与引导修复 简介面向需要在 Windows 10 之上搭建 Ubuntu 20.04 LTS 双系统环境的用户这份 PDF 教程从零开始梳理完整操作链路涵盖镜像下载、Rufus 启动盘制作、磁盘压缩分区、关闭快速启动、BIOS 设置Secure Boot、UEFI等关键前置环节并对安装类型选择、与 Windows Boot Manager 共存、GRUB 引导界面美化及双系统时间不同步问题给出图解式说明适合刚接触 Linux 双系统安装的初学者按步骤操作也可作为运维或开发人员重装系统的速查手册。资源共 1 个文件为 PDF 格式压缩包大小约 7.96MB体量精简可直接在电脑或手机端阅读。目前已有 16471 人浏览学习内容以实操截图和短句提示为主重点标出易错设置和可跳过的步骤帮助读者避开常见踩坑点在保留 Windows 的同时安全完成 Ubuntu 安装与后续配置。1. 双系统安装不玄学Windows 10 与 Ubuntu 20.04 共存的三个前提同一个硬盘上装 Windows 10 和 Ubuntu 20.04 双系统最容易翻车的时刻不是安装过程而是装完重启那一下要么 grub 没出现、直接进了 Windows要么 grub 出现了、里面却找不到 Windows。这两个症状我帮人排查过很多次最后都指向同一个地方——动手之前没确认启动模式和引导程序的位置。这篇教程按「准备 → 安装 → 避坑 → 配置 → 拆除」的顺序走先把三个前提立住一是 UEFI/GPT 还是 Legacy/MBR两个系统必须一致二是磁盘上要留出未分配空间而不是已经建好的分区三是引导程序装到整块磁盘而不是某一分区。三个前提任何一个不满足后面 grub 都会以奇怪的方式消失。适合的人群是用 Ubuntu 20.04 跑 ROS、做嵌入式交叉编译、或者刚接触 Linux 想保留 Windows 当日常系统的开发者。下面的操作在 ubuntu-20.04.6-desktop-amd64 镜像上验证过老机器走 Legacy 模式的差异会在对应位置单独标注。2. 安装前的准备启动模式、磁盘压缩与 Rufus 启动盘参数2.1 UEFI/GPT 与 Legacy/MBR 的分水岭为什么装机前必须先查这一项在 Windows 10 里按 WinR 输入 msinfo32查看「BIOS 模式」那一行。显示 UEFI 的机器Ubuntu 20.04 必须以 UEFI 模式安装显示 Legacy 的老机器两个系统都要装成 Legacy。肉眼判断方法进 BIOS 的启动菜单看 U 盘启动项的文本里带不带「UEFI」前缀带就是 UEFI。为什么这一项决定成败UEFI 和 Legacy 的引导文件放在完全不同的位置grub 只能接管当前启动模式下的引导。Windows 装在 UEFI 模式、Ubuntu 却以 Legacy 装完grub 不会出现在固件启动顺序里表现就是重启后直接进 Windows反过来 Windows 是 Legacy、Ubuntu 装成 UEFI同样进不去。2020 年后预装 Win10 的机器几乎全是 UEFIGPT所以下面默认按 UEFI 讲遇到 Legacy 我单独标注差异。另一个容易忽略的点是 SATA 控制器模式。BIOS 里如果 SATA Mode 是 Intel RST Premium部分主板显示为 RAID/VMDUbuntu 20.04 安装器很可能看不到你的 NVMe 盘——Ubuntu 默认内核没有 Intel RST 驱动磁盘直接消失。解决路径进 BIOS 把 SATA 模式改成 AHCI。但注意Windows 原本在 RST 模式下安装的话改成 AHCI 后 Windows 会蓝屏报 INACCESSIBLE_BOOT_DEVICE。稳妥做法是先在 Windows 里用 msconfig 勾选安全引导重启进一次安全模式让 Windows 加载 AHCI 驱动再进 BIOS 改模式最后取消安全引导。如果你手上有第二块物理硬盘更推荐直接让 Ubuntu 独占一块盘绕开 RST 这一整类问题。2.2 磁盘压缩用 Windows 磁盘管理给 Ubuntu 20.04 留出 60 GB双系统最合理的磁盘布局是Windows 的 C 盘保持不动从 C 盘尾部压缩出一段未分配空间给 Ubuntu。打开磁盘管理WinX → 磁盘管理右键 C 盘 → 压缩卷在「输入压缩空间量」里填大小单位是 MB。一般给 60 GB填 61440到 100 GB填 102400。Ubuntu 20.04 桌面版装完加常用开发环境大约占 20~30 GB剩下留给 /home 和未来可能要装的 ROS、深度学习框架。压缩空间量的上限由 C 盘尾部不可移动文件决定很多人卡在这里明明 C 盘剩 200 GB可压缩最大值只有 50 GB原因是页面文件、休眠文件占住了尾部位置。常见解法管理员终端执行下面命令关掉休眠临时把虚拟内存改成无重启后再压缩。# 管理员 CMD 中执行关闭休眠文件 powercfg /h off说明休眠文件 hiberfil.sys 体积接近内存大小且固定在 C 盘尾部是压缩卷的主要障碍。关掉休眠只是临时操作压缩完成后可以用 powercfg /h on 重新开启。如果关掉休眠后最大压缩空间还是没有明显提升把虚拟内存临时设为「无」再试一次压缩完改回「系统管理的大小」。压缩完成后磁盘管理里会出现一段黑色的未分配空间。注意这段空间保持未分配状态就好不要右键新建简单卷不要格式化Ubuntu 安装器需要的是原始未分配区域。2.3 用 Rufus 烧录启动盘GPT、UEFI、FAT32 三个参数一次设对先从官网或国内镜像站下载 ubuntu-20.04.6-desktop-amd64.iso大概 3 GB下载后核对 SHA256 校验值。烧录用 Rufus插上 U 盘后按下面的参数选参数项本教程推荐值说明设备你的 U 盘注意别选成移动硬盘引导类型选择选 Ubuntu ISO 文件Rufus 会自动识别镜像分区类型GPT对应 UEFI 启动模式目标系统类型UEFI (non-CSM)与分区类型联动文件系统FAT32默认值不需要改三个容易踩坑的小细节第一Rufus 会弹「写入方式ISO 镜像模式还是 DD 模式」保持默认的 ISO 镜像模式。DD 模式写出来的盘在部分主板上无法引导 Ubuntu 桌面版。第二分区类型选错是最隐蔽的坑GPT 配 UEFI、MBR 配 Legacy 必须严格对应装反了安装界面照常走装完 grub 就找不到了。第三烧录前确认 U 盘里没有重要数据写入过程会清空整个盘。2.4 进 BIOS 的核对清单Secure Boot、Fast Boot、SATA 模式U 盘烧好后重启在开机画面按 DEL / F2 / F12 进 BIOS具体键看主板厂商。进系统引导之前按这张表核对设置项目推荐设置原因Secure BootDisableUbuntu 20.04 引导 grub 时可能被安全启动拦截Fast BootDisable开启时固件可能跳过 U 盘启动直接进 WindowsSATA 模式AHCIUbuntu 读不到 RST/RAID 下的磁盘启动顺序UEFI USB 第一让安装盘先启动Secure Boot 在 20.04 上其实有 shim 可以兼容但闭源 NVIDIA 驱动安装时容易出签名问题我的习惯是直接关掉省事。Fast Boot 和 Windows 的「快速启动」是两回事BIOS 里的 Fast Boot 影响的是固件自检流程双系统安装期间必须关。3. Ubuntu 20.04 安装实操从引导 U 盘到手工分区3.1 用 U 盘引导进入 Try Ubuntu黑屏时加 nomodeset 参数BIOS 设置保存后重启从 U 盘引导看到紫色 grub 界面。先不要直接点安装选择「Try Ubuntu」试用 Ubuntu进桌面环境——这一步的作用是提前确认硬件能被正确识别避免装到一半发现磁盘不存在。如果选择 Try Ubuntu 后屏幕黑屏或花屏是 NVIDIA 显卡的 nouveau 开源驱动出问题了。在 grub 菜单按 e 进入编辑找到以 linux 开头的那一行vmlinuz 后面在行尾追加 nomodeset按 F10 启动。追加强制让内核不做显卡加速用基本显示模式启动安装界面就能正常显示。# 进入试用桌面后打开终端确认磁盘布局 lsblk -o NAME,SIZE,FSTYPE,TYPE说明NAME 列形如 nvme0n1 的是整块 NVMe 盘nvme0n1p1、nvme0n1p2 是它的分区FSTYPE 显示 ntfs 的是 Windows 分区显示 vfat 的是 EFI 分区空白的未分配区域就是上一步压缩出来的空间确认目标盘无误后再开始安装。3.2 安装类型选「其他选项」手工分区表与挂载点分配双击桌面「安装 Ubuntu」语言、时区、键盘布局按自己情况选走到「安装类型」这一步时选择最下面的「其他选项」Something else。为什么不建议选「与 Windows 共存」自动分区方案经常把引导装到它认为合适的位置出一堆难排查的幺蛾子手工分区全程可控。进入分区界面后逐项设置分区对象大小建议用途格式挂载点已有的 Windows EFI 分区保持原大小100~512MBEFI 系统分区不改动、不格式化/boot/efi新建分区40~60 GB根分区ext4/新建分区8 GB交换空间swap无新建分区剩余全部空间家目录ext4/home双击已有 EFI 分区在「用于」里选「EFI 系统分区」挂载点选 /boot/efi关键一项是取消勾选「格式化」。这根 Windows 共用同一个 EFI 分区Ubuntu 的 grub 文件会以文件夹形式写进 EFI/ubuntu 目录和 Windows Boot Manager 共存。swap 如果内存 16 GB 以上可以做成 8 GB 交换分区配合休眠足够的内存紧张就设成内存同容量。注意点击「立即安装」后的确认弹窗里如果看到 EFI 分区一栏写着「将被格式化」务必回到分区界面取消格式化勾选否则 Windows 引导直接损坏。3.3 引导程序安装位置选整块磁盘而不是 EFI 分区分区界面底部的「安装引导程序的设备」Device for boot loader installation是最容易被忽略的一栏。常见做法是保持默认值——形如 /dev/nvme0n1 的整块磁盘而不要去选 /dev/nvme0n1p1 或某个分区。原因UEFI 模式下 grub 并不是往分区的引导扇区写东西而是通过 efibootmgr 在主板 NVRAM 里注册一个启动项指向 EFI 分区里的 grubx64.efi。你只选整块盘grub-install 会自己找到刚才设置的 /boot/efi 分区并完成注册。如果误选了分区grub 的写法在 UEFI 下经常被固件忽略装完没有任何启动项只能靠 Boot Repair 补救。设置完成后点击「现在安装」确认分区列表无误后开始写入。安装进度条大概 5~10 分钟取决于磁盘速度。3.4 安装完成后的第一次重启grub 菜单出现才叫成功安装完成后界面提示重启拔掉 U 盘点击「立即重启」。如果顺利会看到紫色 grub 菜单列表里有 Ubuntu 和 Windows Boot Manager 两个条目默认选中 Ubuntu。看到这个界面双系统安装最核心的部分就成了。如果重启后没看到 grub、直接进了 Windows先别急着重装。重启进 BIOS找到启动顺序设置把名字带 ubuntu 的启动项移到第一位。因为 Windows 安装器在固件里注册了 Windows Boot Manager 且优先级通常更高grub 排在后面就不会出现。调整后保存重启grub 菜单应该就出来了。如果 BIOS 启动顺序里没有 ubuntu 这一项说明 grub 没有成功写入 EFI跳到第 5 章的 Boot Repair 一节处理。4. 双系统安装避坑grub 不出现、花屏和时区错乱这样查4.1 装完重启直接进 Windowsgrub 去哪了现象安装流程正常走完拔掉 U 盘重启没有紫色菜单直接进入 Windows 10。原因两种情况。一是 BIOS 启动顺序里 Windows Boot Manager 排在 ubuntu 之前固件先加载了 Windows二是安装引导程序时选错了设备grub 根本没写进 EFI 分区。解决先按 3.4 的方法进 BIOS 调整启动顺序。如果启动项列表里没有 ubuntu就用安装 U 盘进 Try Ubuntu执行第 5.3 节的 Boot Repair 或 chroot 手动修复。4.2 grub 里有 Ubuntu 但找不到 Windows 启动项现象grub 菜单正常出现Ubuntu 能进但菜单里只有 Linux 内核启动项没有 Windows Boot Manager。原因os-prober 没有探测到 Windows。常见诱因是 Windows 10 默认开启的「快速启动」——它让 Windows 分区处于类似休眠的状态os-prober 读不到正常的 NTFS 卷标记另外某些情况下 grub 配置里 os-prober 被禁用。解决先关闭 Windows 快速启动控制面板 → 电源选项 → 选择电源按钮的功能 → 取消勾选「启用快速启动」然后回 Ubuntu 执行下面的命令# 安装 os-prober 并重新扫描所有磁盘上的系统 sudo apt install os-prober sudo os-prober sudo update-grub说明os-prober 会遍历所有磁盘的 EFI 分区和 NTFS 分区找到 Windows Boot Manager 后会打印一行 Found Windows Boot Manager。update-grub 负责把这个结果写进 /boot/grub/grub.cfg。如果 os-prober 输出为空多半是快速启动没关干净重新回 Windows 关闭后再试一次。4.3 安装界面黑屏或花屏NVIDIA 显卡的 nomodeset 参数现象从 U 盘引导 Ubuntu 20.04grub 菜单选了 Try Ubuntu 或安装项之后屏幕黑屏或花屏键盘无响应部分机器装完首次进系统也复现。原因Ubuntu 20.04 默认加载的开源 nouveau 驱动对 Turing 及更新架构的 NVIDIA 显卡支持很差DRM 初始化阶段直接黑掉。这属于双系统安装里典型的硬件兼容问题。解决grub 菜单按 e找到以 linux 开头的那一行在行尾加一个空格然后追加 nomodesetF10 启动。安装完成第一次进系统也这样操作进桌面后用 5.2 节的方法安装闭源驱动装完重启就不再需要 nomodeset 了。4.4 双系统时间相差 8 小时RTC 基准不一致现象两个系统切换后时间永远差 8 小时。在 Windows 里调对了进 Ubuntu 又错了。原因Windows 默认把硬件时钟RTC当成本地时间Linux 默认当 UTC两者的换算基准差 8 个小时。解决在 Ubuntu 终端执行下面的命令让 Linux 也把 RTC 当本地时间和 Windows 统一# 将硬件时钟解释为本地时间与 Windows 保持一致 timedatectl set-local-rtc 1 --adjust-system-clock # 验证配置RTC time 应和 Local time 一致 timedatectl说明set-local-rtc 1 表示 RTC 按本地时间解释--adjust-system-clock 会在切换瞬间校准一次当前时间避免设置生效时系统时间突然跳变。这条命令在两个系统之间只执行一次之后切系统就不会再差时了。4.5 安装器提示找不到 EFI 分区或磁盘先查引导模式和 SATA 模式现象安装类型界面报 No EFI System Partition或者分区列表里只有 U 盘NVMe 系统盘完全不显示。原因前一种多为 U 盘没有以 UEFI 模式引导安装器跑在 Legacy 模式自然找不 到 GPT 下的 EFI 分区后一种基本是 BIOS 里 SATA 模式还是 RST/RAIDUbuntu 内核没有驱动所以磁盘列表为空。解决先回 BIOS 确认启动菜单里选的是带 UEFI 前缀的 U 盘项再把 SATA 模式改成 AHCI。两者都确认后重新进入安装器磁盘和 EFI 分区就应该出现了。注意改 SATA 模式前先处理 2.1 节说的 Windows 蓝屏问题。5. 装完后的四个必做配置软件源、显卡驱动、grub 修复与默认引导顺序5.1 更换 apt 软件源用 sed 把 Ubuntu 20.04 源切到国内镜像Ubuntu 20.04 默认官方源在海外apt upgrade 经常以十几 KB/s 的速度爬到崩溃。装完第一件事就是换源。20.04 的源配置集中在 /etc/apt/sources.list用 sed 直接替换域名最快# 备份源文件换崩了还能回退 sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak # 把官方域名替换为阿里云镜像 sudo sed -i s/archive.ubuntu.com/mirrors.aliyun.com/g /etc/apt/sources.list sudo sed -i s/security.ubuntu.com/mirrors.aliyun.com/g /etc/apt/sources.list # 刷新软件索引 sudo apt update说明security.ubuntu.com 这个域名也要一起替换只换 archive 的话部分安全更新包仍然走官方源速度还是慢。20.04 还在用传统的 sources.list 单文件格式没有拆成新版 Ubuntu 的 .sources 分包格式所以 sed 全局替换一次就能生效。想换清华或中科大源把域名对应的镜像域名换掉即可其他步骤一样。5.2 安装 NVIDIA 显卡驱动ubuntu-drivers autoinstall 与验证命令Ubuntu 20.04 装 NVIDIA 驱动最省事的路径是 ubuntu-drivers 自动安装它会根据显卡型号从官方源挑一个推荐版本# 查看系统推荐哪个驱动版本 ubuntu-drivers devices # 自动安装推荐版本 sudo ubuntu-drivers autoinstall # 重启后用 nvidia-smi 验证驱动是否接管 nvidia-smi说明ubuntu-drivers devices 会读取显卡 PCI 设备 ID和源里可用驱动做匹配输出里标注 recommended 的那一行就是推荐版。autoinstall 直接把这个版本装好同时装上配套的 nvidia-dkms、nvidia-utils。重启后 nvidia-smi 能列出显卡型号、驱动版本和显存占用就说明闭源驱动正常工作了此后启动不用再带 nomodeset。如果你的使用场景对 CUDA 版本有硬性要求也可以指定版本安装比如 sudo apt install nvidia-driver-535。笔记本双显卡机型Optimus可以配合 prime-select 切换独显和核显桌面机型不需要关心这一项。5.3 用 Boot Repair 修复 grub双系统引导失效的后悔药grub 崩溃、启动项丢失、误格式化 EFI 分区……这些情况的统一补救手段是 Boot Repair。从安装 U 盘进 Try Ubuntu联网后执行# 添加 boot-repair 的 PPA 并安装 sudo add-apt-repository ppa:yannubuntu/boot-repair sudo apt update sudo apt install boot-repair # 启动图形界面点击 Recommended repair boot-repair说明Boot Repair 做的事情本质上是挂载你的根分区和 EFI 分区重新执行 grub-install 和 update-grub再把扫描到的所有系统写进 grub.cfg。跑完它会输出一个日志地址方便去论坛求助时贴给别人。整个过程不碰 Windows 分区数据是名副其实的后悔药。如果不想装图形工具也可以手动 chroot 修复# 以根分区是 nvme0n1p2、EFI 分区是 nvme0n1p1 为例 sudo mount /dev/nvme0n1p2 /mnt sudo mount /dev/nvme0n1p1 /mnt/boot/efi # 绑定虚拟文件系统让 chroot 环境里有完整的设备节点 sudo mount --bind /dev /mnt/dev sudo mount --bind /proc /mnt/proc sudo mount --bind /sys /mnt/sys # 进入 Ubuntu 环境重装 grub 并重建菜单 sudo chroot /mnt grub-install /dev/nvme0n1 sudo chroot /mnt update-grub说明这一串命令先挂载根分区和 EFI 分区再把 /dev、/proc、/sys 绑定进临时环境最后 chroot 进去执行 grub-install参数 /dev/nvme0n1 是整块盘而不是分区,与 3.3 节的原则一致。执行完 exit 退出重启后 grub 菜单就应该恢复了。5.4 调整 grub 默认启动项与等待时间GRUB_DEFAULT 和 saved 的配合grub 默认每次停 10 秒进第一项 Ubuntu。如果你希望记住上次选的系统或者默认直接进 Windows编辑 /etc/default/grub# 编辑 grub 配置文件 sudo nano /etc/default/grub # 常用配置示例 # GRUB_DEFAULTsaved # GRUB_SAVEDEFAULTtrue # GRUB_TIMEOUT5 # 保存后让配置生效 sudo update-grub说明GRUB_DEFAULTsaved 配合 GRUB_SAVEDEFAULTtrue表示记住上一次选择的菜单项适合 Windows 和 Ubuntu 频繁切换的人不用每次开机盯着菜单选。GRUB_DEFAULT0 固定进第一项GRUB_DEFAULTWindows Boot Manager 固定进 Windows——注意引号里的名字必须和 /boot/grub/grub.cfg 中菜单条目的标题完全一致先用 update-grub 生成配置后去文件里核对。改完任何参数都必须执行 update-grub否则重启后不生效。6. 验证双系统引导状态以及删除 Ubuntu 后如何还原 Windows 引导6.1 安装后验证efibootmgr 看启动项、lsblk 看分区挂载双系统装好不等于引导没问题我习惯进 Ubuntu 后跑两条命令确认。第一条是 efibootmgr查固件启动项# 查看 UEFI 启动项及当前启动顺序 efibootmgr说明输出的 BootOrder 是当前启动顺序Boot0000、Boot0001 是具体启动项。能看到 ubuntu 和 Windows Boot Manager 同时存在且 ubuntu 排在前面说明引导层是健康的。如果提示 EFI variables are not supportedEFI 变量不可用说明这台机器实际是 Legacy 引导这条命令不适用。第二条是 lsblk -f确认 Ubuntu 的根分区和 EFI 分区挂载正常Windows 的 NTFS 分区也都在。最后执行一次 sudo update-grub输出里同时出现 Linux 镜像和 Windows Boot Manager才算收尾完成。6.2 删除 Ubuntu 双系统磁盘分区与 EFI 引导残留的清理步骤不想用双系统了删除 Ubuntu 要分两步走先删磁盘分区再清 EFI 引导残留。只做一步会留下脏数据下次开机可能还停在 grub 界面。在 Windows 里打开磁盘管理确认哪些分区是 Ubuntu 的Linux 的 ext4 和 swap 分区在 Windows 里没有盘符显示为 RAW 或未知分区按大小和位置判断。然后以管理员身份打开 CMD执行 diskpart# 删除 Ubuntu 分区示例 diskpart list disk select disk 0 list partition # 根据磁盘管理里的信息选中 Ubuntu 的根分区、swap、/home 分区逐个删除 select partition 5 delete partition override说明delete partition override 是强制删除命令适用于没有盘符、Windows 无法正常识别的 Linux 分区。逐个删完 Ubuntu 相关分区后回到磁盘管理右键 C 盘 → 扩展卷把回收的未分配空间并回 C 盘。分区删完后还要清掉 EFI 分区里的 grub 文件否则固件启动菜单里出现无效的 ubuntu 条目。在 CMD 的 diskpart 里给 EFI 分区临时分配盘符# 选中 EFI 系统分区通常 100~512MB类型为 System select partition 1 assign letterK exit # 删除 grub 残留目录 rd /s /q K:\EFI\ubuntu # 回到 diskpart 撤销盘符 diskpart select partition 1 remove letterK exit说明EFI 分区根目录下有 EFI/ubuntu 这个文件夹里面是 grub 的 shim 和 grubx64.efi。删除后固件里的 ubuntu 启动项会因找不到文件而失效开机自动落到 Windows Boot Manager。如果是老机器走 Legacy/MBR 模式删除分区后还需要在 Windows 恢复环境里执行 bootrec /fixmbr 和 bootsect /nt60 C:把主引导记录还原成 Windows 原生引导。我现在装双系统前一定先把 EFI 分区里的引导文件用磁盘工具做一次镜像备份这个习惯来自早期一次误删分区赔掉整块盘引导的血泪经验——备份五分钟恢复半小时比重装省太多时间。这篇流程按「先确认模式、再压缩分区、再手工分区、最后验证引导」的顺序走装过几十次双系统的经验都在里面了希望帮到你。本文还有配套的精品资源点击获取
返回列表