ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

Windows 10与Linux双系统安装全攻略:从UEFI、GRUB引导到分区修复

2026/9/13 8:38:53 拓冰建站 浏览量
Windows 10与Linux双系统安装全攻略:从UEFI、GRUB引导到分区修复 最近总有人在后台问我说自己的电脑装着 Windows 10又想试试 Linux担心装坏了系统不敢动手。我前前后后帮同事、朋友装过不下十次双系统也算把 UEFI、GRUB、Secure Boot 这些坑踩了个遍。这篇就把整个流程写透从前期准备到分区方案从引导修复到卸载清理尽量把我遇到过的问题和解决思路都放进去。想装 Ubuntu、Deepin 或者其他发行版原理基本都是相通的。我先说个结论如果你只是想偶尔跑个 Linux 环境、写写脚本、做做服务器开发虚拟机或者 WSL 其实比双系统更合适省电省心还不用重启。但如果你是做嵌入式、ROS 机器人、深度学习的训练推理或者单纯想体验完整的 Linux 桌面、需要直接操作硬件和内核那双系统就是绕不开的选择。这篇主要针对 win10 加 Linux 双系统的“正规军”玩法适合想长期使用、需要完整性能的读者。1. 动手前先想清楚双系统、虚拟机、WSL 到底怎么选1.1 三种方案的真实差异我见过太多人一上来就直奔双系统装完以后发现一年也进不了几次 Linux反而每次开机都要在 GRUB 界面多等好几秒来回切换重启也很烦。所以先帮大家理理思路。双系统意味着 Windows 和 Linux 分别安装在两块独立分区或独立的物理磁盘里开机时通过引导程序选择进入哪个系统。它的优点是硬件性能几乎无损显卡、USB、传感器这些设备直接由当前系统独占访问特别适合需要频繁读写硬件、跑大型计算的场景。缺点是切换系统必须重启而且两个系统共用一块硬盘时分区操作一旦出错数据风险是实打实的。虚拟机比如 VMware Workstation、VirtualBox是在 Windows 内部运行一个虚拟化软件再在软件里装 Linux。优点是可以同时开着两个系统复制粘贴文件、快照备份都很方便系统坏了直接删掉重来对物理机没有任何损伤。缺点是性能有损耗特别是涉及图形加速、USB 直通、内核模块加载的时候会明显感觉到比原生慢。WSLWindows Subsystem for Linux是微软官方的 Linux 兼容层能在 Windows 里原生跑 Linux 命令行程序。它胜在轻量、启动快、和 Windows 文件系统集成度高适合开发调试。但如果你想用它跑完整的 Linux 桌面或者操作硬件设备会很吃力有时候隔一阵子系统更新还会搞出些小毛病比如 WSL 里删了文件虚拟磁盘 vhdx 文件空间却不释放又得手动 compact。1.2 哪种情况才值得装双系统按照我自己的经验有这几类需求的人是真正需要双系统的第一类是机器人、嵌入式和自动驾驶方向的开发者要用 ROS、激光雷达驱动、串口转 USB 设备、EtherCAT 等硬件依赖型工具链这些在虚拟机里经常出现设备识别不到或者延迟高的问题。第二类是搞深度学习或者科学计算的需要最大化利用 GPU 算力和大内存带宽虚拟机在这块损耗太严重。第三类是想把 Linux 当成主力桌面系统的人比如程序员愿意直接在 Linux 下开发、写文档、跑 Docker但偶尔还需要用网银、某些 Windows 专用软件和简体中文办公环境这时候双系统是工作流最顺畅的组合。反过来如果你只是想学学 Linux 常用命令、写点简单的 shell 脚本、跑跑 Nginx 和 MySQL那就别折腾双系统了。装个 VMware 或者开个 WSL 就完全够用没必要承担分区调整的风险。记住一个判断标准如果你不能清晰说出“我需要 Linux 的哪些底层能力”那就先用虚拟机。2. 安装前的准备工作硬盘、镜像、启动盘和 BIOS 设置2.1 给 Linux 腾磁盘空间这一步看似简单但翻车的人最多。我见过不少人在 Windows 的磁盘管理里“压缩卷”之后安装 Linux 时发现“安装类型”界面看不到空闲空间或者能看到了但安装程序报错。这背后是分区表类型、动态磁盘、BitLocker 加密一系列问题在捣鬼。打开 Windows 的磁盘管理右键开始菜单选磁盘管理最理想的情况是你有一块独立的物理硬盘比如第二个 M.2 固态或者机械盘直接用它来装 Linux两个系统物理隔离互不干扰开机选择也简单。如果只有一块硬盘就得先在现有系统盘的卷上右键选“压缩卷”输入想腾出的空间大小。这里要给个建议Linux 系统盘分区不要给太小至少预留 100GB如果你要装 ROS、深度学习框架、OpenCV 这类大型依赖库或者想给 home 目录留足空间建议一步到位给 200GB 以上。空间这东西宁多勿少后面扩容可比压缩麻烦多了。压缩卷的时候有几个坑要注意。第一如果你的 C 盘开着 BitLocker 加密很多品牌机预装 Windows 默认启用直接压缩可能会得到一个 BitLocker 恢复界面甚至直接失败。建议先去“设置-隐私和安全性-设备加密”里把加密关掉或者用 manage-bde -status 命令查看加密状态加密中的磁盘先等它解密完成。第二如果磁盘管理里压缩卷选项是灰色的说明你的磁盘是动态磁盘或者有系统保护文件挡住了这时候可以先把虚拟内存移到其他盘、关闭休眠再重试。第三压缩后得到的是“未分配空间”不要在里面新建卷保持未分配状态留给 Linux 安装程序自己识别。2.2 制作 U 盘启动盘的两种姿势Linux 发行版镜像可以从各发行版官网下载Ubuntu 的桌面版和服务器版分清楚桌面版带 GNOME 图形界面适合日常使用。下载完镜像以后需要把镜像“写入”U 盘而不是像拷贝普通文件那样拖进去。因为 iso 镜像包含了引导信息和整个文件系统结构必须用专用工具做“启动盘”。Windows 下我推荐用 Rufus体积小、免费、更新勤。插上 U 盘里面如果有数据先备份制作过程会格式化整个盘打开 Rufus设备选 U 盘引导类型选刚才下载的 iso 镜像分区类型和目标系统类型要注意。现在绝大多数电脑都是 UEFI 模式、GPT 磁盘所以分区类型选 GPT、目标系统选 UEFI 就对了。如果是很老的电脑BIOS 加 MBR 的组合才选 MBR 分区方案。文件系统默认 NTFS 还是 FAT32 的问题不大Rufus 会自动处理但如果你下载的镜像大于 4GBFAT32 会写不进去Rufus 会自动帮你想办法注意看提示。写入方式那里Ubuntu 官方推荐 DD 模式Rufus 默认的 ISO 模式其实也能用但如果遇到 U 盘启动后进不了安装界面可以换 DD 模式重新写一次。我的习惯是直接用 DD 模式兼容性更稳。写完之后怎么验证 U 盘没问题最简单的办法是在 Windows 资源管理器里看 U 盘是不是变成了一个叫“Ubuntu”或者发行版名称的卷还能看到 EFI、casper 之类的文件夹就说明写入成功了。2.3 BIOS 里最容易忽略的两个设置装双系统时 BIOS 设置错了后面会遇到各种奇怪问题。开机按 F2、Del、F10不同品牌不一样进入 BIOS 设置界面重点检查两处。第一处是 Secure Boot。这个功能是 UEFI 规范里的安全机制用来防止未签名的引导程序启动。Windows 默认开启但 Linux 发行版哪怕用了 shim 签名引导在部分主板上仍然可能被拦。保险的做法是进 BIOS找到 Secure Boot 选项选择关闭或者禁用。装了 NVIDIA 独立显卡的朋友更要留意某些版本驱动和 Secure Boot 有兼容冲突关闭能省一堆事。第二处是 SATA Mode硬盘模式。UEFI 下通常叫 AHCI如果你是 Intel 平台还可能遇到 VMDVolume Management Device模式。有些新电脑出厂默认开 VMDLinux 安装程序会找不到硬盘。这种情况要么在 BIOS 里把 VMD 关掉改回 AHCI要么在安装时按提示加载 VMD 驱动。更常见的问题是Windows 原本以 RAID 或 IDE 模式安装你给改成 AHCI 后 Windows 直接蓝屏。解决方法是在改 BIOS 之前先在 Windows 里用管理员运行命令 bcdedit /set safeboot minimal然后关机改 AHCI进系统后再执行 bcdedit /deletevalue safeboot 恢复。还有一个细节进 U 盘启动菜单的方式。大多数电脑开机时按 F12联想、戴尔、ESC华硕或者 F10惠普可以弹出一次性启动菜单从 U 盘启动。注意这个操作只是单次选择不会改变硬盘上的启动顺序非常适合装系统时用。3. 安装 Linux 的完整过程分区、引导、驱动一次说清3.1 分区方案到底怎么选从 U 盘启动后用“试用Try”或“直接安装Install”进入安装环境。建议先试运行几分钟确认无线网络、触摸板、显卡输出正常再点安装免得装完进桌面黑屏了都不知道是驱动问题还是系统问题。到了“安装类型”界面如果硬盘上有未分配空间安装程序一般会提示“在其他位置安装”或者“清空磁盘安装 Linux”。千万注意千万别选“清空整个磁盘”否则 Windows 就没了。正确的选择是“Something else / 手动分区”。拿到未分配空间以后我推荐的最小分区方案是一个 EFI 系统分区如果安装程序没有自动创建、一个根分区 /、一个 swap 交换分区home 目录可以直接放在根分区里不必单独分。这里把每个分区的用途说清楚EFI 分区大小为 512MB 到 1GB格式 FAT32挂载点选 /boot/efi。这是 UEFI 引导必需的分区里面放的是引导加载器文件。如果你的磁盘上已经有一个 Windows 创建的 EFI 分区通常 100MB 到 300MB安装程序可能会让你共用它。这里我的建议是全新安装时如果 Windows 的 EFI 分区有 100MB 以上可以直接共用如果觉得风险高或空间紧张也可以手动新建一个独立的 EFI 分区同时把安装引导器的设备选择到对应磁盘。实际操作中Ubuntu 的安装程序识别到现有 EFI 分区时会自动复用一般没问题网上的很多问题其实是 Secure Boot 没关造成的假象。根分区 /格式 ext4挂载点选 /大小把剩余空间扣除 swap 后的大部分都给它。系统文件、软件、环境依赖全在这个分区里。swap 分区交换分区类似 Windows 的虚拟内存。如果你的内存不小于 16GB 且不太用休眠功能可以给它 8GB 到 16GB如果内存很小或者要频繁跑大编译任务就分到内存的 1 到 2 倍。合盖休眠依赖 swap 或 swapfile所以真打算用休眠功能swap 至少得和内存一样大。至于要不要单独分一个 /home 分区我的建议是量力而行。单独分的好处是以后重装系统时个人文件还在坏处是如果根分区空间不够用home 空间再大也挪不过来。对双系统用户来说我反而建议把根分区给大点不单独分 home省心。3.2 引导装载器应该装到哪里这是双系统安装里最令人困惑的一个选项。安装界面底部通常有个“安装启动引导器的设备”Device for boot loader installation下拉菜单。UEFI 模式下Linux 的引导加载器实际上是在安装时往 EFI 系统分区里写了一个名为 GRUB 的文件不是像老式 BIOS 那样写硬盘主引导记录 MBR。所以这个选项选哪个磁盘其实影响不大只要对应到你刚才用的那个 EFI 分区所在的物理磁盘就行。大多数人直接保持默认安装程序会自己判断。真正的坑出现在老式 BIOSMBR 的电脑上。如果安装 Linux 时把这个选项选成整块硬盘比如 /dev/sdaGRUB 会直接覆盖 MBRWindows 的引导会暂时拿不到最高优先级需要靠 GRUB 去 chainload Windows。这个机制本身没问题但一旦 Linux 出故障Windows 也跟着难过新手很容易慌。所以我建议如果是老电脑保险起见把引导器装在 Linux 根分区所在磁盘然后靠 BIOS 启动顺序切换。3.3 从 U 盘启动到进入安装器时常见的小故障我见过最多的两个问题是一是从 U 盘启动后黑屏或卡在 logo 处二是进入安装界面后鼠标键盘没反应。黑屏问题大概率是显卡驱动导致的。很多 NVIDIA 显卡在开源的 nouveau 驱动下会抽风导致屏幕不亮。解决办法是在 GRUB 菜单界面紫底或黑底带图标那个界面按 e 进入编辑模式找到以“quite splash”结尾的那一行在末尾加上 nomodeset然后按 F10 启动。这个参数会暂时让系统用基础显示模式启动能正常进安装器等装完系统后再安装 NVIDIA 官方驱动把 /etc/default/grub 里的 GRUB_CMDLINE_LINUX_DEFAULT 的 nomodeset 移除或保留再 update-grub。还有一种情况是安装程序对个别笔记本键盘触摸板驱动识别不好表现为光标能移动但打字没反应。这往往是某些品牌机的 USB 键盘固件兼容性问题可以试试把 BIOS 里的 XHCI Hand-off 选项打开或者在安装时换一个 USB 口。遇到这些情况不要急着判定“镜像坏了”先确认是不是外设兼容问题。3.4 安装过程里要不要联网、更新、装三方驱动安装向导会让你选择是否“在安装时下载更新”和“安装第三方图形驱动与多媒体编解码器”。我的建议是第三方驱动可以选上更新可以先不选。更新往往体积巨大而且顺序不对会影响安装速度更稳妥的做法是先装好系统进系统再把软件源切到国内镜像比如清华、阿里云然后 apt update 一次性更新这样速度比你装完系统前干等要快得多。安装过程中设置用户名和密码时强烈建议勾选“自动登录”旁边的“加密我的个人文件夹”选项时慎重。因为在双系统环境下开启 home 加密会导致以后文件恢复、共享变得非常麻烦而且你如果忘了密码基本等于数据没了。除非对隐私有极端需求不然别勾这个。4. 双系统引导与启动项管理GRUB 换顺序、修引导、调分辨率装完 Linux 重启以后出现的界面一般叫 GRUBGrand Unified Bootloader。它是一个多系统引导管理器作用是让你选择进 Windows 还是 Linux。如果你没有看到 GRUB 而直接进入了 Windows说明引导顺序被 Windows 抢占了如果直接进了 Linux 而找不到 Windows 入口说明 GRUB 没有正确识别 Windows 引导项。这两类问题都可以在系统里修复别急着重装。4.1 为什么装完 Linux 后开机出现 GRUB而不是 Windows 的转圈这是 UEFI 双系统的正常现象。安装 Linux 时GRUB 把自己写进了 EFI 启动项并且把自己排在了首位。启动时主板从 EFI 分区里按顺序找可用的引导文件找到了 GRUB 就把它加载出来GRUB 再通过配置文件查找系统里有哪些操作系统给出一个菜单。GRUB 菜单里通常会有一个 “Windows Boot Manager” 或形如 “Windows UEFI bootmgfw.efi” 的选项。如果你点进去能正常进 Windows说明引导链路是通畅的只是顺序问题而已。如果你根本看不见 Windows 项说明 GRUB 的 os-prober 脚本没有探测到 Windows 引导文件。原因多半是 Windows 的 EFI 分区没有挂载简单说就是 GRUB 的探测程序看不到那个分区。可以手动修复后面会讲。4.2 双系统修改启动顺序的两种方式很多人装好双系统后想把 Windows 设成默认启动毕竟 Windows 用得频率更高。修改启动顺序有三条路。第一条路直接改 GRUB 的配置在 Linux 里执行命令sudo nano /etc/default/grub文件里有这么一行GRUB_DEFAULT0数字 0 表示默认启动第一个菜单项。要改成 Windows先执行 sudo grub-mkconfig -o /boot/grub/grub.cfg看输出里 Windows 排在第几行然后回到配置文件里把 GRUB_DEFAULT 改成对应数字。菜单项序号从 0 开始比如 Windows 在第三行就改成 2。还有一种写法是 GRUB_DEFAULTWindows Boot Manager用菜单名没必要因为名字对空格大小写很敏感我更推荐用菜单序号。改完以后 sudo update-grub 保存生效。第二条路用图形化工具 Grub Customizer安装命令sudo add-apt-repository ppa:danielrichter2007/grub-customizer sudo apt update sudo apt install grub-customizer打开后能看到图形化的启动项列表直接用鼠标拖动排序非常直观。适合不太习惯命令行操作的朋友。不过用这个工具的副作用是它管理了 /boot/grub/grub.cfg你手动改 /etc/default/grub 可能会被覆盖所以要么走命令行要么用图形工具别混着来。第三条路直接进 BIOS把 Windows Boot Manager 设为第一启动项。这样开机不经过 GRUB直接进 Windows想进 Linux 的时候开机按 F12 从启动菜单里选。这个方法我其实最推荐因为最彻底、最稳定不会因为升级内核导致 GRUB 失效。缺点是每次切系统都得多一步按键。如果你习惯了 GRUB那就走前两条路。4.3 GRUB 启动页面太暗、分辨率模糊怎么调有朋友搜索“双系统启动页面选择页面太暗了”这个现象其实是 GRUB 的默认主题配色问题不是显示器坏了。Ubuntu 21.04 之后的 GRUB 用上了新的图形主题在个别屏幕上显示出来对比度偏低字体发灰。解决办法有两个。一个是调整 GRUB 分辨率。编辑 /etc/default/grub找到一行注释掉的 GRUB_GFXMODE改成你屏幕的原生分辨率比如GRUB_GFXMODE1920x1080 GRUB_GFXPAYLOAD_LINUXkeep保存后 sudo update-grub 即可。另一个是换主题或者关掉主题恢复经典黑白菜单。执行 sudo update-grub 之后把 /etc/default/grub 里的 GRUB_THEME/boot/grub/themes/... 改成空或者注释掉再运行 sudo update-grub就能用最原始的纯文本菜单显示效果绝对清晰。4.4 双系统恢复 Ubuntu 引导两种修复方案如果你因为更新、改配置或者 Windows 更新把 GRUB 弄坏了开机只显示一行 grub rescue 或者直接进 Windows别慌用 U 盘启动盘进去就能修。最省事的是 Boot Repair 工具。从 U 盘启动进入“试用 Ubuntu”模式联网后执行sudo add-apt-repository ppa:yannubuntu/boot-repair sudo apt update sudo apt install boot-repair boot-repair图形界面里点“Recommended repair”它会自动检测 EFI 分区、重装 GRUB并把 Windows 引导项重新识别。这个方法能解决 90% 的引导问题。注意执行完以后重启拔掉 U 盘就能看到 GRUB 菜单了。如果 Boot Repair 也救不回来就得手动挂载分区修 GRUB。先用 lsblk 看清磁盘布局假设你的根分区是 /dev/nvme0n1p5EFI 分区是 /dev/nvme0n1p1执行命令sudo mount /dev/nvme0n1p5 /mnt sudo mount /dev/nvme0n1p1 /mnt/boot/efi sudo mount --bind /dev /mnt/dev sudo mount --bind /proc /mnt/proc sudo mount --bind /sys /mnt/sys sudo chroot /mnt grub-install /dev/nvme0n1 update-grub exit sudo reboot这套“chroot 修引导”的思路是把硬盘上的 Linux 根分区挂到一个临时目录然后用 chroot 命令“钻进”这个系统环境在里面重装引导器。如果对命令不熟就先用 Boot Repair 试试。5. 删除双系统中的 Ubuntu恢复 Windows 引导有些朋友装了 Ubuntu 玩了一阵觉得没意思想卸载恢复成纯 Windows。卸载双系统最重要的一点是别直接格式化 Linux 分区那会导致 GRUB 丢失开机卡在 grub rescueWindows 也进不去。正确顺序是先修复 Windows 引导再删除分区。5.1 用 Windows 启动盘修复引导思路Win10 的官方安装盘或 PE 盘U 盘启动盘都能用来修引导。从 Win10 安装 U 盘启动进入界面后选“修复计算机”依次点“疑难解答-高级选项-命令提示符”然后执行bootrec /fixmbr bootrec /fixboot bootrec /rebuildbcd这三条命令的作用分别是修复主引导记录、修复引导扇区、重建启动配置数据。执行完毕后重启Windows 应该能正常进入。如果你的 Windows 是 UEFI 模式mbr 相关命令有时不完全够可能还需要用 diskpart 来调整 EFI 分区盘符。具体步骤是执行 diskpart列出磁盘 list disk选中系统盘 sel disk 0列出分区 list vol找到 EFI 分区通常 FAT32 格式100-300MB记下它的卷号 sel vol 3给它分配一个临时盘符 assign letterV:然后退出 diskpart。此时执行 bcdboot C:\windows /s V: /f UEFI就能把 Windows 引导文件重新写进 EFI 分区。bootrec /rebuildbcd 在某些机器上会提示“找不到 Windows 安装”可以改用 bcdedit /export 备份现有 bcd 后再用 diskpart 重新格式化 EFI 系统分区最后 bcdboot 重新写入。这个操作对新手来说容易出错建议还是先试最常规的三连不行再考虑重写 EFI 分区。5.2 删除 Linux 分区的正确姿势修复完引导、能正常进 Windows 之后再去磁盘管理里把 Linux 分区删掉。右键开始菜单打开磁盘管理识别出 Linux 的分区一般是没有文件系统、格式显示为 RAW 或未知的分区逐个右键删除卷然后把腾出来的空间合并到 C 盘或者新建一个数据分区。注意千万别把 Windows 的 EFI 分区和恢复分区删了。EFI 分区是 FAT32 格式很小恢复分区一般没有盘符卷标是“恢复”。删错一个Windows 引导或者恢复功能就坏了。宁可少删一个也不要多删比如磁盘尾部那个 500MB 左右的“恢复分区”虽然没有盘符但它是 Windows 恢复环境的一部分如果不需要可以保留着不碍事。删除完分区重启会看到开机还是出现 GRUB 命令行或者 grub rescue这是因为/boot/efi里 GRUB 的文件还在但系统分区没了所以引导加载器卡在“找不到 linux 内核”的状态。修复方法很简单插入 Win10 启动盘修复引导一次即可原理同上。把 EFI 分区里的 Ubuntu 文件夹删掉在管理员命令提示符下先给 EFI 分区分配盘符然后 del /s /f /q V:\Ubuntu 或者删掉整个 V:\EFI\Ubuntu 目录也能让开机不再出现 GRUB这一步做完就彻底回到 Windows 原生启动了。5.3 删除双系统后遗留的 EFI 启动项怎么清理如果修复完引导每次开机按 F12 还是能看到一个叫“ubuntu”的启动项但点进去是黑屏或者报错那是 EFI 启动项里的残留记录。在 Windows 管理员命令行执行bcdedit /enum firmware会列出所有固件启动项找到描述里包含 ubuntu 的那条记下它的标识符类似 {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}然后用bcdedit /delete {标识符} /f删除该启动项。建议操作之前用 bcdedit /export C:\bcd_backup 备份当前 BCD 配置以防误删。6. 双系统日常使用中的问题与运维经验6.1 双系统时间不准这几乎是每个双系统用户都会遇到的问题Windows 时间慢或者快 8 个小时。原因是 Windows 默认把主板时钟RTC当作“本地时间”来读而 Linux 默认把主板时钟当作 UTC再从时区偏移换算。所以两个系统互相切换时间就乱了。解决思路有两个方向。让 Windows 也按 UTC 读取主板时钟在管理员命令行执行reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_DWORD /d 1 /f然后重启。有些人反馈这个改法会影响 Windows 时间同步其实一般还好NTP 会自动校正。Linux 那边还有一个常见补救方式安装 ntpdate 并开启时间同步。我喜欢第二种思路在 Linux 里把设置改成硬件时钟使用本地时间命令timedatectl set-local-rtc 1但注意这样做的副作用是 Linux 的 date 输出会显示出“Local time”和“Universal time”一致的状态部分依赖 UTC 的程序可能出小问题。所以我个人更推荐在 Windows 里改注册表的方式一劳永逸。6.2 Linux 安装 Python 和常用开发环境的坑很多搜索词里看到“linux系统安装python”说明不少人装完 Linux 后第一步就是配开发环境。Ubuntu 系统自带 Python3但系统包管理器和一些自带脚本依赖它所以不要轻易卸载或替换系统自带的 Python哪怕觉得版本旧也不要乱动。正确的做法是用 pyenv 或者 conda 管理 Python 版本。pyenv 的安装不复杂sudo apt update sudo apt install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev curl https://pyenv.run | bash装完按提示把 pyenv 的初始化脚本加到 ~/.bashrc重开终端就能用 pyenv install 3.12.2 这种命令安装指定版本再用 pyenv global 切换默认版本。这套流程比直接用 apt 装 Python 干净得多不会污染系统依赖。6.3 国产 Linux 发行版双系统安装的差别这些年国产操作系统如银河麒麟、统信 UOS的讨论很多不少人在搜“银河麒麟双系统安装教程”。其实从技术层面看这类系统的安装流程和 Ubuntu 几乎一样同样是 U 盘启动-分区-自动识别 Windows 引导-开机出 GRUB。差别主要在于镜像格式可能不一样有些国产系统用 deb 包也提供 ISO 镜像安装工具同样基于 Calamares 或 Ubiquity。所以如果你会装 Ubuntu国产系统基本能直接上手。如果你是给单位办公电脑装国产系统建议也按照双系统的思路来Windows 保留一份国产 Linux 用独立分区这样兼容性有保障遇到不合用的软件还能切回 Windows。6.4 启动项多了以后怎么精简双系统用久了随着 Linux 内核升级GRUB 菜单里会累积多个内核版本看着乱还可能误选旧内核导致驱动不对。清理旧内核的命令是dpkg --list | grep linux-image sudo apt autoremove --purgeautoremove 会自动移除不再需要的旧内核。注意保留当前正在运行的内核和至少一个旧内核做回退别全删干净。删除之后再执行 sudo update-grub 刷新菜单。6.5 当 Windows 更新把 Ubuntu 引导搞坏之后Windows 大版本更新偶尔会重写 EFI 引导顺序导致开机直接进 Windows看不到 GRUB。遇到这种情况不要慌按照上一章“修复 grub”的办法用 Ubuntu 启动盘进入试用模式执行 Boot Repair 的 Recommended repair一般一分钟搞定。想省事的话也可以在 Windows 里用管理员命令行改启动顺序bcdedit /set {fwbootmgr} displayorder {linux引导标识} /addfirst前提是去 bcdedit /enum firmware 里查到 Ubuntu 的标识符。不过这个方法对新手不够直观我还是推荐 Boot Repair 图形界面。7. 安装过程中最常踩的五个大坑实战避坑清单我把这几年帮人装机遇到的高频问题整理成一张表按出现频率排序。这张表值得截图保存遇到故障先对照排查。现象原因解决思路安装完直接进 Windows看不到 GRUB 菜单GRUB 未写入 EFI 分区或 Windows Boot Manager 优先级更高用 Boot Repair 修复引导或进 BIOS 调整 UEFI 启动顺序安装完直接进 Linux菜单里没有 WindowsGRUB 的 os-prober 未识别 Windows 引导文件手动挂载 EFI 分区后 sudo update-grub检查 Secure Boot 是否关闭从 U 盘启动黑屏、卡 logo显卡驱动与 nouveau 不兼容GRUB 菜单按 e 加 nomodeset 参数临时启动安装后在系统内装 NVIDIA 官方驱动安装界面找不到空闲空间/磁盘不可见磁盘处于动态磁盘 / VMD 模式未关 / 未分配空间在别的磁盘上BIOS 里关闭 VMD确认目标盘是未分配状态用 lsblk 确认硬盘识别情况开机出现 grub rescue 命令行GRUB 引导文件损坏或系统分区被删除用启动盘进入试用模式执行 Boot Repair 或手动 chroot 修复若 Linux 已不需要则用 Windows 盘执行 bootrec /fixmbr7.1 安装完成后 غالبًا直接进 Windows 的原因分析除了 GRUB 没装好另一个常见原因是主板 UEFI 启动顺序里Windows Boot Manager 排在 Linux 前面。Windows 更新或 BIOS 重置都有可能把启动顺序重置成 Windows 优先。这时候的解决思路不用进 Linux开机按 F12 手动选一次 Ubuntu/GRUB 进系统然后输入命令sudo efibootmgr -v查看当前 UEFI 启动序列再执行sudo efibootmgr -o 0000,0001把 GRUB 对应的编号排到第一位。注意编号以你机器实际输出为准。这个命令的作用就是直接告诉主板“先找 GRUB”比 Boot Repair 更精准。7.2 双系统启动页面选择页面太暗问题的具体操作再说回“启动页面太暗”这件事因为问的人实在太多。除了之前说的改 GRUB_GFXMODE还有一个更高效的方案安装 GRUB 的亮色主题。比如sudo apt install grub2-themes-* sudo update-grub或者直接从 GitHub 下载 Vimix、Stylish 这类主题包解压后拷贝到 /boot/grub/themes修改 /etc/default/grub 里的 GRUB_THEME 路径再 update-grub。这样启动菜单的对比度和美观度都能提升不少。注意改完以后多留意 Windows 项是否能正常启动有时候主题自带的字体配置在中文环境下会显示方块这时候把 GRUB 字体设成 unifont 或者直接改用默认主题就行。7.3 双系统下 Windows 安全中心与 Linux 的共存问题搜索热词里还有“win10安全中心关闭”有些人在装 Linux 前会关掉安全中心里的“基于虚拟化的安全性”内核隔离理由是担心虚拟化冲突。实际上双系统是物理分区级隔离Windows 安全中心和 Linux 之间不存在互相杀毒的情况所以没必要为了装 Linux 而关闭安全中心。唯一要注意的是 BitLocker。如果 Windows 启用了 BitLocker 加密系统盘在 Linux 安装过程中如果安装程序尝试读写这个加密分区可能触发恢复密钥验证。所以在安装 Linux 前建议先在“控制面板-BitLocker 驱动器加密”里暂停或关闭对系统盘的加密保护装完双系统、确认引导稳定后再重新开启加密。这是一个容易被忽略但非常关键的细节。7.4 Windows 安装配置 IIS 和 Linux 并行不冲突有的人搜“win10安装配置iis的教程”其实是想在 Windows 跑 ASP.NET 站点、在 Linux 跑 Nginx 或 Tomcat两边同时开发。双系统安装好以后Windows 里正常装 IISLinux 里正常装 Nginx互不影响。关键只是磁盘空间规划时要给 Windows 保留足够的空间用于日志、数据库文件别为了装 Linux 把 Windows 压得太扁。如果预算允许加装一块独立 SSD 分别装系统是体验最好的方案。8. 虚拟机方案也可以作为双系统的补充双系统虽然好但有些场景还是虚拟机更方便。比如你需要在两个系统之间频繁切换、共享文件、测试固定配置时虚拟机更高效。8.1 VMware 安装 Win10 和 Linux 的简单对比有人搜“vm安装win10”“vmware安装win10”说明大家也想在 Linux 宿主里跑 Windows或者在 Windows 里跑别的系统。VMware Workstation 在 Windows 和 Linux 下都有版本创建虚拟机时选择“典型”加载 Win10 ISO 镜像过程和装物理机很像。虚拟机里装 Win10 和 Linux 的优势是快照可以随时回滚适合测试环境。给想用虚拟机方案的朋友一个尽量省配置的建议日常使用分配 2 核 CPU、4GB 内存磁盘 60GB虚拟磁盘不是真占 60GB就能比较流畅地跑 Ubuntu 桌面。Win10 虚拟机建议至少 4GB 内存否则磁盘占用和响应速度都会很难看。8.2 WSL 空间不释放问题的解决办法“wsl linux删除文件后空间没释放”是 WSL 用户的常见痛点。因为 WSL 2 使用 vhdx 虚拟磁盘删除文件后 vhdx 不会自动收缩。解决办法是在 Windows 管理员命令行执行wsl --shutdown diskpart select vdisk fileC:\Users\你的用户名\AppData\Local\Packages\CanonicalGroupLimited...\LocalState\ext4.vhdx attach vdisk readonly compact vdisk detach vdisk exit这样压缩完 vhdx 文件空间就释放了。注意操作前关闭所有 WSL 会话并且预留足够的磁盘空间因为 compact 过程中需要临时空间。8.3 双系统与虚拟机的互补策略我的实际习惯是“双系统主力 虚拟机备用”。主力机器装 Win10 和 Ubuntu 双系统Ubuntu 里跑日常开发同时配一个 VMware 虚拟机用来装些临时测试系统比如 Docker Desktop 在 Windows 侧时偶尔需要在虚拟机里跑一个 Linux 联动或者需要在两个 Linux 版本之间做兼容性测试。这样既享受了双系统的性能又保留虚拟机的灵活。对于新手我建议先装虚拟机练手虚拟机里把 Linux 玩熟了再考虑上双系统这样心态会稳很多出了问题也不会手忙脚乱。9. 关于驱动、网络和常用工具的一点心得9.1 Linux 下网卡和显卡驱动怎么装有线网卡大多数发行版开箱即用无线网卡在部分新电脑上可能没驱动。有个通用原则先按住有线网络把系统更新到最新然后到“软件和更新-附加驱动”里看看有没有品牌提供的闭源驱动。Ubuntu 里装 NVIDIA 官方驱动的命令是sudo ubuntu-drivers autoinstall装完重启执行 nvidia-smi 能看到 GPU 信息就说明驱动正常。注意 Kernel 更新后闭源驱动偶尔会和内核不匹配这时候需要重新安装驱动或者等待新版本驱动发布。如果你懒得折腾装系统时用开源驱动nouveau先顶着也能跑桌面但性能和部分 CUDA 功能受限。9.2 Linux 常用命令的日常积累装好双系统以后面对 Linux 终端很多人第一反应是记不住命令。这很正常别硬背多用几次就熟了。我建议先掌握这几组文件管理ls、cd、cp、mv、rm、find、权限管理chmod、chown、sudo、压缩解压tar、zip、unzip、软件管理apt update、apt install、dpkg -i、进程和系统资源ps、top、free、df、du、网络ifconfig 或 ip addr、ping、curl、wget。这些命令足够支撑日常使用了其他的可以边用边查。有个小技巧刚装完系统先升级软件源到国内镜像比如把 /etc/apt/sources.list 里的地址换成清华 TUNA 或者阿里云的镜像再执行 sudo apt update。这样下载速度能快一个数量级后面装什么都会顺畅很多。9.3 解压文件乱码的处理办法搜索词里有“linux 解压文件乱码”这也是很多人实际会遇到的问题。Windows 下压缩的 zip 文件默认使用 GBK/GB18030 编码Linux 下 unzip 默认按 UTF-8 解压所以中文文件名就会变成乱码。解决办法是安装 unar 工具sudo apt install unar unar 文件名.zipunar 能自动判断编码并正确解压。另一个办法是用 bsdtar命令 bsdtar -xaf 文件名.zip也能处理编码问题。从 Windows 拷贝过来的文件名乱码也可以用 convmv 批量转换编码。10. 装完系统之后我建议你第一时间做的事很多教程到“重启进入系统”就结束了但真正决定双系统体验好坏的是装完后的头半小时。我按照自己的经验把优先级排一下。第一先连网把系统更新到最新。打开“软件和更新”把下载服务器换成国内镜像然后 sudo apt update sudo apt upgrade。这一步能解决大量潜在驱动和软件源问题。第二装好常用开发工具链。如果做 Python 开发安装 build-essential、curl、git、vim然后用 pyenv 或 conda 管理 Python。如果用 ROS那就在 Ubuntu 版本匹配的情况下按官方文档安装对应版本。第三调整 GRUB 顺序和美观度。按前面说的办法把默认启动项调成你最常用的系统顺便调整分辨率和主题。第四配置双系统时间同步避免切系统时发现时间错乱。如果是 Windows 优先改注册表 RealTimeIsUniversal如果不想动 Windows就在 Linux 设置 set-local-rtc 1。第五做好备份策略。双系统的风险点不在日常使用而在于某次系统更新、分区调整或 Windows 大版本升级时可能会出现引导问题。提前把重要文件备份到网盘或者移动硬盘能让你在处理引导故障时心态稳很多。我个人在实际操作中的体会是双系统安装八成的坑都集中在“引导”和“分区”这两块。只要搞清楚了 UEFI 的启动链路理解了 EFI 分区的作用后续不管是修改启动顺序、修复 GRUB 还是卸载 Linux都是在同一个知识体系里的操作。如果你第一次安装没成功别急着下结论说是镜像问题或者电脑问题多数时候是某个 BIOS 选项或者 EFI 分区细节没弄对。最后再分享一个小技巧装好双系统以后进一次 BIOS把开机启动方式设置为“UEFI First”同时确认“启动顺序”里 GRUB 或 Ubuntu 那项排第一。这样你开机就能直接看到 GRUB 菜单想进哪个系统点哪个不用每次手动按 F12。等用了一段时间对引导逻辑熟悉了再决定要不要改成 BIOS 默认 Windows 启动、按 F12 进 Linux 的方案。双系统这件事本质上就是管理好一个启动菜单和几个分区没有想象中那么玄乎按着步骤走稳稳当当就能搞定。