ARTICLE DETAIL

资讯详情

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

Windows与Ubuntu双系统安装指南:UEFI/GPT分区与引导修复详解

Windows与Ubuntu双系统安装指南:UEFI/GPT分区与引导修复详解 我见过太多次这样的求助“教程我照做了U盘也能进分区也划好了为什么装完重启只有Windows”以我自己和帮朋友踩坑无数次的经历来说Windows和Ubuntu双系统安装这件事真正决定成败的往往不是“点下一步”那几步操作而是你动手之前在引导方式、分区设计上做的判断。前期准备做得越细后期翻车概率越低。这篇内容我按完整流程走一遍先判断电脑的启动模式再规划硬盘分区然后做启动U盘、进BIOS、跑安装器、修复引导最后处理时间错乱和显卡黑屏这类后续问题。我不光会给步骤还会把每个关键选择背后的原因说清楚。如果你用的是Win10或Win11笔记本看完再动手大概率能省下一个周末。1. 动手之前先把UEFI/GPT和Legacy/MBR这两套体系搞明白1.1 为什么引导方式错了后面全白搭很多教程上来就让你开机按F12进启动菜单选U盘启动。但如果你的电脑是UEFIGPT启动方式而你做的U盘是Legacy引导的MBR启动盘就会出现一个很诡异的现象启动菜单里根本看不到U盘反过来老电脑只支持Legacy你却做了一个UEFI的启动盘选完之后屏幕一黑又回到原系统。这不是U盘坏了也不是系统镜像有问题而是引导固件和磁盘分区表类型不匹配。可以用一个生活化的类比固件相当于快递员U盘和硬盘上的分区表就是包裹上的地址标签。格式不对快递员拿到包裹也不知道往哪送。具体来说UEFIGPT和LegacyMBR是两套完全不同的启动链路项目UEFI GPTLegacy MBR适用场景2012年之后绝大多数电脑Win11强制要求老机型、双BIOS兼容模式磁盘分区表GPT支持2TB以上磁盘最多128个主分区MBR最多4个主分区2TB以上受限启动方式直接从ESP分区里的.efi文件启动从磁盘第一个扇区读引导代码安装Ubuntu时需要ESP分区挂载为/boot/efi一般不需要独立ESP双系统共存现代Windows和Ubuntu共存的主流方案老机器共存方案对现在的Win10/Win11电脑来说绝大多数默认就是UEFIGPT所以这篇文章的主线也以UEFIGPT展开。如果你的电脑还在用Legacy模式后面安装U盘的写入方式和分区设计都要相应调整我会在相关位置单独说明。1.2 三步判断你电脑当前的启动模式判断启动模式这件事一定要在做U盘之前完成因为后面Rufus里的“分区类型”选项要依赖这个结论。第一步在Windows里按WinR输入msinfo32回车打开系统信息找到“BIOS模式”这一项。显示UEFI就是UEFI显示Legacy就是传统BIOS。如果你用的是Win11但这里显示Legacy说明系统当时是在兼容模式下安装的这种配置后续装双系统会麻烦一些建议先把Windows引导方式理清再继续。第二步WinX选磁盘管理在左下角的磁盘列表里找到你的系统盘通常是磁盘0右键看属性切到“卷”标签页看“磁盘分区形式”。如果是GPT对应UEFI如果是MBR大概率是Legacy。少数情况下会有UEFIMBR这种组合但绝大多数电脑都是配对出现的把BIOS模式作为主要判断依据更可靠。第三步如果你是要在一台新电脑上装系统直接开机进BIOS看Boot Mode能选UEFI就选UEFI。不放心的话用前两步从Windows里确认最稳不需要反复重启折腾。1.3 Secure Boot、快速启动、BitLocker这三个前置项怎么处理这三个前置项几乎决定了安装过程顺不顺。Secure Boot安全启动是UEFI机制里的一道验证环节防止未经签名的引导程序启动。Ubuntu安装镜像本身有签名理论上开着也能装但后续只要涉及NVIDIA闭源驱动、部分网卡驱动或者第三方内核模块Secure Boot就可能跳出来报认证失败。我的建议是装系统阶段直接关闭Secure Boot等系统稳定后想开再开。操作路径通常在BIOS的Boot或Security菜单下找到Secure Boot设为Disabled。有些主板需要先清掉BIOS管理员密码才能改这个看具体品牌说明。关掉不影响Windows启动因为Windows的引导程序没变。快速启动Fast Startup是Windows电源选项里的功能它会让系统在关机时把内核会话保存到休眠文件下次开机时快速恢复。问题在于这种“伪关机”状态让硬盘处于未正常卸载状态Ubuntu安装器在识别NTFS分区时可能出问题装完系统后Windows分区也可能只能以只读方式挂载。所以装Ubuntu前到控制面板-电源选项-选择电源按钮的功能先点“更改当前不可用的设置”然后取消勾选“启用快速启动”。BitLocker如果开着建议先备份恢复密钥再到设置里找到设备加密或BitLocker选择暂停保护。否则后面压缩分区或切换BIOS里的SATA模式时Windows可能直接要求输入恢复密钥到时候连Windows都进不去。这一步不是给Ubuntu铺路是给自己留后路。2. 硬盘分区设计给Ubuntu留多大、分几个区才是合理方案2.1 在Windows里用压缩卷腾空间C盘焦虑怎么化解双系统不是把Ubuntu和Windows装进同一个分区而是从现有磁盘里腾出一块未分配空间给Ubuntu。最稳妥的办法是在Windows磁盘管理器里右键C盘选“压缩卷”输入想腾出的空间大小。比如C盘还剩下200GB想给Ubuntu 80GB就输入81920MB80乘以1024注意单位是MB。点确定之后它会花一段时间计算可压缩空间最后生成一块黑色的“未分配”区域。记住到这里就停了不要新建卷不要格式化因为Ubuntu安装器能直接识别未分配空间。这里有一个让很多人困惑的现象C盘明明还有很多剩余空间但可压缩空间却非常小。原因通常是C盘尾部有页面文件、休眠文件、系统还原点或者磁盘碎片压缩卷只能从盘尾往后腾空间前面有文件挡着就压缩不动。遇到这种情况可以先在管理员权限的PowerShell或cmd窗口执行powercfg /hibernate off禁用休眠关掉系统保护重启后再试。如果还不够我建议不要为了装Ubuntu盲目动第三方分区软件风险远大于收益不如先清理C盘文件腾地方。2.2 三种分区方案的对比与选择分区方案网上说法很多什么/boot要单独、/usr要单独、swap要给内存的两倍越看越头大。其实对现代UEFIGPT双系统来说/boot单独分区基本没有必要/usr单独分区更是自找麻烦。你只需要想清楚三个变量根分区、家目录、交换分区。方案适用人群分区布局说明简单省心第一次装、无特殊需求/ 用剩余空间swap 8GB最省事重装系统时数据会丢重装保留数据会频繁折腾系统/ 60GB/home 剩余swap 8GB重装时只格式化//home保留LVM进阶长期使用、想动态扩容用LVM卷组管理安装时多几步适合有经验的用户swap具体给多大其实不用太纠结。内存8GB以内给和内存一样的容量16GB内存给8GB足够内存32GB以上没有休眠需求的话给4GB甚至不给都行。如果你确实要用Ubuntu的休眠功能swap必须大于等于内存大小这个条件是硬性的否则休眠会失败或者不稳定。如果你打算重装时保留/home重装盘里不要勾选/home分区的“格式化”只格式化根分区这样重装完系统和驱动后你的文档、下载、浏览器配置都还在。这个方案对应“系统玩坏了想重装”的场景比单纯一个根分区舒服很多。2.3 ESP引导分区的处理原则别动它也别忽略它UEFI引导下Windows会在磁盘头部建一个EFI System Partition也就是ESP分区通常100MB到几百MBFAT32格式。在Windows磁盘管理器里看不到盘符但在Ubuntu安装器里能看见挂载点一般会是/boot/efi。这是Windows和Ubuntu引导程序的共同载体。ESP分区的处理原则简单到只有两句不要格式化它不要删掉它。安装Ubuntu时如果走手动分区要把ESP分区设成/boot/efi挂载点不格式化类型保持efi。如果手动分区时不给ESP设置挂载点安装器通常也能自动检测到并把它当EFI分区用但自己指定更可控。顺便说一个很常见的翻车操作有人看到ESP分区觉得没用格式化或者删了结果装完Ubuntu之后Windows也起不来了。这时候不是Windows系统坏了是它的引导文件没了需要用Windows安装盘修复引导。虽然用后面讲的boot-repair修复流程也能重建但过程比一开始不动它要麻烦得多。3. 制作启动U盘与BIOS设置这一步决定你能不能进安装界面3.1 Rufus、Ventoy、dd命令三种写入方式的取舍制作启动盘最忌讳的是用Windows自带的格式化然后直接把ISO解压复制进去这样百分之百引导不了。需要用镜像写入方式把ISO烧录到U盘。Rufus是Windows下最主流的工具。打开后选择设备选好Ubuntu ISO分区类型这一栏UEFI电脑选GPTLegacy老电脑选MBR。目标系统类型选UEFI非CSM文件系统保持FAT32。关于写入方式建议在Rufus弹窗里选DD镜像模式而不是ISO镜像模式实测DD模式对Ubuntu的兼容性更好尤其在22.04之后的版本上。Rufus写入过程中如果提示下载额外文件联网让它下就行。Ventoy是另一种思路把U盘做成Ventoy启动盘之后直接把ISO文件拷进去就能启动不用反复格式化很适合经常装多个发行版的人。但它对Secure Boot的兼容性偶尔出问题如果你U盘引导阶段卡死先看看Ventoy版本是不是太老更新到新版一般能解决。如果你手上正好有Linux机器终端执行sudo dd ifubuntu-24.04-desktop-amd64.iso of/dev/sdX bs4M statusprogress注意of后面是U盘设备名比如/dev/sdb不是分区名/dev/sdb1。dd命令没有确认机制写错设备会把数据清空执行前一定用lsblk仔细看清楚U盘对应的设备名。3.2 BIOS里的典型设置项不同品牌BIOS界面差异很大但需要关注的设置项就那么几项。Fast Boot/Quick Boot关闭防止开机直接跳过U盘检测。Secure Boot关闭理由前面说过。SATA Mode/VMD Controller如果之前是RAID模式切到AHCI没有这个选项就跳过。Boot Mode保持UEFI不要切到Legacy或CSM除非你能明确说出自己为什么要切。USB Boot开启默认一般就是开。保存退出后开机按F12/F11/F10/F2等快捷键进一次性启动菜单选择带UEFI前缀、带U盘品牌型号的启动项。部分联想、戴尔电脑需要在BIOS里把U盘项移到第一启动项或者开启Boot Menu快捷键后再选。启动菜单里有时候会同时出现两条U盘项一条带UEFI前缀一条不带。UEFI电脑一定要选带UEFI前缀那条选错了的表现通常是黑屏或者转一圈又回到Windows。3.3 启动盘做好了却引导失败常见原因排查现象可能原因处理启动菜单里没有U盘U盘格式与Boot Mode不匹配用Rufus检查分区类型UEFI对应GPTLegacy对应MBR选U盘后黑屏无反应显卡驱动兼容问题在GRUB菜单按elinux行末尾加nomodeset再启动选U盘后直接进WindowsU盘启动项没被识别或顺序不对BIOS里手动选UEFI U盘项或用DD模式重写U盘U盘读取到一半卡死USB3接口兼容性问题换USB2.0接口试或者换一个U盘Ventoy引导黑屏Ventoy兼容性问题换用Rufus DD模式写入这些坑我基本都踩过。最无语的一次是换了三个工具写同一个ISO都不行最后发现是U盘本身扩容盘容量是假的写入过程其实早就坏了。如果以上方法都试过还不行建议放弃那个U盘换一个。4. Ubuntu安装全过程实操从试用到分区的每个关键选择4.1 进入安装器后先做“试用”不是浪费时间从U盘启动后你会先看到GRUB界面选Try Ubuntu还是Install Ubuntu我的建议是先选试用。进入live桌面后第一件事是连接WiFi确认无线网卡能不能正常工作再点开设置看看显示器分辨率和声音状态。如果这些硬件在live环境里就不工作装进硬盘后基本也不会自动变好早点发现可以提前查驱动兼容方案。确认没问题后再双击桌面上的“安装Ubuntu”图标。语言选简体中文还是English都行但键盘布局建议选English(US)。如果你不用这个布局后面输入密码和命令的时候会很痛苦尤其密码里带符号时键盘布局错一个都可能解不开系统。安装界面会问是否勾选“安装Ubuntu时下载更新”建议不勾。安装器默认勾选如果网络一般下载更新会拖非常久。装完系统后改用国内镜像源再更新速度会快得多。Ubuntu 24.04的新安装器和20.04/22.04界面差距比较大但核心流程一致。到了安装类型这一步选择“手动安装”或者某些版本里的“Something else”。如果你看到的是“清除整个磁盘”或“与Windows共存”这类自动选项对新人来说不建议选可控性最差的反而是自动选项。4.2 分区环节实操手动分区的流程与参数手动分区界面会列出所有磁盘和分区。先找到你之前压缩出来的未分配空间大小应该和你压缩时输入的一致。如果你有多块硬盘一定要确认是不是目标盘选错盘会把另一个盘的数据全部格式化这个环节是双系统安装中最不该出错的地方。然后在未分配空间上依次创建分区第一个分区用于swap交换空间大小填8192MB也就是8GB。第二个分区作为系统根目录大小填剩余全部或者按方案表填60GB文件系统ext4挂载点/。如果采用/home独立方案再建一个ext4分区挂载点填/home。创建完分区后回到主界面最下方有“安装启动引导器的设备”保持默认的整块磁盘比如/dev/nvme0n1不要改成U盘或某个Windows分区。如果需要手动指定ESP挂载找到Windows的EFI分区挂载点设为/boot/efi千万不要勾格式化。最后点“现在安装”安装器会弹出一个窗口明确列出会被格式化、被修改的分区。这一步必须逐行看如果里面出现了你的Windows数据盘比如D盘、E盘立刻取消。只允许出现你要格式化的根分区和swap分区。补充一个很多人纠结的点逻辑分区和主分区怎么选GPT磁盘下两者没有实际区别安装器默认给什么就是什么不用管。4.3 NVMe硬盘识别不到的经典解法Intel RST/RAID模式如果你打开分区界面发现整块硬盘都是空的或者只看到U盘又或者提示没有检测到任何设备十有八九是Win11笔记本的Intel RST在作怪。Intel RST会把NVMe硬盘做成RAID模式Linux默认内核看不懂这种RAID虚拟盘所以硬盘列表是空的。解法是把BIOS里的SATA Mode或VMD Controller从RAID改成AHCI。但直接改Windows大概率蓝屏错误代码0x0000007B。正确顺序是第一步在Windows下以管理员身份打开命令提示符执行bcdedit /set {current} safeboot minimal第二步重启进BIOS把SATA Mode从RAID改成AHCI保存退出。第三步Windows会自动进入安全模式。在安全模式里以管理员身份打开命令提示符执行bcdedit /deletevalue {current} safeboot第四步重启回正常Windows确认C盘能正常访问。之后再从U盘启动Ubuntu安装器就能看到NVMe硬盘了。整个过程看着绕原理其实就是通过安全模式让Windows在AHCI驱动下重新加载绕过切换模式时的蓝屏问题。如果你不先设safeboot切换后Windows十有八九会蓝屏。有些品牌BIOS上这项叫VMD Controller第11代及之后的英特尔笔记本上很常见。如果你不想切AHCI还有一个临时办法Ubuntu live环境里安装mdadm驱动有时能识别RAID模式但实测兼容性不稳定不是所有机器都认。我的建议是直接切AHCI一劳永逸。5. 装完没有引导菜单排查链路和修复方案一次讲清5.1 重启后直接进Windows先按这个顺序排查装完Ubuntu提示重启拔掉U盘结果开机还是直接进了Windows这是双系统最经典的翻车现场。不要急着重装按这个顺序排查第一步进BIOS的启动项顺序看有没有一个叫ubuntu或者Ubuntu Linux Boot Manager的启动项。如果有把它移到第一位重启后就能看到GRUB菜单。第二步如果BIOS里没有ubuntu启动项回忆一下安装时“安装启动引导器的设备”有没有被改过。如果当时选了Windows系统分区或U盘引导文件就会写错位置。第三步如果BIOS里连ubuntu选项都没有用启动U盘进入live环境按下面的修复流程重建引导。很多人一遇到没有引导菜单就重装其实第一步就能解决一半问题。启动项顺序不对不是系统没装好只是GRUB没有被最先加载。如果你在BIOS启动项里看到ubuntu但选中之后报“找不到文件”或者进入grub rescue界面那才是真正的引导文件损坏需要手动修复。5.2 用boot-repair一条命令修复引导boot-repair是目前最省心的引导修复工具。从Ubuntu启动U盘进入试用环境联网后打开终端依次执行sudo add-apt-repository ppa:yannubuntu/boot-repair sudo apt update sudo apt install -y boot-repair boot-repair出现界面后点Recommended repair它会自动检测ESP分区、重新安装GRUB、更新配置文件整个过程通常几分钟。如果修复过程中提示要关闭Secure Boot按提示进BIOS操作或者重启进BIOS关掉后再进live环境继续。修复完成后终端会显示类似“Please reboot”的提示重启拔掉U盘正常情况下就能看到GRUB菜单了里面会同时列出Ubuntu和Windows Boot Manager两项。boot-repair有一个特点它会自动创建一份启动日志并生成一个在线链接。如果你修复失败可以把链接贴到社区求助别人能直接看到你的分区状态和引导配置。我自己排查问题时就经常先看这个日志比自己盲猜快很多。5.3 手动grub修复chroot流程与常见错误如果不想安装PPA或者boot-repair报错可以手动修复。流程是启动到live环境用lsblk确认根分区和EFI分区的设备名。假设根分区是/dev/nvme0n1p5EFI分区是/dev/nvme0n1p1执行sudo mount /dev/nvme0n1p5 /mnt sudo mkdir -p /mnt/boot/efi 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 --targetx86_64-efi --efi-directory/boot/efi --bootloader-idubuntu update-grub exit sudo umount -R /mnt常见错误就这几个grub-install提示找不到EFI目录说明/mnt/boot/efi没挂成功检查EFI分区设备名对不对。update-grub提示找不到os-prober先编辑/etc/default/grub把GRUB_DISABLE_OS_PROBER改成false再执行update-grub。chroot后提示bash: grub-install: command not found先执行apt install grub-efi-amd64再试。修复后BIOS里还是没有ubuntu启动项可以用efibootmgr手动添加引导项不过grub-install一般会自动写NVRAM条目。手动修复看着复杂其实只要把挂载顺序理清逻辑很清晰。我第一次操作时卡在挂载/boot/efi这一步原因就是设备名看错多花了一个小时。所以动手前一定仔细看lsblk输出别猜。6. 双系统装完只是开始这些高频问题值得提前知道6.1 Windows和Ubuntu时间错乱8小时的根因与修复装完双系统最常见的现象是切到Windows发现时间慢了8小时切回Ubuntu又快了8小时。这不是主板电池没电也不是系统坏了而是两个系统对硬件时钟的解释方式不同。Windows默认把硬件时钟当作本地时间Linux默认把它当作UTC时间同一个硬件时钟两边显示就差出一个时区。最简单的修复是在Ubuntu里执行一条命令timedatectl set-local-rtc 1 --adjust-system-clock这样Ubuntu也会按本地时间解释硬件时钟两边就一致了。但更符合Linux习惯、也更推荐的方法是反过来让Windows使用UTC。在Windows管理员命令提示符里执行reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_DWORD /d 1 /f然后重启。这两个方案都能解决问题区别在于第一条命令会让Ubuntu的时区处理不够正统第二条更接近服务器环境的约定。我自己用的是第二条改完就再没出过问题。如果你改完仍然不对再打开Ubuntu的设置-日期与时间确认自动时区是开启状态。还有一个容易被忽略的坑主板BIOS里的时间如果本身就不准装完双系统也会被两个系统反复纠正所以顺手把BIOS时间调准确。6.2 显卡驱动相关的黑屏问题处理如果安装Ubuntu时一切正常重启后却黑屏或卡在登录界面最常见的原因是显卡驱动问题。NVIDIA显卡在桌面版Ubuntu上默认用的是开源nouveau驱动性能和兼容性都不太够。解决方法是先通过“nomodeset”参数启动开机在GRUB菜单选中Ubuntu后按e找到以linux开头的那一行在末尾加上nomodeset按CtrlX或F10启动这样能进系统。进去之后有两种装驱动的方式。第一种是图形化的打开“软件与更新”切到“附加驱动”标签页会列出可用的NVIDIA驱动选中proprietary版本点击应用更改。第二种是命令行的执行sudo ubuntu-drivers autoinstall。装完重启正常情况下就能正常驱动独显了。还有一部分笔记本是AMD显卡或Intel核显出现显示异常可以先试同样的nomodeset参数如果正常说明是内核自带驱动的兼容问题。老实说显卡这个坑很难给一个通吃的答案因为和笔记本型号、内核版本都有关系。我能给的建议是装驱动前先记录当前内核版本执行uname -r如果更新内核后黑屏用U盘live环境把旧内核设回默认启动至少还能进系统。6.3 忘记密码、环境变量坏了这类救急操作双系统使用一段时间后最常见的两个救急场景一个比一个急。忘记登录密码不用重装。重启在GRUB菜单里选Advanced options for Ubuntu进recovery mode选root进入root shell然后执行mount -o remount,rw / passwd 你的用户名输入两遍新密码后重启。如果GRUB菜单没显示Advanced options开机时长按Shift或者UEFI模式下狂按Esc能调出菜单。环境变量配置错误导致什么都跑不了比如在.bashrc或profile里写错了PATH会看到bash: ls: command not found这类提示。先别慌按CtrlAltF3切到文本终端用完整路径/bin/echo $PATH看看当前PATH再修改配置文件。如果图形界面都进不去就用recovery mode的root进入把.bashrc里最后出错的那行注释掉重启就好。这两个操作都很简单但关键前提是别在慌乱中把系统重装了。遇到问题先重启进recovery mode大部分配置类问题都能通过root shell解决。6.4 我实际用下来对双系统的判断与建议对我来说WindowsUbuntu双系统最大的价值是两个系统都能用完整硬件性能没有虚拟机那层性能损耗也不存在WSL2在某些内核特性上的缺失。但代价是切换系统要重启而且维护成本确实比单系统高。所以我的判断是如果你对Linux的需求只是偶尔跑命令、调试数据库先在虚拟机里或者WSL2里体验就够了如果你要做嵌入式开发、ROS、深度学习推理这类需要直接接触硬件和Linux内核的工作双系统才是顺手的选择。如果决定要装我会再啰嗦一遍核心原则重要数据永远不要只放在Ubuntu单侧建议定期备份/home和/etc下的关键配置新系统装完后第一时间把apt源换成国内镜像执行sudo apt update sudo apt upgrade想给系统上保险的话装一个Timeshift做定时快照。这些动作做完之后就算折腾坏了恢复也就是十几分钟的事。最后分享一个小技巧装好双系统后在BIOS里把默认启动项设成GRUB让开机有选择余地如果你某次想直接进Windows开机按F12选Windows Boot Manager就行不用每次都在GRUB菜单里多按一下。这个用法已经完全成为我的习惯了。
返回列表