ARTICLE DETAIL

资讯详情

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

Windows与Ubuntu双系统安装及GRUB引导修复全指南

Windows与Ubuntu双系统安装及GRUB引导修复全指南 先声明一下搞双系统这件事本身不难真正劝退新手的是装完之后的引导修复、驱动、输入法这些收尾工作。这篇文章我会把从零到能日常使用的完整流程拆开讲包括我在多台不同品牌的笔记本和台式机上踩过的坑、试出来的稳定方案以及一些网上教程不会写的细节。如果你是第一次装或者之前装过但翻车了这篇应该能帮你省不少时间。1. 装之前先想清楚你真的需要双系统吗1.1 双系统和虚拟机的选择很多人一上来就纠结要不要直接装双系统我觉得这个决策本身比安装步骤更重要。我的判断标准很简单如果你只是偶尔跑个Linux脚本、学个命令、测试一下代码直接上VMware Workstation或者VirtualBox装虚拟机就够了没必要动真格的双系统。虚拟机的好处是随时快照、随时删host系统完全不受影响即使是新版本Windows上跑Ubuntu也不会出兼容问题。但如果你打算把Ubuntu作为主力开发环境每天长时间编译代码、跑Docker、做深度学习训练或者你电脑内存和硬盘足够大至少16GB内存起步那物理双系统是更合理的选择。性能上虚拟机毕竟隔了一层Hypervisor磁盘IO和GPU直通都有损耗物理机跑起来明显更顺手。另外真实硬件环境下调试内核模块、做嵌入式交叉编译、跑一些对硬件时序敏感的程序虚拟机根本没法替代。我的建议是第一次接触Linux的人别一上来就物理双系统先在虚拟机上折腾一两周确认自己真的需要再动真格。这样即使后面操作失误也不至于影响日常工作。1.2 确定Windows版本和Ubuntu版本双系统的组合方式很多但最常见也最稳定的就是Windows 10/11 Ubuntu LTS版本。LTS是Long Term Support的缩写意思是长期支持版Ubuntu官方每两年发布一个LTS版本提供5年安全更新。写这篇文章时最新的LTS是Ubuntu 24.04 LTS也是我目前主力在用的版本。如果你追求极致稳定或者机器配置偏老可以退一步用Ubuntu 22.04 LTS它的软件生态和第三方教程资料都更成熟。Windows这边Windows 10和Windows 11在引导方式上没有本质区别都是UEFI GPT只要你是近几年买的电脑基本都一样。真正要注意的是Windows系统如果是别人帮你装的那种Ghost版本或者精简版可能会精简掉一些重要组件导致后面Ubuntu引导识别异常遇到这种情况建议优先换回官方原版镜像。1.3 磁盘空间规划这是双系统安装里最容易被忽视的环节。我看到太多人装完Ubuntu之后发现磁盘空间不够最后只能重装其实完全可以在一开始就把分区规划好。Ubuntu系统本体加上日常软件、代码、缓存至少需要50GB空间才算舒服。如果你计划在Ubuntu里装大型开发工具链、Android源码或ROS那直接给到100GB-200GB都不算多。具体到Windows侧你需要在Windows的磁盘管理里把某个分区压缩出一块未分配空间这步操作在系统运行中就能完成不需要重启进PE。右键此电脑→管理→磁盘管理选一个空闲空间大的分区通常是D盘右键压缩卷输入想压缩出的空间大小。这个过程不会破坏原有数据但保险起见还是建议先备份重要文件。在规划时要记住一个原则Windows的快速启动Fast Startup和现代待机Modern Standby会锁定NTFS分区和部分硬件状态所以Ubuntu侧不要直接读写NTFS分区上的系统文件数据交换最好放在单独的数据分区或者用网络传输否则可能出现文件损坏。2. 安装前的准备工具、镜像和启动盘2.1 下载Ubuntu镜像去Ubuntu官网下载ISO镜像文件。下载的时候注意选择Desktop版本桌面版不要下成Server版。Server版没有图形界面对新手来说操作成本高很多。官网提供的是全球CDN分发但国内访问速度时快时慢如果下载很慢可以用国内高校的镜像站例如清华TUNA或者中科大USTC镜像源和官网文件是同一个校验值放心用。下载完ISO文件之后建议顺手校验一下SHA256值。Windows下在PowerShell执行Get-FileHash 文件路径和官网提供的值比对一致再用。这一步是为了避免下载过程损坏文件坏的镜像做出来的启动盘经常在安装中途报错而且报错得很随机排查起来很头疼。2.2 制作启动U盘准备一个至少8GB的U盘。这里重点说一下工具选择强烈推荐Rufus完全免费、体积小、速度快而且是纯绿色免安装。下载后打开设备选择你的U盘引导类型选择刚刚下载的Ubuntu ISO镜像分区类型选GPT目标系统选UEFI非CSM文件系统保持默认FAT32即可。点击开始后等它跑完就行。制作好之后U盘会被分成两个分区一个里面是EFI引导文件另一个是Ubuntu的安装介质文件。如果Windows弹出提示说U盘无法访问或需要格式化直接忽略这是正常现象。有个小细节在部分老机器上U盘需要插在USB 2.0口才能被BIOS稳定识别USB 3.0口会偶尔出现引导失败。新电脑一般没这个毛病但如果你用的是五年前的电脑遇到U盘不引导问题时可以先换个USB口试试。2.3 BIOS/UEFI设置和安全启动重启电脑趁开机画面按下启动菜单快捷键进入引导选择界面。不同品牌快捷键不一样联想和戴尔是F12华硕是F8或ESC惠普是F9微星是F11如果不知道就开机时猛按F2或DEL进BIOS在里面找Boot Menu。选择U盘启动项名字一般是UEFI:你的U盘品牌名称。进了BIOS之后有几个设置项建议提前确认。第一是Secure Boot安全启动这个选项在Ubuntu 24.04上默认支持但老版本Ubuntu或某些定制内核会有兼容问题如果你在启动U盘时报错Verification failed之类就进BIOS把Secure Boot关掉。第二是SATA Mode如果原本是RAID模式建议改成AHCI否则Ubuntu可能认不到硬盘。改之前注意Windows可能因此无法启动最好先在Windows里以管理员身份打开命令提示符执行bcdedit /set safeboot minimal然后进BIOS改AHCI再进Windows把safeboot关掉这样最稳妥。3. 动手安装详细步骤拆解3.1 Windows侧预留空间如果你已经按照前面所说在Windows磁盘管理里压缩出了未分配空间这一步就可以跳过。如果还没压缩可以临时在Ubuntu安装界面里做但不推荐新手这么操作因为图形化安装器对分区操作的可视化程度不如Windows原生工具直观误操作的风险更高。我的习惯是在Windows侧把D盘以外的数据也整理一下特别是如果待压缩分区里存了大量文件碎片化严重时压缩过程会很慢而且压缩出来的空间碎片多影响后面Ubuntu分区的连续性和性能。虽然SSD基本不受碎片影响但HDD上还是尽量避免。3.2 Ubuntu安装走到安装类型那一步插入U盘从U盘引导进入Ubuntu的试用环境。桌面有两个图标一个是Install Ubuntu一个是Try Ubuntu。建议先点Try Ubuntu进入试用桌面验证一下无线网络、触摸板、显卡等硬件在Linux下是否正常。这一步虽然不安装系统但是能提前暴露很多硬件兼容问题比装完之后再发现要强得多。确认硬件没问题后双击桌面上的Install Ubuntu开始安装。一路点下去语言选中文简体键盘布局保持默认English (US)就行这个后面随时可以改。到Installation type这一步选择Something else其他选项。这个选项允许你手动规划分区是双系统安装中最重要的环节。3.3 手动分区方案/, /home, swap, EFI进入手动分区界面后你会看到电脑里的全部磁盘和分区。先找到你在Windows里压缩出来的那个未分配区域它显示为free space大小和你压缩时设置的一致。我们在这个free space上创建以下分区第一个是EFI系统分区。如果你电脑里已经存在一个EFI分区一般是一个几百MB、文件系统为FAT32的分区挂载点是/boot/efi你可以选择直接复用而不必新建。多系统共用同一个EFI分区的引导文件是标准做法GRUB会把Windows Boot Manager和自己的引导文件都放在这里面。如果你不确定哪个是EFI分区就看分区表里标记为EFI System Partition的那个。极端情况下没有EFI分区则需要自己创建一个大小为512MB-1GB、类型为EFI System Partition的分区。需要说明的是分区类型在创建时要手动指定为EFI System Partition不能只是格式化成FAT32了事。第二个是根分区/。这里存放整个Ubuntu系统文件和所有程序相当于Windows的C盘。建议大小50GB-100GB文件系统ext4挂载点选/。第三个是交换分区swap。相当于Windows的虚拟内存休眠功能也依赖它。建议大小等于物理内存大小如果内存16GB就分16GB内存32GB就分32GB文件系统选swap area。如果你内存很大64GB以上可以不建交换分区但日常使用中偶发内存占用暴涨时没有swap兜底容易触发OOM killer所以还是建议分一个。第四个是/home分区。这个分区存放个人文件、配置、下载内容。分多大的核心在于你打算在Ubuntu里干什么。如果只是写代码50GB够用如果还要存数据集、虚拟机镜像、Docker镜像建议200GB起步甚至更多。分区完成后窗口底部的Device for boot loader installation要选你Windows所在的那块硬盘的设备名比如/dev/nvme0n1或/dev/sda注意是整个硬盘不是某个分区。这是新手最容易搞错的地方选成分区会导致GRUB写不进MBR或ESP的正确位置重启后直接进Windows看不到Ubuntu启动项。3.4 时区、键盘布局、用户账号设置分区完成后点Install Now确认一遍将要执行的操作继续。接下来设置时区选择Shanghai键盘布局保持默认然后设置用户名和密码。这里有一个细节用户名尽量用全小写字母不要带空格和特殊字符因为在Linux里用户名同时也是你的home目录名并且会出现在很多配置文件和命令行的提示符中带特殊字符会在后续开发工具的路径配置中埋下各种隐患。我的用户名一直用的就是简短的英文单词。安装过程会持续5-15分钟取决于磁盘速度和网络情况。期间可以干点别的但最好保持电源接通防止笔记本中途断电。安装完成后提示重启点击Restart Now拔掉U盘等待重启。3.5 重启后的引导选择正常情况你会看到GRUB菜单第一项是Ubuntu第二项是Windows Boot Manager一般显示为Windows Boot Manager on /dev/nvme0n1p1。默认等待10秒后自动进入Ubuntu。如果你直接进了Windows而不是看到GRUB不用慌问题出在引导顺序上BIOS里默认先从Windows Boot Manager启动了需要在BIOS里把Ubuntu或者叫做ubuntu的EFI条目调整到第一位或者重启时手动选择。如果GRUB菜单里压根没有Windows Boot Manager这一项我们后面专门讲修复方法。4. 引导修复双系统最常翻车的环节4.1 GRUB菜单里的Windows项不见了这个问题常见于安装Ubuntu之前电脑里已经存在多个Linux发行版的残留引导项或者Windows在Ubuntu之后又进行过一次系统更新。解决办法有两个方向。在Ubuntu终端里运行sudo update-grub这个命令会重新扫描所有磁盘上可引导的操作系统并把识别到的Windows Boot Manager追加到GRUB菜单里。大约80%的简单情况靠这一条命令就能解决。如果update-grub执行之后菜单里还是没有Windows项说明Windows的引导文件可能损坏了或者EFI分区里已经不存在Windows Boot Manager的引导文件。这种情况需要进入Windows的恢复环境修复用Windows安装U盘启动选择修复计算机→疑难解答→高级选项→命令提示符然后执行bootrec /fixmbr、bootrec /fixboot、bootrec /rebuildbcd。修复完成后Windows能自己启动了回到Ubuntu再跑一次update-grub即可。4.2 重装Windows后Ubuntu引导消失这个场景基本是所有玩双系统的人都经历过的。Windows的安装程序在安装时会重写UEFI引导项把Linux引导从NVRAM启动项列表里抹掉甚至直接覆盖整个EFI分区的部分文件。结果就是开机直接进Windows看不到GRUB。解决办法是用Ubuntu的Live USB启动选择Try Ubuntu进入试用桌面后在终端执行以下操作sudo mount /dev/nvme0n1p3 /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 umount -R /mnt具体到你的机器需要把/dev/nvme0n1p1EFI分区和/dev/nvme0n1p3根分区替换成实际的分区号。如果不确定哪个分区是根分区可以在Live环境里运行lsblk -f查看文件系统类型和挂载点判断。这套操作的本质是把Live系统里的工具链通过chroot切换到硬盘上的Ubuntu环境然后重新安装GRUB到EFI分区。如果你觉得手动输命令容易出错还有一个更偷懒的办法用boot-repair工具。在Live环境里连上网络终端执行sudo add-apt-repository ppa:yannubuntu/boot-repair sudo apt update sudo apt install boot-repair boot-repair然后点击Recommended repair它会自动检测并修复引导问题整个过程是全自动的修完重启一般就能看到GRUB菜单了。这条工具我用了很多次处理重装Windows后Ubuntu消失这个问题相当靠谱。4.3 设置默认启动系统与等待时间装好双系统后很多人会觉得GRUB默认等待10秒太久或者想让Windows成为默认启动系统比如电脑是家里人共用大多数人还是用Windows。修改GRUB默认配置可以直接编辑/etc/default/grub文件sudo nano /etc/default/grub核心参数有这几个GRUB_DEFAULT00表示Ubuntu如果想默认Windows需要填Windows在GRUB菜单里出现的序号从0开始计数如果Windows排在第3项就填2。更稳妥的方式是用菜单项的完整名字比如GRUB_DEFAULTWindows Boot Manager on /dev/nvme0n1p1这样即使菜单顺序变了也不会选错。GRUB_TIMEOUT5菜单等待秒数改成3或5都比较舒服。GRUB_TIMEOUT_STYLEmenu如果从没看到过GRUB菜单很可能这台机器当前的值是hidden改为menu可以强制显示菜单。修改后执行sudo update-grub使配置生效。这里有一个经验我见过很多人为了省那几秒把GRUB_TIMEOUT改成0结果真到需要临时进Windows或者进恢复模式时根本来不及按键。建议至少保留3秒的等待时间毕竟GRUB菜单里的Advanced options for Ubuntu里还有内核恢复模式很多系统修复场景都靠它入场。5. 装完还要做的事让它更好用5.1 换软件源更新系统Ubuntu默认的软件源服务器在国外国内使用apt安装软件时速度不佳。安装完系统的第一件事就是替换成国内镜像源。Ubuntu 24.04开始软件源配置文件是/etc/apt/sources.list.d/ubuntu.sources格式和旧版不一样建议直接用软件更新器里的图形化设置操作打开软件和更新→下载自→其他站点选择国内镜像比如清华TUNA或者阿里云然后点击重新载入。接着在终端跑一遍完整更新sudo apt update sudo apt full-upgrade如果你打算用Ubuntu做开发建议再装上build-essential、git、curl这些基础工具sudo apt install build-essential git curl5.2 中文输入法fcitx 搜狗/谷歌拼音Ubuntu中文输入法这个话题每次讨论都能吵起来。我试过ibus和fcitx5两条路线最终稳定使用下来的是fcitx5它现在已经是Ubuntu的默认输入法框架之一对GTK和Qt应用的支持都很好而且启动快、不崩溃。安装方式sudo apt install fcitx5 fcitx5-chinese-addons fcitx5-config-qt装完后在系统设置里把输入法框架切换为fcitx5重启或注销重新登录。然后在fcitx5设置里添加拼音输入法就可以开始用了。如果你习惯搜狗输入法可以去搜狗官网下载Linux版deb安装包安装后选择搜狗作为输入法引擎。但注意搜狗Linux版对新版本Ubuntu的适配有滞后性可能出现候选词显示异常所以日常用fcitx5自带的拼音就足够特殊需求再装搜狗。5.3 微信、QQ等常用软件这是一个很现实的问题装了Ubuntu之后微信、QQ这些国民应用怎么用。目前比较推荐的方案是用deepin-wine或星火应用商店来跑Windows版微信。在Ubuntu下安装星火商店里面已经做好了微信、QQ的打包和依赖处理一键安装即可。实际使用中虽然运行的是Windows版程序但日常聊天、收发文件完全没问题偶尔有小毛病比如字体发虚可以通过调整兼容设置解决。不推荐用网页版微信替代因为功能缺失太严重。如果腾讯愿意像Linux原生版QQ一样把微信原生版做出来那才是Linux用户最大的福音。5.4 NVIDIA驱动要不要装如果你用的是NVIDIA独立显卡装不装闭源驱动取决于你的用途。日常办公、写代码、浏览网页用开源的nouveau驱动完全够用虽然性能一般但不折腾。需要跑CUDA、深度学习训练、用Blender渲染或者打游戏那就必须装NVIDIA官方闭源驱动。Ubuntu 24.04可以这样安装sudo ubuntu-drivers autoinstall或者通过软件和更新→附加驱动里手动选择对应型号的驱动版本优先选择标注为proprietary, tested的那个。装完重启后用nvidia-smi命令可以确认驱动是否正常工作。这个过程中我踩过一个坑如果你是在笔记本双显卡上装了NVIDIA驱动外接显示器和HDMI输出有可能失效需要在NVIDIA X Server Settings里配置PRIME Profiles选择对应模式才能恢复。5.5 设置时间同步双系统一定绕不开的一个问题Windows和Ubuntu时间相差8小时。原因是两者对硬件时钟RTC的解读方式不同Ubuntu默认把RTC当作UTC时间Windows默认把RTC当作本地时间。解决方式是在Ubuntu中让RTC使用本地时间sudo timedatectl set-local-rtc 1执行后重启Windows时间就正常了。这个命令对系统几乎没有副作用是最省事的解法。如果你有洁癖想更正确地处理可以改Windows注册表让Windows使用UTC时间但改错了反而容易导致时间混乱我不推荐。6. 卸载Ubuntu与极端情况恢复6.1 从Windows侧删除Ubuntu分区不想要Ubuntu了直接在Windows下把Ubuntu的分区删掉这在操作上很简单但有几步不能省。在Windows的磁盘管理里把之前分配给Ubuntu的每个分区EFI分区里的Ubuntu相关文件不算独立分区但要处理一个一个右键删除卷。删除时务必确认这些分区里没有你要的数据尤其是/home分区删了就真没了。删完分区后还有一个重要步骤清理EFI引导项。Windows磁盘管理能删除分区但删不掉NVRAM里的Ubuntu启动条目也不会清理EFI分区里的GRUB和Ubuntu引导文件。这时需要以管理员身份运行命令提示符执行diskpart然后list disk select disk 0 list partition select partition 1 assign letterZ exit然后访问Z盘删除里面EFI文件夹下名为ubuntu的子文件夹。最后再去掉刚才分配的盘符diskpart里再次select volume Z后remove letterZ。这样清理完GRUB不会在开机时出现Windows引导项里也不会有Ubuntu的残留。6.2 修复Windows引导删除Ubuntu分区后可能遇到一个问题Windows开机直接进入GRUB rescue模式或者提示找不到引导设备。这是因为GRUB虽然不在了但Windows Boot Manager在NVRAM中的启动顺序还是指向曾经由GRUB管理的引导条目。解决办法是进BIOS把Windows Boot Manager设置为第一启动项如果启动项里根本没有Windows Boot Manager就需要用Windows安装U盘修复MBR方法和之前4.1节提到的bootrec命令一样。6.3 笔记本休眠异常、亮度调节失效等小问题在部分笔记本上装完Ubuntu后功能键的亮度调节FnF5/F6这种会失效外放声音也偶尔不出声。这些问题大多和内核版本有关Ubuntu 24.04默认的6.8内核对新硬件的适配已经相当好了但如果你遇到老型号笔记本的兼容问题第一步是升级内核到最新的HWE版本sudo apt install linux-generic-hwe-24.04升级后重启很多小毛病会自己消失。如果还是不行去Ubuntu官网的硬件支持社区查有没有同型号笔记本的专项解决方案一般是加内核参数或者安装特定驱动。7. 几个省心的小技巧最后分享几个能显著提升双系统使用体验的技巧。第一个是设置GRUB中记住上次选择的系统。编辑/etc/default/grub添加一行GRUB_SAVEDEFAULTtrue然后把GRUB_DEFAULT改为saved。这样你上次选了Windows下次开机默认就是Windows不用每次手动选。第二个是给U盘做持久化。把Ubuntu的Live USB做成带持久化存储的模式插在电脑上就是个带系统的U盘走到哪都能用而且改动可以保存。用Rufus制作时在持久分区大小里设置一个值即可。这个便携Ubuntu系统还能当系统故障时的救援环境来用插上就能修引导。第三个是善用快照工具。Ubuntu 24.04默认使用ZFS或ext4如果用ZFS方案安装系统配置了自动快照功能系统出问题时可以轻松回滚到某个时间点的状态。同时建议在Windows侧开启系统还原点这样每次大操作之前有时间快照折腾坏了心里也不慌。第四个是关于BIOS里的一些细微设置。双系统偶尔出现装在同一个硬盘上但引导顺序混乱的情况是因为有些主板固件不支持NVRAM启动条目自动切换这个不受系统控制属于硬件层面的兼容问题。遇到这种问题只能平时尽量把GRUB设置为默认启动项再从GRUB里选择Windows比较省心。装双系统这件事百分之八十的功夫在装之前和装之后。把规划做在前面把引导修复的工具和命令记熟剩下的就是一路按确认键。希望这份教程能帮你顺利跨过这些坑用上你自己的Windows Ubuntu双系统环境。
返回列表