
最近好几个朋友问我同一个问题工作电脑已经装了Windows能不能在不破坏现有系统的情况下装一个Ubuntu 22.04 LTS双系统我装双系统这台机器来回折腾过不下二十次从最早的MBR时代到现在的UEFI引导从机械硬盘到NVMe固态踩过的坑比很多教程里写的步骤都多。所以这篇教程我尽量把每一步背后的原因也讲清楚不只是告诉你“点哪里”还告诉你“为什么点这里”。文章以Ubuntu 22.04 LTS桌面版为例流程适用于绝大多数主流PC和笔记本。1. 装双系统之前先想清楚这三个问题1.1 双系统、虚拟机、WSL到底怎么选很多人一上来就问怎么装其实先该问的是“你真的需要双系统吗”。以我身边人的实际使用场景为例如果你的需求只是偶尔跑几条Linux命令、看看日志、或者写个简单的Shell脚本那WSL2完全够用开个窗口就能进Linux环境和Windows文件互通根本不需要重启切换。如果你的需求是体验完整桌面环境、跑机器人系统ROS、做嵌入式交叉编译、进行CUDA训练调试或者虚拟机里跑起来显卡性能损失太大那才值得上双系统。虚拟机方案的问题在于硬件直通麻烦、性能损耗明显我试过在VirtualBox里跑图形界面拖动窗口都有肉眼可见的卡顿更别说处理器的AVX指令集和一些需要直接访问硬件的场景了。我个人的判断标准很简单要么不用Linux要么就让它独占整套硬件跑主力任务。中间态的虚拟机适合学习不适合干活双系统才是“上班干活”的状态。1.2 你的电脑硬件需要达到什么水平Ubuntu 22.04 LTS对硬件的要求比我预期中低很多。官方推荐4GB内存、25GB磁盘空间实际上4GB内存只能算能开机跑个浏览器就喘了。我的经验是硬件最低要求推荐配置CPU双核x86_64四核以上内存4GB16GB或更高磁盘25GB空闲至少预留80GB显卡集成显卡即可NVIDIA独显需另装驱动这里最容易忽略的是硬盘空间。Windows下压缩卷出来的空间如果只有三五十GB装完系统装完开发工具就所剩无几而且根分区满了系统会莫名出现各种诡异问题。我自己给Ubuntu分配的是512GB的一半根分区给了120GBHome分区给了剩余部分。另外要注意一点如果你的笔记本是Intel 11代及以后的酷睿平台BIOS里普遍有VMDVolume Management Device选项默认开启会导致安装Ubuntu时完全看不到NVMe硬盘。这个问题我后面专门讲。1.3 先备份没得商量这句说了无数次的话每次都有不听的人。装双系统本质上是在同一块硬盘上动分区表虽然正常操作不会丢数据但谁也不能保证断电、误操作、引导记录写错之后还能全身而退。我见过太多人把Windows的恢复分区给删了、把EFI分区格式化了的案例。建议至少做两件事第一把Windows里重要资料拷到移动硬盘或网盘第二用Windows自带的“创建恢复驱动器”功能做一个系统修复U盘或者确认手头有Windows安装U盘。这玩意儿平时吃灰关键时刻能救命后面卸载双系统也需要它。2. 动手前的材料准备镜像、U盘和BIOS三处关键开关2.1 下载Ubuntu 22.04 LTS镜像别下成24.04也行但要看清打开Ubuntu官网的下载页面会看到最新的LTS版本。本文以22.04 LTS为例照顾的是稳定性和大量现有教程的兼容性。你可以在官网下载也可以在国内镜像站下载速度会快很多。下载完以后如果讲究一些还可以下载对应的SHA256SUMS文件在终端里校验一下镜像完整性Windows下用PowerShell执行Get-FileHash .\ubuntu-22.04.3-desktop-amd64.iso比对一下输出就行。我一般建议下载desktop-amd64版本因为带图形界面对新手友好而且就算你只用命令行也可以按CtrlAltF3进入纯终端模式造成一个鄙视链底端开局。2.2 用Rufus制作启动U盘的两个关键选项制作启动U盘我推荐Rufus便携版不用安装解压即用。插上U盘打开Rufus选择下载好的ISO镜像然后注意这几个选项分区类型选择GPT目标系统选择UEFI非CSM文件系统保持默认FAT32即可这里有个容易踩的坑如果UEFI设置里默认打开了Secure Boot有些旧版Ubuntu镜像写出来的启动盘会无法引导。22.04 LTS对Secure Boot的支持已经很成熟但为了装NVIDIA驱动省心我建议安装阶段先临时关闭Secure Boot装完以后如果不需要再开回去。如果你不想反复制作U盘也可以用Ventoy把ISO文件直接拖进U盘就能引导一个U盘同时放Windows、Ubuntu、PE工具都行调试环境非常方便。2.3 BIOS三个开关Secure Boot、CSM、Intel VMD进BIOS的方式各品牌不同常见的有F2、F10、DEL、ESC。开机时狂按对应按键就能进。进去之后按优先级处理三件事第一关闭Secure Boot。通俗理解就是Windows用密钥对启动文件做了签名校验第三方Linux引导程序有时过不了这道门。Ubuntu 22.04本身签名了能兼容但NVIDIA闭源驱动、VirtualBox内核模块这类东西在Secure Boot开启时会经常被拦。老实关掉最省事。第二确认启动模式是UEFI。新电脑默认就是UEFI但有些人之前找人装系统时被改成了Legacy传统BIOS模式。你需要在BIOS的Boot选项里找到Boot Mode或UEFI/Legacy必须选择UEFI。因为后面分区要按GPT格式来Windows的EFI分区也是UEFI方案。第三关闭Intel VMD。这个选项一般在BIOS的Advanced或Storage菜单里不同品牌叫法略有差异。如果你在Ubuntu安装界面里看不到任何硬盘十有八九是VMD开着。关掉VMD后硬盘会以AHCI模式工作Windows和Ubuntu就都能识别了。改这个选项会导致Windows提示无法引导一般不会现在Windows 10/11对AHCI和IRST驱动切换兼容得不错但保险起见还是先备份。改完这些设置按F10保存退出插入U盘准备开始安装。开机时按下启动菜单快捷键常见的有F11、F12选择从U盘启动。3. 磁盘空间分配这部分决定了你今后用系统的体验3.1 在Windows里压缩卷的正确姿势很多人不知道其实不用专门的第三方分区软件Windows自带的“磁盘管理”就能给Ubuntu腾空间。右键“此电脑”选“管理”进入“磁盘管理”找到你要压缩的Windows分区通常是C盘右键选“压缩卷”输入要压缩出的大小。这里有几个要点压缩出来的空间不要格式化、不要新建卷保持“未分配”状态安装Ubuntu时它会自己认。C盘压缩卷时如果你有大量不可移动的系统文件可能压缩不出你想要的大小这正常别强行清理。对固态硬盘来说压缩卷不会损伤硬盘放心操作。对机械硬盘强烈建议先用工具做碎片整理再压缩否则压缩过程中可能要等很久。我自己推荐至少压缩100GB出来。有人说64GB够用那是建立在完全不装大型软件、不用Docker缓存、不跑深度学习模型的前提下。Ubuntu的根目录很容易膨胀Home下堆积的模型权重、Docker镜像、conda环境随便一个都是几个GB起跳。100GB是起步线。3.2 Ubuntu分区方案手动分区的推荐布局安装到分区那一步时我强烈推荐选择Something else手动分区而不是默认的“与Windows共存”。原因很简单自动分区的方案不够灵活有时它只会分出根分区和交换分区没有独立的Home分区。而我推荐至少分成三个区分区大小文件系统挂载点说明EFI系统分区Windows原有不要动FAT32/boot/efi和Windows共用一个EFI分区根分区60-100GBext4/放系统、驱动、软件Home分区剩余全部ext4/home放你的文件、配置Swap分区8-16GBswapswap内存不足时的兜底很多人纠结要不要单独分/home。我的建议是分。因为升级系统、重装系统时只要挂载点还是/home数据就完好无损。我就是因为独立Home分区去年从20.04升级到22.04时几乎零损失配置文件全都在。Swap分区现在很多人会忽略觉得内存够大用不到。但当你编译大型项目、同时开一堆容器的时候swap就是最后的防火墙。我统一分16GB不心疼这点空间。3.3 特别注意Windows的EFI分区手动分区界面里你会看到Windows的磁盘分区列表。其中有一个100MB到500MB左右、文件系统为FAT32、且有boot和esp标记的分区就是EFI系统分区。你的任务是让它保留原样并挂载为/boot/efi绝对不能格式化它。有些教程会让你再新建一个EFI分区我强烈不建议。两个EFI分区管理起来特别混乱很容易出现开机进不了Windows或者GRUB消失的问题。共用Windows的EFI分区的兼容性是最好的GRUB会自动在里面建立一个ubuntu目录和Windows的启动文件共存。4. 正式安装Ubuntu 22.04的完整流程4.1 从U盘启动进入Live环境从U盘启动后你会看到一个紫色的GRUB菜单也有些版本是黑色底选择第一项Try or Install Ubuntu。等一会儿会进入Live桌面环境。什么是Live环境就是不需要安装就能临时运行的Ubuntu桌面。在Live环境里建议先双击桌面上的Install Ubuntu图标。如果你的电脑连了网线安装器会自动检测网络。我个人建议不勾选“安装过程中下载更新”因为这一步受网速影响很大更新可以等进系统之后再慢慢换源下载。但一定要勾选“安装第三方软件”特别是NVIDIA和WiFi驱动否则装完很可能面临没有无线网卡驱动的尴尬。4.2 语言、键盘和安装类型安装向导会依次问你语言选择中文简体后续系统菜单就是中文的。键盘布局默认English (US)即可对中文用户来说拼音输入法跟布局没关系后面单独设置。网络建议连接但别急着更新。安装类型这里就是重点选Something else有时翻译为“其他选项”或“手动安装”。点完继续之后就是分区界面。界面上方是磁盘信息下方是分区表和、-、Change按钮。你挑选之前压缩出的“空闲空间”free space点击开始创建分区。创建顺序很有讲究我给一个不会出错的顺序模板先创建根分区/大小填60000即60GB类型选择主分区位置选择“起始”文件系统选ext4挂载点选/。再创建Home分区/home大小填剩余空间减swap比如你总共压缩了100GB去掉根60GB还剩40GB那先留16GB给swapHome就填24000左右文件系统ext4挂载点/home。最后创建Swap分区大小填16000类型“逻辑分区”文件系统选swap area交换空间。创建完成后还要检查两个位置。第一找到Windows的EFI分区注意看flag为boot, esp的那个FAT32分区更改它时选择“用作EFI系统分区”挂载点/boot/efi状态保持“不要格式化”。第二在窗口底部的“安装启动引导器的设备”下拉框里选择你的整块硬盘例如/dev/nvme0n1不是具体分区p1、p2让GRUB自己去找EFI目录。这一串做完点Install Now。安装器会弹出一个确认框列出将要执行的分区操作。重点看有没有格式化Windows分区有没有删除不该删的分区。确认无误点“继续”输入你所在的城市之后就是设置用户名、计算机名和密码。接下来就是等待拷贝文件几分钟到十几分钟不等取决于U盘速度和硬盘速度。完成后会提示“安装完成请重启计算机”拔掉U盘按回车重启。4.3 重启后的第一幕GRUB菜单如果一切顺利重启后你会看到一个深色背景的启动菜单里面有几项UbuntuAdvanced options for UbuntuWindows Boot Manager就是Windows入口用上下方向键可以切换默认会等10秒自动进入Ubuntu。这一步看到Windows Boot Manager说明双系统的引导已经建立成功。如果你重启后直接进了Windows而没看到GRUB菜单也别慌先按F12或Esc进入启动菜单选择名为ubuntu的启动项。有这个选项就说明GRUB写进EFI分区了只是启动顺序还没调整后面统一处理。5. 装完系统后这三件事必须立刻做5.1 调整GRUB启动顺序别每次都盯10秒倒计时刚装好的默认GRUB配置里第一项是Ubuntu倒计时10秒。如果你希望开机默认进Windows或者等30秒再自动启动都可以通过修改/etc/default/grub实现。打开终端执行sudo nano /etc/default/grub找到GRUB_DEFAULT0这一行0表示默认选择列表第一项即Ubuntu。如果想默认Windows启动改成对应菜单项的序号或标题。可以先用这个命令查看当前所有菜单项grep menuentry /boot/grub/grub.cfg把GRUB_DEFAULT改成Windows Boot Manager的标题字符串也行不过我更推荐用数字序号简单直接。改完保存退出执行sudo update-grub让修改生效。如果你想彻底让Ubuntu为第一且Windows第二那就保持默认0不用改只调整倒计时GRUB_TIMEOUT5顺便说一句有时候开机第一个出现的不一定是GRUB而是一个叫“Boot Menu”的UEFI列表里面能看到一长串设备。这种情况说明你的主板把Windows Boot Manager排在了ubuntu前面。进BIOS在“启动顺序”里把ubuntu或者叫Kubuntu、GRUB排到第一位即可。5.2 解决NVIDIA显卡驱动装完桌面粉屏的最大元凶如果你装Ubuntu的电脑有NVIDIA独显第一次进系统大概率能进但桌面可能很卡、窗口撕裂、分辨率和刷新率不对。这是因为系统默认用的是开源驱动nouveau性能只有闭源驱动的两成左右。我这里推荐用一个比较省心的方式打开“软件与更新”应用切到“附加驱动”选项卡。它会自动检测显卡并列出可用的驱动版本选择一个标注有推荐或已测试的版本点“应用更改”等它装完重启即可。如果图形界面这一步没有显示任何NVIDIA驱动说明没检测到独显也可以在终端里直接跑sudo ubuntu-drivers autoinstall它会帮你安装系统推荐的驱动。装完重启再用nvidia-smi确认驱动是否正常加载。如果这个命令输出了GPU信息表说明NVIDIA驱动装成功了。注意NVIDIA双显卡笔记本Optimus技术还会有额外问题Ubuntu默认用核显输出独显只做计算。想要切换成独显运行可以安装nvidia-prime然后在“NVIDIA X Server Settings”里切换但这里不展开怕讲太多跑题。5.3 中文环境、字体和输入法虽然安装时选了中文但默认的输入法框架不是每个人都喜欢。Ubuntu 22.04自带GNOME桌面默认输入法框架是IBus但你直接按CtrlSpace可能发现打不了中文。原因是没有安装中文输入法引擎。我推荐使用Fcitx 5配置简单、词库好用。在终端执行sudo apt update sudo apt install fcitx5 fcitx5-chinese-addons然后执行im-config -n fcitx5重启或注销后在屏幕右上角会出现输入法托盘图标按CtrlSpace切换中英文。顺手装一下中文字体避免网页和文档里出现方块字sudo apt install fonts-noto-cjk5.4 换源不然装软件龟速Ubuntu官方源在国外的下载速度很多网络环境下都不太理想。我一般第一时间换成国内镜像源。最简单的操作是在“软件和更新”应用里把“下载自”从“服务器 - 官方”切换成“其他站点”在列表里选择阿里云镜像或者清华大学的TUNA镜像点“选择服务器”等待刷新即可。命令行党也可以用sed直接改sources.list比如换成清华源sudo sed -i s/archive.ubuntu.com/mirrors.tuna.tsinghua.edu.cn/g /etc/apt/sources.list sudo sed -i s/security.ubuntu.com/mirrors.tuna.tsinghua.edu.cn/g /etc/apt/sources.list sudo apt update注意Ubuntu 22.04的源地址是archive.ubuntu.com和security.ubuntu.com。换完源之后再装任何软件速度都大不一样。6. 双系统日常使用最容易遇到的几个坑6.1 Windows时间慢了8小时这是双系统最常见的坑。Windows和Linux对硬件时钟的理解不一致Linux默认把硬件时钟当作UTC而Windows当作本地时间。结果就是你在Ubuntu改完时间进Windows一看慢了8小时反之亦然。修复方法在Ubuntu终端执行一行命令让Linux也把硬件时钟当本地时间timedatectl set-local-rtc 1 --adjust-system-clock执行完再进Windows时间就正常了。这是最简单的方案我每次装完都会立刻执行。6.2 突然只能进Ubuntu看不到Windows了这种情况多数发生在你把 /boot 单独分了一个区、或者手动分区时误把Windows的EFI分区搞没了。解决方法确认Windows分区还在只是启动项丢失。在Ubuntu终端执行sudo update-grubGRUB会自动扫描所有硬盘上的系统重新生成启动菜单。如果还是看不到Windows检查EFI分区下的EFI/Microsoft目录是否存在ls /boot/efi/EFI/如果里面有Microsoft文件夹说明Windows的EFI文件还在如果没有就得用Windows安装U盘进入命令提示符修复引导。具体修复指令我放到卸载章节里说因为它们共用一套思路。6.3 Ubuntu无法访问Windows的NTFS分区新系统装完打开文件管理器侧边栏应该能看到Windows的C盘、D盘点一下就能自动挂载、读写文件。但如果发现分区列表里一片空白或者双击看不到先安装ntfs-3g补齐驱动sudo apt install ntfs-3g还有一种情况Windows开启了快速启动会导致NTFS分区处于“休眠”状态Ubuntu只能只读挂载无法写入。这种状态最适合的解决方案是把Windows快速启动关掉。“快速启动”选项在控制面板 - 电源选项 - 选择电源按钮的功能里勾选项取消即可。顺便说一句很多双系统下Ubuntu无法写入NTFS的案例罪魁祸首就是Windows快速启动导致的文件系统未完全卸载。6.4 在Windows里误删了Linux分区或者引导操作不当会导致开机直接黑屏就一行error: no such partition。这个问题我在卸载章节里讲先给一颗定心丸只要EFI分区还在用Windows安装U盘或者Ubuntu Live U盘引导都能修回来不至于重装整个Windows。7. 反悔了怎么办安全移除Ubuntu恢复纯Windows7.1 先从Linux里拷出数据这个步骤看似废话但真有人忘了。卸载双系统会删除所有Linux分区包括/home里的东西——文档、代码、模型、浏览器配置全没。务必在操作前用U盘把需要保留的文件拷出去。7.2 删除Linux分区进入Windows右键“此电脑”选“管理”进入“磁盘管理”。你会看到几个没有盘符、类型为“未知”或“主分区”的ext4分区这些就是Linux的根分区、Home分区和Swap分区。记住只删除你确认属于Linux的分区。怎么确认看大小和位置和当初分区时填的大小对得上。删错Windows分区会很难受。右键这些分区选“删除卷”。删的时候会反复警告看清楚再确认。如果Windows磁盘管理里遇到无法删除的分区也可以用DiskGenius之类的工具来做注意不要顺手把EFI分区也删了。7.3 修复Windows引导删完分区后此时重启电脑很可能进不了Windows因为GRUB被移除但Windows的UEFI引导记录也没了。拿出Windows安装U盘或恢复U盘启动到安装界面点击“修复计算机”进入“疑难解答”-“高级选项”-“命令提示符”。这里按顺序执行几个命令修复引导bootrec /fixmbr bootrec /fixboot bootrec /rebuildbcd如果提示找不到设备或者/fixboot拒绝访问再执行一步给EFI分区分配盘符diskpart list disk select disk 0 list partition找到EFI分区通常是FAT32格式、大小几百MB的那个选中它select partition 1 assign letterS exit然后重建引导文件bcdboot C:\Windows /s S: /f UEFI执行完再从磁盘管理器或diskpart里把S盘符移除diskpart select volumeS remove letterS exit重启后应该就能看到Windows的转圈图标了。这套操作也是修复“Windows无法启动”的通用方案。熟悉这个流程后你会发现电脑维护的底气完全不同。我在实际维护双系统的这些年最大的体会是安装Ubuntu本身通常二十分钟就能走完真正需要花时间的反而是理解引导机制、分区规划、驱动处理这些容易被教程一笔带过的细节。遇到开机异常别急着怀疑系统坏了先用U盘启动进到命令行环境把硬盘、分区、EFI文件挨个查一遍大多问题都能定位出来。双系统安装作为进入Linux世界的第一个里程碑值得多花点耐心把它搞扎实。