
简介面向需要在Windows 10基础上加装Ubuntu 20.04 LTS的入门与进阶用户一份图文PDF教程系统梳理了win10 Ubuntu 20.04双系统的完整搭建流程。内容从Ubuntu官方镜像下载与Rufus启动U盘制作入手逐步讲解在磁盘管理中压缩出独立分区、关闭Win10快速启动、BIOS中关闭Secure Boot并开启UEFI启动等关键准备安装阶段采用“与Windows Boot Manager共存”方式避免手动分区并覆盖首次启动后的更新处理、GRUB引导界面美化以及双系统时间不同步的两种解决办法。全流程配有截图和选项说明便于对照操作对不熟悉UEFI/GPT设置的用户尤为友好。资源共1个PDF文件包体大小7.96MB已有16470人学习下载是一份轻量但步骤完整、可直接参考的安装教程。1. 为什么 Windows 10 用户需要 Ubuntu 20.04 双系统先想清楚再动手不少人在 Windows 10 上折腾 Ubuntu 20.04 双系统装到一半发现启动菜单乱了第一反应就是后悔。其实双系统安装本身并不难难的是装之前没想清楚分区方案和引导策略。虚拟机里跑 Ubuntu 适合尝鲜但做 ROS 开发、训练 YOLOv8、接 USB 摄像头、用显卡直通虚拟机的性能和硬件兼容性都差点意思。双系统则能让你在 Windows 10 上保留办公、网银、游戏环境同时拥有一个原生的 Ubuntu 20.04 开发环境。这篇笔记不会带你用“覆盖安装”“一键 ghost”之类的歪路而是按 UEFI GPT 的现代标准流程把准备、分区、安装、排错一次说透。2. 安装前准备从镜像下载到 BIOS 设置决定双系统成败的四个环节2.1 下载 Ubuntu 20.04 LTS 镜像别用第三方渠道校验哈希更稳妥Ubuntu 20.04 是 LTS 长期支持版本目前最常用的桌面镜像文件名叫ubuntu-20.04.6-desktop-amd64.iso。去官方网站下载即可注意不要去第三方站下载所谓“破解版”或“集成版”那些往往改了系统包装完反而带来未知问题。下载完成后先做哈希校验Windows 10 下可以用 PowerShell 直接算 SHA256# 在 Windows 10 的 PowerShell 里计算镜像哈希 Get-FileHash .\ubuntu-20.04.6-desktop-amd64.iso -Algorithm SHA256逻辑说明官方下载页面会提供 SHA256 校验值算出来之后逐字符比对。如果对不上镜像可能在传输中损坏U 盘引导时会报错。参数说明-Algorithm可以换成SHA1或MD5但 U 盘安装用的是 SHA256最稳妥的做法是三种都顺便算一下其中任意一种匹配都说明文件完整。注意右键点击下载的 iso选择“属性 - 哈希”不是 Windows 10 自带功能别费劲找直接在 PowerShell 里跑命令最省事。拿到镜像后不用急着烧录 U 盘先确认你的磁盘布局。如果这台 Windows 10 是自带预装系统通常分区是 GPT 格式BIOS 是 UEFI 模式这也是本文主要覆盖的场景。如果你的机器是 2016 年以前的老电脑BIOS 可能是传统 MBR那下面的 Rufus 参数要改我会在对应位置标注。2.2 用 Rufus 写入 U 盘GPT 与 UEFI 的对应关系准备一个 8GB 以上的 U 盘注意 U 盘上如果有重要文件先备份因为制作过程会清空它。我一般用 Rufus 这个便携版工具不用安装双击就能跑。打开 Rufus 后设备选 U 盘引导类型选择下载好的 iso接下来关键的是下面这几个选项选项新机器UEFI老机器传统 BIOS分区类型GPTMBR目标系统类型UEFI非 CSMBIOS 或 UEFI-CSM文件系统FAT32NTFS/FAT32集群大小默认默认逻辑说明新机器主板默认启用 UEFI磁盘分区表是 GPT所以 U 盘也必须用 GPT UEFI 模式否则安装程序可能不识别。老机器如果只支持传统 BIOS 引导就需要 MBR 模式。你可以在 Windows 10 的“磁盘管理”里右键看系统磁盘属性如果是 GPT 分区表就按 UEFI 那一列来。点击“开始”写入时Rufus 可能会弹窗提示“检测到 ISOHybrid 镜像”选择“以 DD 镜像模式写入”还是“以 ISO 镜像模式写入”这是一个关键坑。对于 Ubuntu 20.04 桌面版选择“以 ISO 镜像模式写入”更稳妥这样能保留 UEFI 引导能力如果选 DD 模式很多 U 盘在 UEFI 下会直接被跳过。写入完成后U 盘会被分为一个小分区里面能看到EFI文件夹这就说明制作成功。2.3 在 Windows 10 中压缩出空闲空间三个分区方案U 盘就绪后回到 Windows 10 给 Ubuntu 腾地方。打开“磁盘管理”右键“此电脑” - “管理” - “磁盘管理”找到系统盘通常是 C 盘所在磁盘右键 C 盘选择“压缩卷”。输入想要压缩的大小单位是 MB压缩出来的空间会显示为“未分配”。这里千万记住压缩后不要新建分区、不要格式化直接留着这个未分配状态留给 Ubuntu 安装器使用。可以先查一下当前的磁盘编号确认你要压缩的是系统盘# 查看 Windows 10 当前磁盘分区结构确认系统盘编号 Get-Partition | Where-Object {$_.DiskNumber -eq 0} | Format-Table逻辑说明这条命令列出 0 号磁盘上的分区-eq 0是磁盘编号 0如果你的系统盘在磁盘 1就改成-eq 1。参数说明Format-Table让输出更整齐方便看清楚每个分区的类型和大小。其实这一步不是必须的但能帮你避免压缩到数据盘上。压缩多大的空间才算够用这取决于你要在 Ubuntu 里干什么。建议给一张参考表使用场景/ 根分区/homeswap日常办公、网页开发50GB剩余全部4GB 或不用跑 ROS、深度学习80GB剩余全部8GB只做临时试验30GB不需要单独分不设逻辑说明把“/”和“/home”分开是双系统安装的常见做法这样重装系统时/home里的个人文件还能保留。swap分区传统上建议设为内存大小但现在的机器 16GB 内存以上可以设 8GB 或者直接忽略如果未来打算用休眠功能swap 至少要覆盖内存大小。我一般会留出至少 100GB因为 Ubuntu 20.04 系统本身占 10GB 左右加上编译缓存、Docker 镜像很快就满。2.4 进 BIOS 前的最后检查关掉安全启动和快速启动安装 Ubuntu 20.04 之前必须进 BIOS 改动几项设置。重启电脑开机时按F2、F12或Del键进入 BIOS具体按键取决于主板品牌开机画面通常有提示。找到以下三项并修改Secure Boot安全启动设为Disabled。Ubuntu 20.04 虽然支持 Secure Boot但不少 Windows 10 预装机的安全启动策略很严格会导致 Ubuntu 引导不识别。关闭后等装完系统再重新开启也行但没必要。Fast Boot快速启动设为Disabled。这个选项会让 UEFI 只初始化最少的硬件U 盘引导容易失败。SATA Mode硬盘模式如果你的 BIOS 里显示的是RAID而 Windows 10 已经装好了改成AHCI前一定要先在 Windows 里做一步否则 Windows 会蓝屏。方法是先在 Windows 10 中执行下面这条命令然后重启进 BIOS 修改再重启进入安全模式最后再执行第二条命令恢复正常模式。# 在管理员 PowerShell 中启用安全模式下的 AHCI 驱动 bcdedit /set {current} safeboot minimal# 安全模式启动后在管理员 PowerShell 中关闭安全模式引导 bcdedit /deletevalue {current} safeboot逻辑说明bcdedit是 Windows 的启动配置编辑工具{current}表示当前系统。第一条命令让 Windows 下次重启进入安全模式同时加载 AHCI 驱动这样改完 SATA 模式后不会蓝屏。第二条命令在安全模式里执行恢复正常的正常引导参数。参数说明/set和/deletevalue是子命令safeboot minimal是安全模式的标志如果改错可能导致无法启动所以这两条命令务必按顺序执行中间不要跳过重启也不要顺手改其他 bcd 项目。如果你的 BIOS 里 SATA 模式本来就是AHCI那这两条命令可以直接跳过不用折腾。改动完成后保存 BIOS 设置并退出重启插上 U 盘准备进入安装阶段。3. 安装 Ubuntu 20.04 双系统从引导 U 盘到手动分区一步步落地3.1 从 U 盘启动与识别 U 盘UEFI 启动菜单怎么看重启插入 U 盘开机时按F11或你电脑品牌的启动菜单快捷键调出一次性启动菜单选 U 盘那一项。注意看名称一般会同时出现两个同名的 U 盘选项一个带UEFI:前缀一个不带。选带UEFI:前缀的这样才能进入安装界面。如果你选了不带前缀的可能会进入传统 BIOS 模式安装装出来的引导方式和 Windows 不兼容。进入 Ubuntu 20.04 的安装界面后选择“Try Ubuntu”进入试用模式。这一步相当于先用 U 盘系统跑一遍确认硬件没问题同时打开终端敲几条命令看看磁盘布局。按CtrlAltT打开终端执行# 查看当前磁盘信息确认哪个是 U 盘、哪个是 Windows 系统盘 lsblk -o NAME,SIZE,MODEL,TRAN逻辑说明lsblk列出所有块设备-o NAME,SIZE,MODEL,TRAN只输出名称、容量、硬件型号和传输类型。传输类型为usb的就是 U 盘通常是/dev/sdb或/dev/sdcWindows 系统盘一般是/dev/sdaSATA或/dev/nvme0n1NVMe SSD。参数说明SIZE列用来识别盘的大小很直观如果你的 U 盘是 16GB能看到对应条目TRAN列是sata、nvme或usb可以帮你避免误把 Windows 盘当成 U 盘。如果这里看不到 U 盘说明 U 盘启动没成功回去检查 BIOS 里的 Fast Boot 和 Secure Boot。如果能看到但进入安装界面后鼠标键盘不动可能是 USB 控制器不兼容可以把 U 盘从 USB 3.0 口换到 USB 2.0 口再试。3.2 手动分区/、/home、swap 与 EFI 分区的关系双击桌面上的“Install Ubuntu 20.04”图标开始安装。语言选中文一路下一步直到出现“安装类型”界面。这里千万不能选“清除整个磁盘并安装 Ubuntu”它会把你整个硬盘包括 Windows 都抹掉。必须选择最下面的“其他选项”Something else然后点击“继续”。这是双系统安装的核心分界点。在弹出的分区编辑器里你能看到所有磁盘和分区。找到之前 Windows 压缩出来的“空闲空间”通常显示为 free space。选中它点击下面的“”按钮新建分区。我建议按这种方式分三个区第一个分区大小填50000约 50GB类型选择“主分区”位置“起始”用于挂载点/文件系统ext4。第二个分区大小给81928GB类型“逻辑分区”用于“交换空间”swap。第三个分区剩余的空间全部留给/home类型“主分区”文件系统ext4。逻辑说明/是系统根目录所有系统文件和程序都在这里/home是你的用户目录放文档、代码、下载内容。两者分开能保证重装系统时不丢数据也方便给/home单独扩容。swap是虚拟内存8GB 对于大多数开发场景够用如果你内存只有 8GB 以下建议设成和内存一样大。如果是在 NVMe 固态上安装注意看到的是/dev/nvme0n1p1、p2这样的分区名不要搞混。这里还有一个容易忽略的地方分区完成后界面底部有一个“安装启动引导器的设备”下拉框。很多人直接默认选择/dev/sda但如果你将来在 Windows 里调整分区这个引导位置容易出问题。更稳妥的做法是选择你的 Windows EFI 分区所在设备先执行下面的命令确认一下# 查看分区文件系统类型找到 Windows 的 EFI 分区 lsblk -f逻辑说明lsblk -f会显示每个分区的文件系统Windows 的 EFI 分区通常是 vfat 格式大小在 100MB 到 500MB 之间挂载点通常是/boot/efi如果已经自动挂载。看到这个分区后在安装器右下角选择它所在的磁盘比如/dev/sdaUbuntu 安装程序会自己识别到 EFI 分区并写入 GRUB。注意不是选择 EFI 分区本身而是选择这个分区所在的那块物理磁盘例如/dev/sda或/dev/nvme0n1。参数说明-f表示显示文件系统类型如果某一行显示vfat且没有挂载点那就是 EFI 分区。3.3 安装引导程序选错设备会让 Windows 直接进不去手动分区设置完成后点击“现在安装”Ubuntu 会开始复制系统文件并安装引导程序。这个过程需要几分钟取决于硬盘速度。安装快结束时安装器会提示“安装系统启动引导器”前面选择的设备会在这里体现。如果你选成了某个具体分区比如/dev/sda1安装完成后大概率会直接进 Ubuntu 或者出现 GRUB 加载失败。正确的选择是整块磁盘让 GRUB 接管 EFI 启动项然后在 GRUB 菜单里同时列出 Ubuntu 和 Windows Boot Manager。这里要说一个细节如果安装器自动检测到了 Windows Boot Manager它会把自己添加进 GRUB 菜单如果没有检测到可以先不管它装完后在 Ubuntu 里更新 GRUB。不要因为这个提示而中断安装。等待安装完成提示“安装成功”点击“立即重启”然后拔掉 U 盘。如果重启后看到紫色或黑底的 GRUB 菜单里面有 Ubuntu 和 Windows Boot Manager 两个选项说明引导程序已经正确安装。如果直接进了 Windows别急后面 4.1 节会讲怎么修复。3.4 首次启动GRUB 菜单里的两个系统排序和默认项怎么定第一次进入 Ubuntu 20.04 后打开终端执行下面两条命令确认系统确实识别到了 Windows# 更新 GRUB 菜单让 os-prober 重新检测 Windows sudo update-grub逻辑说明update-grub会读取/boot/grub/grub.cfg的模板并重新生成菜单同时调用os-prober检测其他操作系统。因为安装时可能没有检测到 Windows这一步能确保 Windows Boot Manager 出现在 GRUB 里。参数说明如果更新后菜单里还是没有 Windows检查/boot/grub/grub.cfg里是否存在windows条目或者看/etc/default/grub中GRUB_DISABLE_OS_PROBER是否被设为true如果是设为false后重新执行update-grub。GRUB 默认启动项排在第一个的是 Ubuntu如果你希望默认进入 Windows可以修改/etc/default/grub里的GRUB_DEFAULT。用nano编辑配置文件把GRUB_DEFAULT0改成 Windows 条目的序号或者直接写GRUB_DEFAULTWindows Boot Manager (on /dev/sda1)这种带引号的名字。但我不建议你在刚装好的时候改它先熟悉默认菜单稳定运行一周再说。4. 双系统常见问题与避坑GRUB、时区和显卡驱动都是重启后才知道的坑4.1 重启后直接进入 Windows看不到 GRUB 菜单现象安装过程一切正常重启后没有 GRUB 界面直接看到 Windows 10 登录画面就好像 Ubuntu 没装过一样。原因UEFI 启动顺序里Windows Boot Manager 仍然排在第一位GRUB 没有被激活或者安装引导程序时写到了 U 盘而不是系统硬盘。解决先重启进 BIOS找到“启动顺序”或“Boot Priority”设置把带有ubuntu或GRUB字样的启动项移到最上面。如果 BIOS 里没有ubuntu这一项说明 GRUB 没有成功写入 EFI 分区需要用 Ubuntu 安装 U 盘重启进入“Try Ubuntu”模式然后安装并运行 Boot Repair 工具# 在 Ubuntu Live 环境里安装 Boot Repair 并运行推荐修复 sudo apt-add-repository ppa:yannubuntu/boot-repair sudo apt update sudo apt install boot-repair sudo boot-repair逻辑说明boot-repair是修复双系统引导最常用的工具它会重新安装 GRUB 到 EFI 分区并把ubuntu启动项添加到固件中。第一条命令添加它的官方 PPA 源第二条更新软件列表并安装第三条启动图形界面。参数说明apt-add-repository的参数来源是 PPA 仓库如果你所在网络访问不了可以直接用apt install boot-repair部分 Ubuntu 版本自带或者换清华源里维护的boot-repair包。运行后选择“Recommended repair”推荐修复等它完成重启后一般就能看到 GRUB 菜单。注意Boot Repair 有时会额外加一个updates启动项那是它创建的备份菜单不要删除。4.2 两个系统时间相差 8 小时现象在 Ubuntu 里看到时间正确重启进入 Windows 10 后时间显示慢了 8 小时反过来在 Windows 里调好后回到 Ubuntu 又快了 8 小时。原因Windows 把主板硬件时钟当成“本地时间”读取Ubuntu 默认把硬件时钟当成“UTC 时间”把硬件时钟加上时区偏移作为本地时间。所以两边总差出 8 小时中国时区 UTC8。解决在 Ubuntu 里执行一条命令让系统把硬件时钟当作本地时间这样两个系统就统一了# 让 Ubuntu 使用本地时间作为 RTC 标准解决双系统时间差 timedatectl set-local-rtc 1 --adjust-system-clock逻辑说明timedatectl是 systemd 时代管理时间和日期的命令。set-local-rtc 1表示将实时时钟RTC解释为本地时间--adjust-system-clock会在设置的同时把当前系统时间写入硬件时钟避免从“UTC 模式”切换过来时再次产生偏移。参数说明如果想改回默认的 UTC 模式把参数1改成0再执行一次即可。执行完可以用timedatectl查看输出最后一行会显示RTC in local TZ: yes就说明设置生效了。4.3 安装完 Ubuntu 后黑屏、卡 Logo 或闪烁现象安装过程中画面正常但安装完成后重启在 GRUB 菜单选择 Ubuntu 后屏幕黑屏或者一直停在 Ubuntu Logo 界面键盘鼠标都没响应。原因显卡驱动问题。特别是 NVIDIA 独立显卡的双显卡笔记本Ubuntu 20.04 自带的nouveau开源驱动和显卡兼容性差导致内核模式设置失败。解决在 GRUB 菜单高亮 Ubuntu 时按e键编辑启动项找到以linux开头的那一行在行尾添加一个参数# 临时启用 nomodeset 内核参数跳过显卡驱动初始化 nomodeset逻辑说明这个参数告诉内核不要加载任何显示驱动先用最基础的 VGA 模式启动从而绕过nouveau的兼容问题。修改完成后按CtrlX或F10启动应该能进入桌面。但这个参数只是让你能进入系统不能解决根源还需要安装官方 NVIDIA 驱动# 禁止 nouveau 驱动并安装 nvidia 官方驱动 sudo apt purge nvidia-* sudo apt install nvidia-driver-470 sudo reboot逻辑说明第一条命令把可能残留的开源驱动清理掉第二条命令安装 NVIDIA 官方 470 系列驱动这是对 Ubuntu 20.04 稳定性较好的版本。安装完成后重启之前的问题通常就消失了。参数说明如果你不确定驱动版本先执行ubuntu-drivers devices看系统推荐的驱动列表再选nvidia-driver-XXX安装。重启后如果仍然黑屏回到 GRUB 编辑把nomodeset换成nouveau.modeset0再试。4.4 删除 Ubuntu 后 Windows 无法引导现象Windows 10 的磁盘管理里删除了 Ubuntu 所在的分区重启后提示“找不到操作系统”或直接进入 BIOS 启动设备选择界面。原因删除分区时把 EFI 引导里属于 Ubuntu 的文件也清理掉了但 UEFI 的启动项还指向 GRUB导致启动链断裂。严格来说删除 Ubuntu 的正确步骤应该先进入 Ubuntu 或 Live 环境用efibootmgr删除 Ubuntu 的固件启动项然后再删除分区。可大多数人是直接删分区的好在还有后悔药。解决用 Windows 10 安装 U 盘或恢复盘启动进入“修复计算机” - “疑难解答” - “命令提示符”然后执行# 在 Windows 恢复环境里重建主引导记录和启动配置数据 bootrec /fixmbr bootrec /fixboot bootrec /rebuildbcd逻辑说明这是 Windows 经典的引导修复三连。/fixmbr修复主引导记录/fixboot写新启动扇区/rebuildbcd扫描已安装的 Windows 并重建启动配置数据。如果提示系统找不到指定的路径说明 EFI 分区被弄乱了需要先用diskpart给 EFI 分区分配盘符再执行# 给 EFI 分区分配盘符后重建 UEFI 引导文件 bcdboot C:\Windows /s S: /f UEFI逻辑说明这里的C:是 Windows 系统所在盘S:是刚刚用diskpart分配的 EFI 分区盘符。/f UEFI告诉bcdboot生成 UEFI 启动文件。参数说明如果C:盘符不对先用diskpart的list volume确认系统卷和 EFI 卷的卷号再分别select volume和assign letter。执行完成后拔掉 U 盘重启Windows 就能恢复了。4.5 更新后 GRUB 菜单出现多个 Ubuntu 入口或找不到 Windows现象Ubuntu 运行一段时间后apt upgrade更新了内核重启时 GRUB 菜单里出现“Ubuntu”和“Ubuntu (with Linux ... old)”等多个条目或者原本的 Windows Boot Manager 选项消失了。原因每次内核更新都会保留旧的启动项这是正常现象Windows 条目消失通常是因为 os-prober 没有重新扫描或者/etc/default/grub里禁用了 os-prober。解决更新内核后让 GRUB 重新检测一遍# 重新生成 GRUB 配置并强制开启 os-prober 检测 Windows sudo sed -i s/^#\?GRUB_DISABLE_OS_PROBER.*/GRUB_DISABLE_OS_PROBERfalse/ /etc/default/grub sudo update-grub逻辑说明第一条命令把配置文件的GRUB_DISABLE_OS_PROBER行改为falsesed是流编辑器s/.../.../是替换操作^#\?匹配开头可能有的注释符。第二条命令重新生成 GRUB 菜单让 Windows 条目回来。参数说明如果你用的是 Ubuntu 20.04 自带 GRUB 2.04GRUB_DISABLE_OS_PROBER默认就是false但某些大版本更新会把它重置所以每次系统升级后建议跑一次sudo update-grub养成习惯。如果你的 GRUB 菜单越来越乱想清理旧内核条目最简单的是在 Ubuntu 终端里安装ubuntu-mainline-kernel工具或者手动sudo apt autoremove --purge清理不再使用的内核。但注意不要删除正在运行的内核先执行uname -r看看当前内核版本。5. 双系统安装完后的第一件事备份 GRUB 引导与验证分区布局5.1 用一条命令备份 EFI 引导给自己留后悔药我每次装完双系统都会先把 EFI 分区里的 Ubuntu 目录和 GRUB 配置文件备份到/home下万一以后升级搞坏引导拷贝回去就能恢复# 将 EFI 分区中的 ubuntu 引导目录备份到 /home/efibackup sudo mkdir -p /home/efibackup sudo cp -a /boot/efi/EFI/ubuntu /home/efibackup/ sudo cp /boot/efi/EFI/ubuntu/grub.cfg /home/efibackup/ 2/dev/null || true逻辑说明/boot/efi是 EFI 分区的挂载点里面存着需要用到的引导文件。cp -a保留文件属性和权限备份恢复时不会因为权限问题失效。最后一条|| true是为了处理可能不存在的grub.cfg文件不至于导致命令报错中断。5.2 验证分区挂载点与 fstab 是否一致启动到 Ubuntu 后运行lsblk -f查看根分区、/home和 swap 是否按计划挂载再查看自动挂载配置# 查看开机自动挂载配置确认没有异常条目 cat /etc/fstab逻辑说明fstab是 Ubuntu 开机时自动挂载分区的清单里面每一行对应一个分区或设备。如果有多余的或错误的挂载点系统启动会卡在“磁盘检查”界面所以看懂很重要。正常安装后的 fstab 里会有根分区和/home两条记录swap 也会有一条。如果发现没有/home说明安装时把/home漏了可以手动加一行但更稳妥的做法是重装时重新选分区不影响系统文件。这套流程我前前后后给不少同事装过最深的体会是双系统安装本身不复杂复杂的是装完之后的引导维护。所以装完第一件事就是备份 EFI 目录然后照常使用两周确认稳定后再考虑清理 Windows 里的旧备份。这样无论是更新内核还是手滑动了分区都还能优雅地回到原来的状态。希望这个流程能帮你少走些弯路也希望你的 Windows 10 与 Ubuntu 20.04 双系统能长期安稳地共存。本文还有配套的精品资源点击获取