ARTICLE DETAIL

资讯详情

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

Windows与Ubuntu双系统安装全指南:分区、引导修复与优化

Windows与Ubuntu双系统安装全指南:分区、引导修复与优化 开工之前先说一下大实话我一直觉得双系统装出问题八成不是操作有多难而是没想清楚自己要什么、也没搞明白自己手里这台电脑是什么情况就直接开干。我一个好朋友去年照着网上一键教程折腾了一晚上结果开机只见grub救援命令行Windows引导也丢了第二天差点请假修电脑。所以这篇教程我不光把安装步骤拆给你看更要把最容易翻车的几个决策点讲透——比如到底该不该装双系统、分区怎么分才不后悔、装完启动顺序去哪改、Windows和Ubuntu时间对不上怎么解决等等。这篇内容适合所有想在Windows之外踏实跑一套完整Linux环境的人。不管是做ROS机器人开发、跑深度学习训练、学系统运维还是单纯受够了Windows的更新弹窗只要你想“留着Windows再装一整套Ubuntu”这篇教程就能帮你从零走到能正常用连安装后的优化排错也一起覆盖。1. 先别急着装双系统、虚拟机、WSL该怎么选网上帖子一搜全是“无脑装双系统”但作为过来人我得劝你一句装双系统前先冷静判断一下自己的真实使用场景。因为双系统不是“装上就能提升效率”它是有代价的——两个系统共用一台物理机切换要重启引导如果被覆盖需要自己会修Linux分区没规划好后期扩容很麻烦。这些都不是吓唬人都是我在真机上踩过的坑。1.1 三分钟看懂三种方案的实际差别我把双系统、虚拟机、WSL放到一起对比一下你就清楚各自适合什么场景了。方案性能损耗硬件直通适合人群主要劣势双系统几乎为零完整可用开发、科研、跑模型的用户切换需重启引导可能被覆盖虚拟机VirtualBox / VMware10%30%GPU、USB直通受限尝鲜、学习、轻度使用性能打折不适合重负载WSL2极低磁盘IO略慢GPU可配置但折腾主要写代码、用命令行无法直接管理物理硬件内核受限你可能会问那用WSL不就行了记着一点如果你只是写写Python、用用Git、跑跑Docker容器WSL2完全够用没必要双系统。但如果你要刷机、调串口、做嵌入式交叉编译、跑ROS、搞内核调试、或者要完整用GPU做深度学习训练那你需要一个“完全属于Linux”的环境——这时候WSL会各种束手束脚虚拟机又有性能损耗双系统成了最稳妥的选择。我自己现在这台主力机就是Windows 11 Ubuntu 22.04双系统。Windows这边负责日常办公、微信、网银、OfficeUbuntu那边专门做开发。两边各司其职文件通过NTFS分区交换体验很顺畅。但如果你属于“三分钟热度”型用户我建议先装个虚拟机玩熟了再上双系统不然装完发现不适合自己又得删那才是真的浪费时间。1.2 什么情况必须装双系统什么情况别折腾先说必须上双系统的典型场景。第一个是ROS/机器人开发。ROS对系统版本要求苛刻比如ROS 2 Humble对应Ubuntu 22.04而且经常要访问传感器硬件、串口设备这些在虚拟机里配置会非常痛苦。第二个是深度学习与GPU计算。虽然WSL2配CUDA也能跑但真到了训练环境NVIDIA驱动、CUDA版本、容器共享GPU这些在原生Linux下要省心得多。第三个是嵌入式开发涉及USB设备直通、串口工具、交叉编译链虚拟机经常出现设备识别不到的问题。反过来什么情况不建议装如果你平时只是用浏览器、Office、看视频那Linux生态对你来说反而是一种负担——微信体验差、Office兼容性不稳定、各种国产插件不支持。这种情况下双系统装完大概率吃灰。还有如果你对电脑不熟悉、不愿意看报错、也不想学任何命令行操作那也先别碰双系统从虚拟机开始更现实。2. 安装前的准备硬件检查、备份与BIOS设置决定要装了别急着插U盘。安装前的准备工作决定了你后续是“顺利下车”还是“反复折腾”这部分我按优先级从高到低说。2.1 磁盘空间规划与Windows内的必备设置先看磁盘空间。装Ubuntu我建议至少给80GB如果要做开发或者存模型数据最好预留150GB以上。操作是在Windows的“磁盘管理”里右键你想要压缩的分区通常是C盘选“压缩卷”输入要压缩出来多少MB。注意压缩出来的空间千万不要去新建卷、格式化或者做任何操作保持“未分配”状态就行Ubuntu安装程序会自己识别这块空闲区域。接下来是很重要但经常被忽略的一步关闭BitLocker。现在Win11很多品牌机出厂默认开启了BitLocker加密如果你的C盘有这个标志安装Ubuntu时大概率会遇到“无法识别分区”或者安装完成后Windows要求输入恢复密钥的尴尬局面。建议提前在“设置 隐私和安全性 设备加密”里关掉或者去控制面板的BitLocker管理里“关闭BitLocker”。这个过程可能需要点时间但值得等。然后关闭Windows快速启动。这项功能在“控制面板 电源选项 选择电源按钮的功能”里把“启用快速启动(推荐)”勾掉。原因很关键快速启动本质上让Windows关机变成了一次深度休眠会导致NTFS分区处于“脏”状态Ubuntu挂载NTFS分区时会报错或者只能以只读方式挂载——你辛苦下载的文件在Linux下看得到但改不了那感觉太难受了。2.2 确认UEFI还是Legacy决定了你后面怎么修引导开机进BIOS的方式各品牌略有不同一般是开机时不停按Del、F2、F10或Esc。进去以后找“Boot Mode”或者“启动模式”现代电脑基本都显示UEFI老一些的机器可能是Legacy/CSM。这里我强烈建议如果你的Windows是UEFI方式安装的Win8及以上基本都是那Ubuntu也用UEFI安装保持两个系统的引导模式一致。这样安装程序会自动把Ubuntu的引导和Windows的引导放在同一个EFI分区里开机用GRUB菜单轻松切换两个系统。如果搞成Legacy和UEFI混合的状态装完经常是你开机直接进Windows、完全看不到GRUB菜单或者反过来Ubuntu独占引导、Windows不见了——这种问题修起来特别费劲。另外需要提一下Secure Boot安全启动。Ubuntu在Secure Boot开启状态下是可以正常安装和启动的默认shim引导带签名没问题。但如果你后续要装NVIDIA闭源驱动或者使用某些第三方内核模块可能会遇到签名校验失败的问题。初次安装我建议先别关Secure Boot装完系统、驱动都搞定了如果一切正常就不用管它如果遇到模块加载问题再回BIOS关掉。2.3 备份装双系统最容易被忽略的一环我在帮别人装系统的过程中见过太多“忘了备份”的悲剧。虽然双系统安装本身很少直接把Windows数据弄丢但手动分区时手一抖把整个磁盘抹掉、或者在调整分区的时候选错目标都是真实发生过的。所以请务必把重要文档、照片、项目代码备份到移动硬盘或网盘至少保证Windows系统盘里有价值的个人文件被复制出来。另外如果你是笔记本建议把电源插着再开始安装装到一半断电是最尴尬也最伤硬盘的情况之一。3. 制作启动盘与Ubuntu安装全流程准备工作做完进入正题。我先说制作启动盘然后走一遍Ubuntu 22.04 LTS的安装流程重点放在最容易出问题的分区阶段。3.1 下载镜像与制作启动盘Ubuntu官网下载速度有时候不太稳定国内用户直接走镜像站反而更快。我常用的几个镜像源清华TUNA镜像站https://mirrors.tuna.tsinghua.edu.cn/ubuntu-releases/阿里云镜像站https://mirrors.aliyun.com/ubuntu-releases/中科大镜像站https://mirrors.ustc.edu.cn/ubuntu-releases/版本选22.04.x LTS或者24.04 LTS都行LTS版本支持周期长面向长期使用更稳妥。下载完ISO文件后用RufusWindows下写U盘这是我试过最不容易出问题的工具。参数上注意两点分区类型选GPT针对UEFI启动目标系统类型选UEFI(非CSM)。其他选项默认即可等它写完。如果你手头有跨平台需求balenaEtcher也不错界面简单粗暴选ISO选U盘点Flash就完事。但要小心写盘工具会清空U盘全部数据插U盘之前确认里面没有要留的文件。3.2 安装过程图解从启动到安装类型U盘插上重启开机时按启动菜单快捷键常见F12、F11或Esc选择从U盘启动。你会看到GRUB菜单选“Try or Install Ubuntu”然后选“Install Ubuntu”。语言选中文简体键盘布局默认English (US)就行如果你用中文输入法多后面系统装完再添加中文拼音布局也不迟。到“更新和其他软件”这一步我建议普通用户选“正常安装”并把“为图形或无线硬件安装第三方软件”勾上。这样如果电脑里有NVIDIA显卡装完系统后无线网卡和显卡的驱动会省事不少。然后“安装类型”这一步是全文最关键的地方。3.3 分区方案这么分配五年不用后悔选“其他选项”Something else进入手动分区界面。你需要找到之前压缩出来的那部分空闲空间对它新建分区。我的推荐方案是这样的EFI系统分区如果磁盘上已经有Windows的EFI分区一般是那个几百MB、类型为“EFI系统分区”的、在sda1或nvme0n1p1的位置不要新建EFI分区直接把它选中作为“EFI系统分区”就行。装完的GRUB会写进这个已有分区Windows和Ubuntu共用引导管理器。这是双系统能正常切换的核心。如果看不到已有的EFI分区说明你之前的Windows可能不是UEFI安装那就麻烦了建议回上一节重新理清引导模式。根分区 /在空闲空间新建大小建议50GB文件系统ext4挂载点选“/”。系统本体、软件包、Docker镜像默认都放这留太少后面清理缓存会非常痛苦。Home分区 /home把剩余空闲空间全部分给它文件系统ext4挂载点选“/home”。这样做的最大好处是以后重装系统只要不动/home分区你的个人文件、配置、下载的内容全都还在。不夸张地说这个习惯能让你未来省下大量备份和迁移时间。交换空间现在内存普遍16GB我建议直接用swap文件而不是swap分区。Ubuntu新版默认就支持swap文件手动分区时可以不建swap分区装完系统后再创建一个8GB左右的swap文件即可。这样分区方案更简洁后期调整大小也灵活。分区确认无误后最关键的一步来了“安装启动引导器的设备”这一项务必选择挂载EFI分区的那个磁盘不是分区是整个磁盘设备比如/dev/nvme0n1或/dev/sda。选错了的结果是安装完开机直接进WindowsGRUB根本没有被写进去或者反过来把Windows的引导覆盖掉。装完以后如果想改启动顺序不用重装系统按我第4节的方法改配置文件就行。3.4 安装过程中的常见等待与账号设置分区结束点“现在安装”会要求你选择时区设个用户名和密码。这里提个实用建议用户名尽量用全小写英文且不要有空格比如dev、sky、alan后面用命令行的时候你会感谢自己这个决定。密码不用太复杂但也不能太简单因为sudo提权经常要输。整个安装过程在机械硬盘上可能要20到30分钟固态硬盘10分钟左右就完事。装完提示重启记得拔掉U盘按提示重启进入GRUB菜单这时候你应该能看到Ubuntu和Windows Boot Manager两个条目了。4. 启动顺序与引导管理怎么改、怎么救装好双系统后默认情况GRUB会以Ubuntu为第一启动项Windows排在最下面。如果你更习惯默认进Windows或者想缩短开机等待时间下面这些方法都能改。4.1 修改GRUB启动顺序的几种方法最简单直接的办法是修改/etc/default/grub文件。在终端里执行sudo nano /etc/default/grub找到这两行GRUB_DEFAULT0 GRUB_TIMEOUT10你要是想默认进Windows可以把GRUB_DEFAULT改成Windows在GRUB菜单里的序号。在GRUB菜单里条目从上到下从0开始计数。如果你记不住序号也可以改成Windows引导程序的名称比如GRUB_DEFAULTWindows Boot Manager注意这里字符串必须和你GRUB菜单里显示的条目名称完全一致。改完保存执行sudo update-grub让配置生效。重启就能看到效果了。GRUB_TIMEOUT默认是10秒就是菜单停留时间。嫌久改成3秒想慢慢想就改成30。但我建议不要改成0除非你已经非常确定不会需要手动进恢复模式——否则哪天Ubuntu内核启动失败连进recovery mode的机会都没有那就只能靠live盘救了。4.2 图形界面修改grub-customizer的安装与使用如果觉得改配置文件太麻烦可以装一个grub-customizer。它是图形化工具界面直观用起来非常方便sudo add-apt-repository ppa:danielrichter2007/grub-customizer sudo apt update sudo apt install grub-customizer打开后可以看到整个启动列表选中Windows条目点“上移”把它挪到最上面然后点“保存”。工具内部会自动帮你执行update-grub不用手动操作。不过提醒一句用这个工具虽然省事但每次Ubuntu内核更新升级后GRUB菜单可能被重新生成配置有可能会被覆盖到时候再打开工具重新设置一下就行。4.3 Windows更新后引导被覆盖的修复方法这是双系统用户最常遇到的问题Windows系统一更新开机直接进WindowsGRUB菜单消失了。原因是Windows更新会重写EFI启动项把引导顺序改成Windows优先甚至直接把GRUB启动项从NVRAM里移除。别慌修复思路很简单——用Ubuntu live盘启动执行一条命令把GRUB装回去。我习惯用Boot-Repair这个工具操作流程如下用之前制作好的Ubuntu安装U盘启动选“Try Ubuntu”进入live系统。打开终端依次执行sudo add-apt-repository ppa:yannubuntu/boot-repair sudo apt update sudo apt install boot-repair boot-repair工具界面打开后直接点“Recommended repair”推荐修复它自动检测EFI分区、重新安装GRUB并设置启动项。跑完以后重启GRUB菜单就回来了。如果你不喜欢图形工具也可以手动修复。进入live系统后先确认EFI分区挂载在哪然后chroot进去重新装grubsudo mount /dev/nvme0n1p1 /mnt # 这里是你的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 umount -R /mnt手动方式需要你对分区有基本了解适合喜欢搞明白每一步在干什么的人。没把握就用Boot-Repair实测在绝大多数机器上都能一次修好。5. 安装后的必做优化换源、驱动、输入法与字体双系统装好、能进Ubuntu这只能算完成了50%。剩下的一半是把你日常的开发和使用体验打磨到顺滑。5.1 换软件源与系统更新Ubuntu默认软件源服务器在国外国内网络环境下apt update经常慢到让人怀疑人生。第一步就是换成国内镜像源。以清华源为例先备份原始源列表sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak然后用文本编辑器打开它把内容替换为对应版本的镜像配置。Ubuntu 22.04的清华源配置长这样deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse保存后执行sudo apt update sudo apt upgrade等它跑完系统就更新到最新状态了。这里要注意如果你装的是24.04 LTS版本代号是noble镜像配置里要把jammy换成noble别抄错。5.2 显卡驱动与显示问题处理如果你的电脑有独立NVIDIA显卡在“软件和更新 附加驱动”里能看到好几个驱动选项。我建议选择“专有驱动”proprietary里标着“tested”的那个版本点应用后等它自动编译和安装。如果是纯命令行环境也可以执行sudo ubuntu-drivers autoinstall驱动装完后重启在“关于”里能看到显卡型号和驱动版本就说明驱动生效了。这里多说一句如果你在安装时勾选了“为图形硬件安装第三方软件”系统往往已经帮你把驱动装好了这一步可以直接跳过验证一下就行。NVIDIA驱动装完如果出现开机黑屏、卡在登录界面循环、或者显示器分辨率不对先别急着重装系统按CtrlAltF2进文本终端登录后卸载掉刚装的驱动sudo apt purge nvidia-* sudo apt autoremove重启后一般就恢复正常了用开源驱动nouveau顶着或者换一个稍旧版本的专有驱动再试。5.3 中文输入法、字体与微信等常用软件Ubuntu默认的iBus中文输入法体验一般词库和联想都比较弱。我更推荐装fcitx5配合搜狗输入法或者rime打字体验和Windows下差距不大。以fcitx5为例sudo apt install fcitx5 fcitx5-chinese-addons fcitx5-config-qt装完后在“语言支持”里把键盘输入法系统改成“fcitx 5”重启或者重新登录右上角出现键盘图标右键“配置”添加“拼音”输入法就行。字体方面我强烈推荐给终端和IDE换上一款合适的等宽字体。我自己目前在用Sarasa Term SC更纱黑体终端版中英文混排对齐做得很好在终端里写代码看注释非常舒服。还有Cascadia Code和JetBrains Mono也值得试试。可以手动从GitHub下载ttf文件放到~/.local/share/fonts目录执行fc-cache -fv刷新字体缓存然后去终端首选项里切换。常用软件方面微信可以装官方Linux版或微信4.0的Linux客户端虽然功能比Windows版少一些但日常聊天够用。WPS Office对Office文档兼容性比LibreOffice好很多官网有deb包双击安装就行。5.4 开发环境快速搭建Git、Python、Docker装完系统顺便把基础开发环境弄好省得以后要用的时候现装。一条命令装齐Git和Pythonsudo apt install git python3 python3-pip python3-venvDocker的安装我建议走官方仓库别用Ubuntu自带的旧版docker.io。官方给出的安装步骤大概是这样sudo apt update sudo apt install ca-certificates curl sudo install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg sudo chmod ar /etc/apt/keyrings/docker.gpg echo deb [arch$(dpkg --print-architecture) signed-by/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable | sudo tee /etc/apt/sources.list.d/docker.list /dev/null sudo apt update sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin装完后把当前用户加进docker组免去每次输sudo的麻烦sudo usermod -aG docker $USER重新登录后执行docker run hello-world验证一下看到“Hello from Docker!”就说明环境OK了。这里有个经验Docker的数据目录默认在/var/lib/docker如果你当初给根分区只留了50GB那后面用Docker拉镜像很可能会爆盘。遇到这个情况可以把Docker数据目录迁移到/home分区去修改/etc/docker/daemon.json里的>set root(hd0,gpt5) set prefix(hd0,gpt5)/boot/grub insmod normal normal如果这条命令能成功进入GRUB菜单那就说明只是引导路径问题进去后执行sudo update-grub就可以修复。如果连normal模块都加载不了说明GRUB文件有损坏那就老老实实用live盘修复。另一个典型问题是启动顺序错乱。有次我在Windows里正常关机后再启动电脑发现开机直接进了Windows——GRUB菜单消失了。排查过程是先在Windows命令行里用bcdedit /enum firmware查看UEFI固件启动项发现Ubuntu的启动项还在但顺序被排到了后面。解决办法是开机会方便很多开机时按F12进启动菜单手动选“Ubuntu”或者进BIOS把Ubuntu设为第一启动项。想从根本上一劳永逸还是在Ubuntu里跑一遍Boot-Repair把GRUB重置为第一启动项更省心。6.3 双系统下唯一需要留意的“坑”时间不同步这个坑几乎是每个双系统用户都会遇到的。Windows把系统时间当作本地时间Ubuntu默认把硬件时间当作UTC然后自动加上时区偏移。所以你会在两个系统之间切换后发现其中一个的时钟慢了或者快了8小时。修复方法很简单在Ubuntu下执行timedatectl set-local-rtc 1 --adjust-system-clock这条命令让Ubuntu也把硬件时间当作本地时间和Windows保持一致就不再互相改时间了。执行完后用timedatectl验证一下看到RTC in local TZ: yes就说明生效了。写到最后说点实在的我玩双系统少说也有五六年从最早的Ubuntu 14.04一路装到现在的24.04最大的体会是双系统这件事装成功只是开始最值钱的能力其实是“知道自己能把系统恢复到能用的状态”。引导挂了能修、驱动黑屏了能救、分区空间不够能扩——这些技能比安装本身更能决定你是否能长期用下去。所以如果你在折腾过程中遇到什么莫名其妙的报错别急着重装先去日志里查、去搜索里找很多时候问题并不像看起来那么严重。祝你在新的系统里玩得开心早日配出自己的顺手环境。
返回列表