首页 / 资讯中心 / 文章详情

Windows 10下安装Ubuntu 22.04双系统及Nvidia驱动完整指南

Windows 10下安装Ubuntu 22.04双系统及Nvidia驱动完整指南 ★ FEATURED ARTICLE
说实话装双系统这事儿我前前后后折腾了快十年从最早的Windows XP搭配Ubuntu 9.04一路装到现在的Windows 10 Ubuntu 22.04中间踩过的坑、重装过的系统、翻车翻到怀疑人生的时候多到能单独写一本书。但你要问我现在还推不推荐双系统答案依然是推荐——日常办公、看视频、用网银留在Windows写代码、跑模型、折腾服务切到Linux这种一台机器当两台用的体验是虚拟机给不了的也比WSL更接近真实生产环境。这篇我把Windows 10下安装Ubuntu 22.04的全过程连同装完系统后最让人头疼的Nvidia显卡驱动安装一起完整梳理出来。内容适合两类人一是刚接触Linux、想通过双系统入门的新手二是之前装过但被启动引导、显卡驱动劝退的老手。我会尽量把每一步为什么要这么做讲透而不是直接甩给你一堆命令让你照抄。1. 双系统这趟车到底值不值得上先说句大实话双系统不是所有场景的最优解。如果你只是偶尔需要用一下Linux命令行WSL2完全够用省事得多如果你需要在Windows和Linux之间频繁切来切去那虚拟机VMware或VirtualBox体验更好。但如果你要做这几件事双系统几乎是绕不开的选择跑深度学习训练需要完整调用GPU算力并且长期占用显存做嵌入式开发、ROS机器人开发需要访问底层硬件设备虚拟机透传麻烦还容易出兼容问题编译大型项目比如Android源码、Linux内核虚拟机磁盘IO性能损失太明显想从Windows彻底迁移到Linux但一时半会儿离不开某些Windows-only软件需要一个过渡期。我个人的使用场景是后面两种混合平时写Python、部署Docker服务都在Ubuntu里干需要打开Office、用网银、跑某些只有Windows版的专业软件时再重启进Windows。虽然切换需要重启一次机器大概一分钟左右但换来的是两个系统都跑在裸机上性能几乎无损磁盘IO完全原生这是任何虚拟化方案都没法比的。不过双系统的代价也很明确磁盘空间至少多占100GB如果你要跑数据集或者装ROS这类大件建议留出200GB以上两个系统的引导管理一旦出问题需要你会修Windows大版本更新比如从Windows 10升级到11有时会覆盖引导需要重新修复。这些都是真实的成本动手之前要有心理准备。2. 装系统前的准备工作准备工作做得好不好直接决定你后面是顺风顺水还是连环翻车。我见过太多人上来就做启动盘、直接开装结果不是分区搞错把Windows文件弄丢就是装完开机直接黑屏。下面这几件事请务必按顺序做一遍。2.1 确认电脑是UEFI还是Legacy BIOS这一步最关键因为它决定了你后面所有操作的方式。2015年以后出厂的电脑绝大多数都是UEFI引导配合GPT分区表再老一点的机器可能是传统的Legacy BIOS配合MBR分区表。怎么查Windows下按Win R输入msinfo32回车在系统摘要里找BIOS模式这一项。看到UEFI说明你的系统是UEFI引导看到传统或Legacy就是老的BIOS方式。为什么要在意这个因为Ubuntu的安装程序会自动检测你当前Windows的引导模式并用同样的方式安装。如果你的Windows是UEFI引导Ubuntu也会以UEFI模式安装两者共用同一个EFI分区如果是Legacy模式Ubuntu会用MBR方式安装。如果搞混了最典型的症状是装完Ubuntu后开机直接进Windows而看不到引导菜单或者反过来。我个人强烈建议如果你的电脑支持UEFI就用UEFI GPT的组合这是目前最规范的方式也是下面所有内容默认采用的前提。2.2 备份数据、关闭几个坑爹设置不要嫌我啰嗦备份这一步真的不能省。虽然正常流程下给Ubuntu分配磁盘空间是无损操作但无损不代表绝对安全分区表操作万一断电或者出现意外数据说没就没。至少把重要的个人文件、文档、照片备份到一个移动硬盘或者网盘上这是底线。接下来关闭三个设置都是血泪教训Windows快速启动控制面板 → 电源选项 → 选择电源按钮的功能 → 更改当前不可用的设置 → 取消勾选启用快速启动。这个功能本质是让Windows关机时进入休眠状态而不是彻底关机会让Linux无法正常挂载NTFS分区装完双系统后还可能导致Linux下Windows分区变成只读甚至出现文件系统损坏。BitLocker如果你开了设备加密或者BitLocker先在设置 → 更新和安全 → 设备加密里关掉。如果不关Ubuntu安装时识别不到Windows的存在不说后期你在Linux下访问Windows分区还会被加密锁死。BIOS里的Secure Boot这个看情况。Ubuntu 22.04本身支持Secure Boot但为了减少变量尤其是后面装Nvidia驱动时签名问题我通常建议先在BIOS里把Secure Boot关闭。如果你不想关后面装驱动时会遇到MOK签名流程比较麻烦新手建议直接关。2.3 磁盘分区规划给Ubuntu腾出空间假设你的Windows在C盘安装Ubuntu之前需要先从磁盘上切出一块空白空间。右键此电脑 → 管理 → 磁盘管理找到你要压缩的分区通常是C盘右键 → 压缩卷输入要压缩的空间大小。这里有个重要的计算逻辑你输入的是MB单位1GB 1024MB。比如你想给Ubuntu留200GB就输入204800MB。压缩完成后你会看到磁盘里出现一块未分配空间这就是给Ubuntu的。不用担心压缩分区会损坏现有数据Windows的压缩卷功能只会在分区尾部腾出连续空间不会移动或者删除已有文件。关于大小建议日常开发使用至少100GB跑深度学习或者需要装ROS、Android Studio这类大软件建议200GB起步。我个人目前是给Ubuntu分了256GB其中根分区100GB、home分区144GB、swap 12GB用了一年多还剩不少余量。如果这是你第一次接触Linux不确定以后会用多少那宁可多分一点因为后期再调整分区大小比在Windows下麻烦得多需要用到GParted之类的工具操作起来有风险。2.4 制作Ubuntu 22.04启动U盘先去Ubuntu官网下载22.04 LTS的桌面版ISO镜像。LTS的意思是Long Term Support长期支持版本Ubuntu 22.04的支持周期会持续到2027年适合作为主力系统使用。然后准备一个至少8GB的U盘建议16GB以上用Rufus制作启动盘。Rufus是Windows下的神器操作很简单设备选择U盘引导类型选择你下载的ISO镜像分区类型要和你系统对应——UEFI模式就选GPTLegacy模式就选MBR文件系统保持默认FAT32即可然后点开始。制作完成后U盘会被重新分区和格式化原本的数据会全部清空别用有重要数据的U盘。注意Rufus制作的启动盘只能用一次也好、多次也好做好之后先别拔。在正式安装之前我建议你先用这个U盘试启动一次Ubuntu的Live环境下文会讲确认硬件兼容性没问题再继续这样可以避免装到一半才发现问题。3. Ubuntu 22.04安装全程实操准备工作做完接下来就是正式的安装流程。这个章节我会按实际操作的顺序一步步来每一步会告诉你现在屏幕上应该看到什么以及如果没看到怎么办。3.1 从U盘启动并进入安装界面关机状态下插入U盘开机时猛按启动菜单键。不同品牌快捷键不一样戴尔、联想是F12华硕是F8或Esc惠普是F9微星是F11。如果按键没反应进BIOS里把U盘调到第一启动项也行。启动后会看到GRUB菜单选第一项Try or Install Ubuntu。这里建议先选Try Ubuntu进入Live桌面而不是直接点安装。为什么因为Live环境就是一次完整的Ubuntu试用可以提前检查Wi-Fi、触控板、显卡等硬件是否正常工作。确认一切正常再双击桌面上的Install Ubuntu开始安装。3.2 安装类型选择一定要选手动分区安装过程前面几步很简单选语言、选键盘布局、选网络、选安装时更新。到了安装类型这一步千万不要图省事选清除整个磁盘并安装Ubuntu——那是单系统安装的选项会让你整个硬盘数据清零。这里要选Something else其他选项进入手动分区界面。到这里你会看到磁盘的所有分区列表。先别慌认准几个基本概念EFI系统分区ESP分区通常在Windows安装时自动创建大小100MB~500MB不等文件系统是FAT32挂载点应该显示为/boot/efi。这个是两个系统共用的一定不要格式化否则Windows会直接启动不了。Windows自己的分区NTFS格式这些分区显示为/dev/nvme0n1p1、/dev/nvme0n1p3之类的一定不要动它们。之前压缩出来的空闲空间这才是你的目标。选中空闲空间点击加号逐个创建分区。我的推荐方案是三个分区分区大小类型文件系统挂载点交换分区等于或略大于内存如16GB内存就分16GB主分区swap不填根分区50~100GB逻辑分区ext4/home分区剩余全部逻辑分区ext4/home分区创建完成后最关键的一步是界面底部安装启动引导器的设备Device for boot loader installation。UEFI模式下这里应该选到整个磁盘比如/dev/nvme0n1而不是选某个分区。它会在磁盘的EFI分区里写入GRUB引导文件和Windows共存。3.3 安装过程与首次重启接下来就是正常的安装流程选时区、设置用户名和密码。装完之后会提示重启拔掉U盘点现在重启。重启后会看到GRUB引导菜单列出两个系统Ubuntu和Windows Boot Manager如果没看到Windows别急先看看是不是Secure Boot没关或者看第4章的引导修复方法。默认会进入Ubuntu也可以手动选择进入Windows。两个系统都能正常进去恭喜你双系统已经成了。但我必须先说这只是第一步后面还有一堆细节要处理。比如时间不统一、默认启动项、Nvidia驱动没装上导致屏幕分辨率不对、风扇狂转等等下面逐一解决。4. 双系统引导开机进哪个系统谁说了算早在第3章我们提到GRUB这里把它单独拎出来讲一下原理因为后面的引导修复、默认系统设置、以及为什么Windows更新后引导会丢都跟它有关系。4.1 GRUB引导机制现在的电脑启动流程大概是这样按下电源键 → BIOS/UEFI初始化硬件 → 读取EFI分区里的引导程序 → 引导程序加载操作系统。装双系统时Ubuntu安装器会往EFI分区里写入GRUBGRand Unified Bootloader并让GRUB成为默认引导程序。GRUB启动后会读取自己的配置文件通过os-prober工具检测硬盘里还装了哪些其他系统然后把检测结果做成一个菜单——这就是你开机看到的那个黑底或蓝底的系统选择列表。知道这个原理之后很多问题就有了答案为什么Windows更新后会直接进Windows不进GRUB因为Windows更新时可能把UEFI的引导顺序改回了Windows Boot Manager绕过了GRUB。为什么你有时候看不到Windows选项因为GRUB的os-prober可能没检测到或者配置文件里关闭了os-prober。这些都可以通过手动修复来搞定。4.2 设置默认启动系统和等待时间装好双系统后第一件事我建议把默认启动项改成Windows或者Ubuntu看你的使用习惯。方法很简单在Ubuntu终端里编辑GRUB配置文件sudo nano /etc/default/grub里面有这样几行GRUB_DEFAULT0 GRUB_TIMEOUT10GRUB_DEFAULT0表示默认启动第一个菜单项通常是Ubuntu。如果你想默认启动Windows最稳妥的方式是把GRUB_DEFAULT改成saved然后在文件末尾加一行GRUB_SAVEDEFAULTtrue保存后执行sudo update-grub再找到一份示例配置验证。其实还有个更简单的思路改完后重启到GRUB菜单手动选中Windows那一项回车进入Windows然后从Windows重启回Ubuntu这样GRUB就会记住上次选择的是Windows下次启动默认进Windows。我个人一直用saved方式灵活不用反复改配置。GRUB_TIMEOUT10是菜单等待时间单位是秒觉得10秒太长可以改短一点比如3秒减少每次开机等待。改完配置记得一定要执行sudo update-grub这个命令会把配置修改应用到/boot/grub/grub.cfg不执行的话改了等于白改。4.3 引导丢了怎么修复先讲最坏的情况Windows更新之后开机直接进WindowsGRUB菜单不见了。这其实是最好修的一种——不用重装Ubuntu进BIOS的启动项管理里把Ubuntu或GRUB的启动项手动调到第一位就行。每个品牌BIOS界面不一样但逻辑都一样找Boot Order或Boot Priority把带Ubuntu字样的选项移到最前面。保存重启GRUB菜单就回来了。如果BIOS里根本找不到Ubuntu这个启动项事情就复杂一点。这个时候需要用Ubuntu启动U盘进入Live环境在终端执行sudo add-apt-repository ppa:yannubuntu/boot-repair sudo apt update sudo apt install boot-repair boot-repairBoot-Repair是图形化工具界面有中英文选项点Recommended repair推荐修复就行。它会自动检测EFI分区、重新安装GRUB、修复引导。整个过程大概几分钟跑完会生成一个网址格式的报告如果后续你到论坛求助需要带上这个报告。还有一种是反过来的情况GRUB菜单还在但选Windows进不去了提示找不到Windows Boot Manager。这通常是Windows的EFI引导文件损坏可以用Windows安装U盘修复插上Windows安装盘从U盘启动进入修复计算机 → 疑难解答 → 高级选项 → 命令提示符执行bootrec /fixmbr bootrec /fixboot bootrec /scanos bootrec /rebuildbcd这套组合拳能重建Windows引导操作完回BIOS把启动顺序调整一下就行。5. Nvidia显卡驱动安装从黑屏到正常渲染装完Ubuntu你会发现一个很尴尬的现象屏幕分辨率不对、窗口撕裂、拖拽卡顿。别急着怪Ubuntu这大概率是显卡驱动没装好。Ubuntu默认用的是开源的nouveau驱动对Nvidia显卡支持很差性能只有闭源驱动的零头还经常出问题。这一章就是整个安装过程的重头戏Nvidia驱动的坑我前前后后踩了不下五遍把从检测到安装再到问题排查的路径完整写出来。5.1 先搞清楚自己的显卡型号和推荐驱动打开终端执行lspci | grep -i nvidia你会看到类似NVIDIA Corporation GA106 [GeForce RTX 3060 Lite Hash Rate]的输出。如果什么都没显示先确认你的显卡确实是Nvidia的A卡AMD和Intel核显用的是另一套驱动方案。然后查看官方仓库推荐的驱动版本ubuntu-drivers devices输出里会列出你的显卡、当前可用的驱动版本以及系统推荐的版本后面标有recommended字样。注意Ubuntu 22.04的软件源里带的Nvidia驱动是经过测试的版本号看起来可能不是最新的比如530、535分支但这恰恰是稳定性的保障。我强烈建议安装推荐版本而不是去官网下最新的. run安装包原因后面会细说。5.2 三种安装方式对比哪种适合你Nvidia驱动在Ubuntu上的安装方式主流的有三条路各有优劣安装方式优点缺点适合人群apt软件源安装稳定、可自动更新、卸载干净版本可能不是最新绝大多数普通用户Ubuntu专有驱动PPA版本更新快偶尔有依赖问题需要新特性、玩游戏的人官网.run安装版本最新、可定制参数内核更新后容易失效、卸载麻烦有经验的老手我个人的建议非常明确第一次装直接用apt源安装。新版驱动和旧版驱动在你日常使用中的区别微乎其微但apt方式的安全性、可维护性高一大截——你可以随时用sudo apt autoremove把驱动卸干净重装而.run方式一旦安装记录损坏清理起来简直是噩梦。5.3 实操步骤从禁用nouveau到nvidia-smi第一步先禁用系统默认的nouveau开源驱动。编辑黑名单文件sudo nano /etc/modprobe.d/blacklist-nouveau.conf写入两行blacklist nouveau options nouveau modeset0保存退出然后更新initramfs让系统下次启动不再加载nouveausudo update-initramfs -u这时候我建议你先别急着装驱动先重启一次系统确认重启后系统能正常进桌面理论上会用内置的VESA兼容驱动显示分辨率可能低一点但不会黑屏。确认没问题了再进行下一步。第二步用官方推荐方式安装驱动。两条命令选一条就行# 自动安装推荐版本 sudo ubuntu-drivers autoinstall # 或者手动指定版本号安装 sudo apt install nvidia-driver-535安装过程会下载几百MB的包耗时取决于你的网速。装完之后不要立刻重启先把Secure Boot的事情处理了——如果你在BIOS里没关Secure Boot安装驱动时会弹出蓝色界面的MOKMachine Owner Key设置流程让你设置一个密码然后重启时验证签名。这个流程有点绕新手容易卡住所以再次建议装系统前就把Secure Boot关掉省得这里多一道手续。确认一切就绪再重启。进系统后运行nvidia-smi如果看到了类似下面的表格显示显卡型号、驱动版本、显存占用、当前进程说明驱动装成功了----------------------------------------------------------------------------- | NVIDIA-SMI 535.86.05 Driver Version: 535.86.05 CUDA Version: 12.2 | |---------------------------------------------------------------------------驱动装好之后桌面流畅度会有质的变化分辨率也能设置到显示器物理分辨率了。如果你后续要跑CUDA、PyTorch这些深度学习框架这个驱动就是地基地基稳了上层才能稳。5.4 一个更省心的选择先用WSL2缓解显卡需求这里说句题外话。如果你是深度学习用户但暂时还不想完全切换到Linux其实Windows WSL2 Ubuntu 22.04的组合也能跑Nvidia GPU推理和训练。WSL2里配置CUDA非常省心Windows下装好Nvidia驱动Windows版WSL2里装个CUDA Toolkit就能直接调用GPU不用管什么nouveau、Secure Boot、内核模块签名。但WSL2的短板也很明显GPU显存利用率、CUDA社区工具链的完整度、以及某些硬件相关的底层操作比如DMA、定制内核模块还是比不上原生Linux。所以我的路线是日常实验用WSL2正式训练和大型项目切到原生Ubuntu双系统。两条路并行互相补充玩起来最舒服。6. 常见问题与排查实录这一章是全文含金量最高的部分。下面这些问题每一个都是我在不同机器上真实遇到过的有些甚至踩了不止一次。我把典型的症状、原因和解决办法整理成速查表方便你遇到时快速定位。症状常见原因解决办法装Ubuntu时黑屏显卡驱动没加载在GRUB光标处按e在quiet splash后加nomodeset按F10启动装完系统进不去桌面nouveau驱动冲突用nomodeset进系统然后禁用nouveau装Nvidia驱动开机只有GRUB没有Windowsos-prober未检测到或被禁用编辑/etc/default/grub确保没有GRUB_DISABLE_OS_PROBERtrue然后sudo update-grub显卡驱动装了但nvidia-smi报错内核模块未加载重启系统或者sudo modprobe nvidia手动加载驱动升级后登录界面循环驱动模块和内核版本不匹配在GRUB进恢复模式卸载已装驱动重新装Linux时间比Windows快8小时两个系统对硬件时间的解释不同Ubuntu里执行sudo timedatectl set-local-rtc 1 --adjust-system-clock打游戏/跑训练时风扇狂转驱动电源管理默认策略保守用nvidia-smi -pm 1开启持久模式或用nvidia-settings调整功耗设置下面挑几个最典型的展开讲。6.1 安装时黑屏/acpi报错安装Ubuntu时卡在Ubuntu logo或者直接黑屏这是新手最容易遇到的第一道坎。绝大多数情况是显卡驱动的问题——安装程序自带的默认驱动对Nvidia显卡兼容性不够。解决办法在GRUB菜单选中Try or Install Ubuntu后按e键进入编辑模式找到以linux开头的那一行在quiet splash后面加上nomodeset参数这个参数的意思是告诉内核不要启用显卡模式设置先用兼容模式显示然后按F10或CtrlX启动。应该就能进安装界面了。注意nomodeset只是权宜之计。系统装完之后如果你直接重启可能又会黑屏。所以装完系统第一次进系统时同样需要在GRUB菜单里加nomodeset参数进桌面后立刻按第5章的步骤装好Nvidia驱动再把GRUB里的nomodeset删掉恢复正常启动。6.2 登录循环和恢复模式另一个高频问题是驱动装完了重启时卡在登录界面输入正确密码后闪回登录界面永远进不了桌面。这是典型的Nvidia驱动加载失败症状。解决办法是进入恢复模式重启电脑在GRUB菜单中选择Advanced options for Ubuntu → 进入带(recovery mode)字样的内核 → 选择root进入root shell。然后在命令行里卸载掉当前驱动apt purge *nvidia* apt autoremove reboot重启后回到桌面此时可能用的是nouveau驱动屏幕可能比较卡再按第5章的流程重新安装一次驱动。我遇到过几次登录循环最后原因都是驱动版本和内核版本不匹配换成ubuntu-drivers autoinstall安装的推荐版本之后就再没出现过。6.3 时间不对Linux和Windows互相覆盖这个事儿不影响系统运行但很影响心情。你会发现用Windows一段时间再进Ubuntu时间快了8小时反过来再回Windows时间又不准了。原因一句话讲清楚Windows默认把主板硬件时钟当成本地时间而Linux默认把硬件时钟当成UTC时间两者相差一个时区也就是8小时。解决办法是在Ubuntu里执行一下这个命令让Linux也用本地时间解释硬件时钟两边就统一了sudo timedatectl set-local-rtc 1 --adjust-system-clock执行完重启时间就正常了。这个命令对日常使用没有副作用推荐所有双系统用户都执行一下。6.4 关于Ubuntu的卸载不建议新手碰最后一个话题给那些装了之后想反悔的人。卸掉Ubuntu恢复Windows独占逻辑上就一句话把Ubuntu的分区删掉再把GRUB引导换成Windows引导。但实操比较危险步骤如下进入Windows系统磁盘管理里找到Linux的几个分区ext4格式的显示为RAW或未识别没有盘符右键删除卷用Windows安装U盘修复Windows引导bootrec /fixmbr等见4.3节。以上操作风险极高任何一步失误都可能让Windows都无法启动。我碰到过太多因为删错分区把整个磁盘搞崩的案例了所以如果你对分区和引导不够熟悉宁可留着Ubuntu不用也别贸然删除。真要删先花30分钟备份重要数据再动手。7. 最后再分享一套我的装完必做清单如果前面这些你都走过一遍了我再送你一套自己每次装完双系统之后必做的收尾清单照着做一遍能省掉后面很多零零碎碎的小麻烦。首先是换软件源。Ubuntu默认的软件源在国外国内网络环境下apt update慢得让人抓狂。在软件和更新里把下载源改到国内镜像站清华、阿里、中科大任选一个再跑一下sudo apt update sudo apt upgrade把系统更新到最新能避免很多因为软件包版本过旧导致的兼容问题。其次是装基础工具链。如果你打算用Ubuntu做开发下面几条命令是我每次必跑的sudo apt install build-essential git curl wget htop sudo apt install python3-pipbuild-essential包含gcc、g、make等编译工具几乎所有源码编译的场景都用得上先装好可以避免后面用到的时候才发现装不上。另外建议装一下gnome-tweaksGNOME桌面优化工具字体缩放、开机启动项管理都很方便。最后是测试一次双系统切换的完整链路。从Windows重启进Ubuntu再从Ubuntu重启回Windows确保Wi-Fi、蓝牙、声音、亮度调节在两边都正常。如果哪边有硬件驱动问题趁早解决比用一段时间后再出问题强。我在实际使用中发现很多人装完双系统后最大的痛点不是系统本身而是不知道该怎么和这两个系统长期相处——比如默认启动项、文件共享、时间同步这些小细节没处理好每天都在磕磕绊绊地用。把这篇文章从头到尾走一遍这些小坑基本都能提前避开。以后遇到新问题记住先搜日志dmesg、journalctl等再动手改配置比盲目重装系统高效得多。
阅读完成 · 觉得有帮助?
咨询建站