我折腾双系统也有七八年了,从最早的MBR+BIOS时代一路装到现在UEFI+GPT时代,踩过的坑攒起来能绕电脑桌两圈。这次借装Ubuntu 20.04 LTS的机会,把整套流程和关键原理拆开揉碎讲清楚。这篇教程不光是"照着点下一步",更重要的是让你理解每一步为什么要这么做。装系统这件事,懂了原理之后,以后再遇到任何Linux发行版都能举一反三,遇到引导问题也不至于两眼一抹黑。
先说清楚这篇教程的适用范围:你的电脑是win10系统,主板支持UEFI引导,硬盘是GPT分区表,目标是在保留win10不动的前提下,安装Ubuntu 20.04 LTS组成双系统。这是目前最主流、兼容性也最稳的组合方式。文章会涉及U盘启动盘制作、BIOS设置、Ubuntu分区、GRUB引导修复等内容,适合有一定电脑基础但第一次碰Linux的人。哪怕你是纯小白,只要跟着步骤走,别跳步,基本不会出问题。
1. 安装前准备:硬件、镜像、U盘一个都不能凑合
1.1 先确认你的电脑支持UEFI和GPT
装双系统之前,最重要的不是下载镜像,而是先搞清楚自己电脑的启动方式。现在市面上2015年以后出厂的电脑,绝大多数都支持UEFI启动,硬盘也默认用的是GPT分区表。你可以打开win10的磁盘管理器,右键点击"磁盘0",如果弹出菜单里有"转换成MBR磁盘"这个选项,说明当前是GPT分区表;如果显示的是"转换成GPT磁盘",说明还是MBR。另外也可以在win10的"系统信息"里查看BIOS模式,显示"UEFI"就对了。
为什么非要UEFI+GPT?简单说,UEFI是取代传统BIOS的新一代固件接口,启动速度更快,支持的硬盘容量更大,安全机制更完善;GPT则是配合UEFI使用的分区表格式,最大支持18EB的磁盘容量,关键是它自带冗余分区表,容错性比MBR强得多。两者是配套关系,就像USB-C接口和USB-C线缆,形态匹配才能正常工作。如果你的电脑还在用老式BIOS+MBR,这篇文章的步骤不完全适用,那些老机器装Linux可以直接跳过UEFI设置,分区也用MBR方式,思路类似但细节不同。
实际安装中,最常见的翻车点就是"BIOS设置UEFI启动,但U盘是用MBR方式写入的"或者反过来,导致系统根本无法引导。后面制作启动盘的时候我会专门说这个坑。
1.2 下载Ubuntu 20.04 LTS官方镜像并校验
Ubuntu 20.04 LTS的镜像可以直接从官网下载,进入页面后选择Desktop版本即可。ISO文件大概2.6GB左右,下载速度取决于你的网络情况。建议不要从第三方网站下载镜像,官网文件的哈希值公开可查,虽然Ubuntu官方不强制校验,但养成校验哈希的习惯总没错,尤其是在网络环境复杂的情况下。Windows下可以用PowerShell自带的Get-FileHash命令来校验,或者用HashCalc这类小工具。
我在下载镜像时一般只用官方源,因为第三方源偶尔会给出精简版或带捆绑软件的定制版,对新手来说是巨大的坑源。官网地址就不用我多说了,搜索引擎一搜就能找到。顺便提醒一句,如果你在国内,官网下载速度不理想的话,可以选择阿里云镜像站、清华TUNA镜像站等国内镜像,它们同步官方源,文件内容完全一致,但速度更快。
下载完成后重命名一下ISO文件,比如ubuntu-20.04.6-desktop-amd64.iso,方便后面识别。镜像中的amd64代表64位系统,现在基本没有32位机器的用武之地了,放心用这个。
1.3 制作启动U盘:Rufus参数别乱改
制作Ubuntu启动U盘,Windows下我推荐用Rufus,开源免费,体积小,功能强。下载Rufus后用管理员身份运行,插入一个至少8GB的U盘(建议16GB以上,因为后续你可能会在Live环境里做点别的)。在Rufus界面里,设备选你的U盘,引导类型选"磁盘或ISO映像",点击选择按钮定位到下载好的Ubuntu ISO文件。
这里有一个关键参数需要手动确认:分区类型和目标系统类型。Rufus会自动根据ISO信息选择推荐值,但有时会识别成MBR,这时你需要手动改成GPT分区,目标系统选UEFI(非CSM)。因为我们的目标是UEFI + GPT组合,U盘的分区方式最好也保持一致。如果你在BIOS里开了CSM兼容模式,那U盘用MBR也能启动,但我不建议开CSM,那会让启动流程变复杂,而且Ubuntu的性能和兼容性反而容易出问题。
文件系统格式Rufus一般会选FAT32,这是UEFI启动的标准要求,不用改。簇大小保持默认,卷标随意。所有参数确认无误后点击开始,Rufus会提示你U盘上的数据会被清空,确认后等待写入完成即可。整个过程大约需要几分钟,取决于U盘的写入速度。
我遇到过不少人在这一步偷懒,直接用UltraISO或Win32DiskImager写U盘。不是不能用,但Rufus对UEFI启动的兼容性处理得最好,生成的启动盘几乎不会被BIOS拒认。既然都折腾到装系统这一步了,工具选对能省下大量后续排查时间。
2. 深入理解UEFI + GPT:为什么这对组合是现在的标配
2.1 UEFI的启动流程和传统BIOS有什么区别
传统BIOS的启动流程是:开机→BIOS自检→读取硬盘第一个扇区(MBR)→执行引导代码→加载操作系统。这个流程的瓶颈在于,MBR只有512字节,里面既要有分区表又要放引导代码,空间极度紧张,而且一条链路上任何一个环节出问题,整个系统就启动不了。
UEFI的启动流程完全不同:开机→固件初始化→读取NVRAM中的启动项→直接运行EFI应用程序。引导文件是放在EFI系统分区(ESP分区)里的,ESP分区采用FAT32文件系统,可以从里面加载引导管理器(比如GRUB、Windows Boot Manager)。这意味着引导程序不再受512字节限制,功能可以做得非常强大,也支持图形界面、网络引导、安全启动等高级特性。
UEFI还有一个重要特点——CSM(兼容性支持模块)。开启CSM后,UEFI可以兼容传统BIOS的启动方式,但既然我们走GPT路线,就干脆把CSM关掉,让系统完全按UEFI方式来。特别是Ubuntu 20.04在纯UEFI模式下安装,引导配置会写得非常干净,后续修复也容易。
2.2 GPT分区表的几个关键点
GPT分区表相比MBR的核心改进有三点:分区数量不再受限(MBR只能建4个主分区)、单分区容量支持到EB级别、分区表自带冗余备份。这些特性对双系统方案至关重要,因为双系统至少需要给Windows保留系统分区、MSR分区(微软保留分区)、ESP分区,再给Ubuntu划分根分区和swap分区,分区数量早就超过4个了。
GPT还有一个细节值得知道——ESP分区是共享给多个操作系统使用的。Windows和Ubuntu的引导文件其实都放在同一个ESP分区里,只是各自放在不同的目录下。Windows的引导文件在\EFI\Microsoft,Ubuntu的GRUB引导文件在\EFI\ubuntu。开机时,UEFI固件通过NVRAM里的启动项记录找到GRUB或Windows Boot Manager,这就是双系统的引导切换机制。
安装Ubuntu时,安装程序会自动识别已有的ESP分区,并向其中写入GRUB引导文件,同时把自己追加到UEFI启动项里,这个过程理论上全自动,但前提是ESP分区存在且状态正常。所以如果你之前的Windows启动有问题,或者ESP分区的文件损坏,一定要先修好Windows引导再装Ubuntu,否则两个系统都会受影响。
2.3 常见误区:UEFI与GPT不匹配会怎样
UEFI固件本身有能力读取GPT磁盘上的引导文件,但如果磁盘是MBR,UEFI通常只在开启了CSM的情况下才会尝试引导它,纯UEFI模式直接拒绝。反过来,传统的BIOS无法识别GPT磁盘,只能从MBR启动。这就是为什么"UEFI + GPT"和"BIOS + MBR"必须成对出现。
实际装系统时报错"无法安装Windows,因为这台电脑的磁盘布局不受UEFI支持",本质上就是安装介质或目标磁盘的分区方式与固件模式不匹配。对于Ubuntu的安装,同样的问题会表现在启动U盘无法引导,或者在分区界面里找不到空闲空间。所以要提前理清楚:你的电脑固件是UEFI,磁盘是GPT,U盘也按GPT制作,三条腿都对齐了,后面才顺。
3. Windows侧的准备工作:别让win10在安装过程中捣乱
3.1 关闭win10快速启动
Windows的快速启动(Fast Startup)是一个混合关机功能,表面上是关机,实际是休眠内核会话。这个功能对Windows自己没用,但对双系统是个隐患:它会导致Windows没有真正释放对硬盘的控制权,Ubuntu安装程序有时会检测到磁盘处于休眠状态而拒绝挂载NTFS分区,或者安装完成后进入Ubuntu时无法访问Windows的分区。
关闭方法:进入控制面板 → 电源选项 → 选择电源按钮的功能 → 点击"更改当前不可用的设置" → 取消勾选"启用快速启动" → 保存修改。另外还建议在管理员命令行里执行powercfg /h off来彻底禁用休眠文件,但这一步不是必须的,如果你还想用Windows的休眠功能,只关快速启动就够了。
3.2 压缩出一块空间给Ubuntu
Ubuntu安装需要一个未被使用的空闲空间,这块空间最好是未分配的(unallocated),而不是简单的空分区。在win10磁盘管理器里,右键选择空间比较大的分区(一般是C盘或D盘),选择"压缩卷",输入要压缩的大小。这里的大小建议结合你的实际需求来确定:20GB只能勉强装个系统,日常使用至少40GB,如果打算装一些开发环境,建议给80GB以上。
我自己的习惯是给Ubuntu分120GB,其中根分区100GB,swap分配按内存大小的1-2倍。如果你内存是16GB,swap给16GB够用;如果内存只有8GB,swap建议给16GB比较好,避免内存溢出时系统卡死。
压缩完成后,磁盘管理器里会看到一块黑色的"未分配"空间,这块空间先不用建分区,留给Ubuntu安装程序自己处理。强烈不建议在Windows下预先创建ext4分区,因为Ubuntu安装程序对已存在的Linux分区处理不一定干净,而且Windows磁盘管理器并不原生支持ext4,操作容易出错。
3.3 备份和检查磁盘健康状况
虽然双系统安装一般不会破坏Windows数据,但重装系统这种事永远有意外。操作之前,把重要数据备份到移动硬盘或网盘,这是最基本的保底动作。另外检查一下磁盘健康状况,可以用CrystalDiskInfo这类工具查看SMART信息,如果出现黄色或红色警告,先解决磁盘问题再做系统安装,否则装好了系统也是白搭。
还有一点容易被忽视——BitLocker。如果你在Windows上启用了BitLocker加密,且系统盘被加密了,安装Ubuntu时引导信息无法写入,Windows分区可能无法挂载。最好在安装前临时关闭BitLocker,等双系统装好后可以重新开启。坦白说,双系统场景下我不建议用BitLocker加密系统盘,因为每次GRUB加载Windows时都会多一道解密验证,麻烦且风险不小。
4. BIOS设置:Secure Boot和启动顺序是关键
4.1 怎么进BIOS/UEFI设置
现在的电脑进入UEFI固件设置一般有两种方式:一是开机时按快捷键(戴尔、联想、惠普通常是F2或F12,华硕是Del或F2,微星是Del,具体看主板品牌),二是在win10里设置→系统→恢复→高级启动→立即重启,然后在选项里选"使用设备"或"疑难解答→高级选项→UEFI固件设置"。第二种方式最稳妥,不会错过时机。
如果你选择按快捷键进BIOS,开机时可能会遇到"按F2无效"的情况。这通常是因为你的USB键盘在POST阶段还没被识别,或者按键时机太早太晚。解决办法是尝试按着F2不放再开电源,或者换一个PS/2接口的老键盘(新主板一般都没有PS/2了,那就换个USB接口试),另外有些主板需要在BIOS里开启USB键盘支持,但那个选项出厂默认就是开的。
4.2 关闭Secure Boot
Secure Boot是UEFI引入的安全机制,它要求所有引导程序都有合法的数字签名。Windows的引导程序有微软签名,当然没问题,但Ubuntu的GRUB引导程序签名的兼容性就比较复杂。虽然Ubuntu 20.04的引导程序也有签名,理论上可以在启用Secure Boot的情况下安装和启动,但实际安装过程中我见过太多机器在Secure Boot开启时引导不了,或者安装完成重启后直接卡在GRUB界面。
稳妥起见,直接进BIOS把Secure Boot设为Disabled。这个选项通常位于"Boot"或"Security"选项卡下,有些主板把它叫做"安全启动"或"Secure Boot Control"。关闭后保存退出。这个操作不会影响Windows启动,因为Windows支持在没有Secure Boot的情况下正常运行,只是系统在Windows里显示"安全启动未开启"而已。
4.3 设置U盘优先启动
BIOS里的启动顺序设置,目的有且只有一个:让电脑从U盘启动,进入Ubuntu Live环境。把U盘移动到启动顺序第一位,保存退出。如果你用的是一块新型主板,启动菜单键一般可以直接列出所有启动设备,不用改顺序,直接选U盘就行。
这里要注意U盘启动项的显示名称,如果出现两个U盘选项(一个带UEFI前缀,一个不带),请选择带UEFI前缀的那个。原因就是我们前面反复强调的:我们要的是UEFI模式启动。选择不正确,可能会进入传统BIOS模式的Ubuntu安装过程,导致系统以错误的引导方式写入,后续启动会变得很乱。
5. Ubuntu 20.04 LTS 安装全过程详解
5.1 进入Live环境后的第一件事
从U盘启动后,会看到Ubuntu的GRUB引导菜单,选择"Try or Install Ubuntu"进入Live环境。这一步有两个选项:Try Ubuntu和Install Ubuntu。我建议先选Try Ubuntu,因为可以在安装前检查一些基本信息。打开终端,输入lsblk看看磁盘布局,确认能正常识别到Windows的磁盘和ESP分区;再输sudo fdisk -l看看分区类型,是否是GPT。
联网方面,如果你用无线网络,先在右上角连上Wi-Fi。安装过程中Ubuntu会尝试下载更新和第三方驱动,网络起着决定性作用。如果目前Wi-Fi信号弱或者不稳定,建议直接用网线连接,能避开很多网络问题。
5.2 安装类型必须选"Something else"(手动分区)
Ubuntu安装器一般会给你几个选项:"Install Ubuntu alongside Windows Boot Manager"(自动安装)、"Erase disk"(擦除磁盘)、"Something else"(手动)。如果你选自动安装,安装器会自己缩小Windows分区并划分空间,这在某些情况下能跑通,但对分区布局的控制力为零。我一直推荐手动分区,因为双系统的长期可靠性需要你对每个分区的位置和大小了然于胸。
选"Something else"后,你会看到磁盘分区表。找到之前压缩出来的未分配空间(它显示为"free space")。接下来我们要在这个区域创建以下分区:
- EFI系统分区:如果安装器检测到已有的ESP分区(一般是一个FAT32格式、大小在100MB-500MB的挂载在
/boot/efi的分区),那就不要新建,直接让它复用已有ESP分区。如果没有检测到,需要手动在空闲空间里划一个500MB的分区,类型设为"EFI System Partition"。 - 根分区
/:大小根据你的需求设定,文件系统用ext4,挂载点选/。 - Swap分区:大小按内存大小或两倍内存,类型选"swap"。
- 家目录
/home(可选):如果你有大量个人文件,建议单独分一个/home,隔离系统数据和用户数据,以后系统升级或者重装,家目录的数据还在。
分区完成后,下面有一个"Device for boot loader installation"下拉框,这个选项很关键——它决定Bootloader装到哪里。在UEFI启动模式下,引导程序应该写入ESP分区,所以选择那个已有的ESP分区设备(比如/dev/sda1),注意不要选整个磁盘/dev/sda,那是传统BIOS模式下的选择方式。选错了,轻则引导失败,重则把Windows的引导搞坏。
最后点击"Install Now",安装器会列出即将执行的操作,确认无误后继续。
5.3 时区、键盘布局和用户信息设置
安装过程会依次询问时区、键盘布局和用户名密码。时区选择Asia/Shanghai,键盘布局默认English (US)就可以,除非你用非英文布局的键盘。用户名设置方面,注意安装器会生成一个机器名(hostname),它出现在终端提示符里,可以是任意组合,但不建议太复杂,纯小写字母加连字符最稳妥。
创建用户时会要求设置密码。这个密码就是你以后sudo提权用的密码,也是登录系统的密码,务必记住。密码强度建议不要太复杂,但也不能太随意,毕竟这是你系统的第一道门。
5.4 安装过程中的常见等待与网络下载
点完继续后,系统开始安装。这一步要做的第一件事就是等待。安装过程中有一个选项是"Download updates while installing Ubuntu",这个建议勾选,但需要注意,如果网络慢,安装时间会成倍增加。还有"Install third-party software for graphics and Wi-Fi hardware"选项,这个也建议勾选,尤其是NVIDIA显卡用户,因为Ubuntu默认的开源驱动只能让显卡亮屏,没有硬件加速,性能很差,勾选后安装器会顺便把闭源驱动装上。
安装时间取决于硬件性能,一般10-30分钟不等,安装完后点"Restart Now"。如果提示"Please remove the installation medium, then press ENTER",按回车重启即可。
6. 双系统的引导机制:GRUB和Windows Boot Manager的共处之道
6.1 重启后的第一个引导界面
重启后会看到紫底白字的GRUB引导菜单,里面有Ubuntu(默认)、Advanced options for Ubuntu,还有Windows Boot Manager(或者显示为Windows 10)。这就是整个双系统引导的核心界面。时间默认10秒,你可以用方向键选择要进入的系统,也可以按回车直接启动Ubuntu。
如果你的GRUB菜单里没有Windows Boot Manager这一项,别慌,很可能只是启动项检测不够及时。可以先进入Ubuntu,然后在终端里输入sudo update-grub,这个命令会重新扫描所有磁盘,把Windows的引导信息加入到GRUB菜单里。之后重启应该就能看到了。
6.2 GRUB是怎么做到同时引导两个系统的
GRUB是Linux生态里最常见的引导管理器。它本身存在于ESP分区的/EFI/ubuntu/目录下,开机时被UEFI固件优先加载。GRUB读取自己的配置文件/boot/grub/grub.cfg,这个文件里记录了所有可用的启动项。安装Windows双系统时,GRUB通过os-prober工具检测到Windows的引导文件,并生成对应的启动项。
执行sudo update-grub后,os-prober会自动在NTFS分区和ESP分区里搜索Windows Boot Manager的位置,然后写入一个新的menuentry配置。这个过程是自动的,但是需要能挂载NTFS分区,如果你之前没装ntfs-3g工具,Ubuntu默认其实已经带了,不需要额外处理。
6.3 如何设置默认启动系统和等待时间
Ubuntu安装完成后默认启动的是Linux。如果你希望默认进入Windows,或者想调整GRUB菜单的等待时间,可以直接修改/etc/default/grub文件。终端里运行sudo nano /etc/default/grub,找到GRUB_DEFAULT=0,把0改成你想要默认启动的菜单项序号,菜单项从0开始计数,第一个是0,第二个是1,以此类推。如果Windows是第三个菜单项,就写2。
GRUB_TIMEOUT=10控制菜单显示时间,单位是秒,可以改成5或者3。修改完保存退出,执行sudo update-grub让配置生效。注意:不同版本Ubuntu可能在配置项上有微小差异,但20.04的路径和命令是标准的。
7. 安装完成后的第一件大事:把系统调教稳定
7.1 双系统时间错乱问题与修复
装了双系统的人基本都会遇到一个问题:进入Ubuntu后,Windows的时间显示快8小时或慢8小时。原因在于Windows默认把主板时钟当作本地时间,而Ubuntu(以及大多数Linux系统)默认把主板时钟当作UTC时间。当你在Ubuntu里设置的时区是东八区,它会把硬件时钟当成UTC,然后加8小时作为本地时间;Windows却直接读硬件时钟作为本地时间,两边一交错,时间就差了8小时。
解决方案最简单粗暴的是让Ubuntu把硬件时钟当作本地时间处理。在Ubuntu里执行:
timedatectl set-local-rtc 1 --adjust-system-clock这条命令会告诉系统使用本地时间作为RTC基准,之后Ubuntu和Windows的时间就同步了。不过要注意,timedatectl会提示这种设置可能导致夏令时间题,但国内没有夏令时,所以这个提示可以忽略。执行完可以用timedatectl查看,看到"RTC in local TZ: yes"就说明成功了。
7.2 更新软件源,把apt源换成国内镜像
Ubuntu默认的软件源服务器在国外,对于国内用户来说更新速度感人。安装完系统后的头等大事,就是把apt源换成国内镜像。Ubuntu 20.04的源列表文件是/etc/apt/sources.list,推荐用清华TUNA或阿里云的镜像。
用阿里云为例,先备份原文件:
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak sudo nano /etc/apt/sources.list把里面内容替换为阿里云镜像源(到阿里云开源镜像站网站复制对应版本的sources.list内容),然后保存。接着运行:
sudo apt update sudo apt upgrade把系统更新到最新状态。这一步会下载几百MB的更新包,取决于网速,可能需要几分钟到十几分钟。更新完系统后,安装任何软件的速度都会有质的提升。
7.3 显卡驱动:NVIDIA用户必须处理的坑
如果显卡是NVIDIA的独立显卡,进入Ubuntu后大概率会遇到两种情况:要么系统用开源nouveau驱动,性能极差;要么干脆黑屏或花屏。安装显卡驱动的正确姿势如下:打开"软件和更新"(Software & Updates),切到"附加驱动"(Additional Drivers)标签页,系统会自动检测可用的NVIDIA驱动版本,选择一个标注了"proprietary, tested"的版本,点击"应用更改"等待安装完成。装完后重启,在终端输入nvidia-smi确认驱动生效,能看到显卡型号和驱动版本就是成功了。
如果驱动安装后遇到登录循环(输入密码后回到登录界面),原因多半是驱动和内核版本不匹配,可以进入recovery mode删除驱动,或者用ppa:graphics-drivers/ppa源重新安装。我这里多说一句,如果你的电脑是双显卡(Intel核显+NVIDIA独显),Ubuntu默认的桌面会话走的是Xorg,运行在核显上,独显只处理计算任务,这是正常现象,不用焦虑。
7.4 挂载Windows分区,实现在Linux里访问Windows文件
双系统最大的好处之一就是在Linux里可以直接访问Windows的文件。文件管理器里打开"其他位置"(Other Locations),能看到Windows的NTFS分区,点击挂载即可。不用担心权限问题,Ubuntu默认的ntfs-3g驱动支持读写。不过这里有个注意事项:Windows的快速启动如果没关闭,NTFS分区在挂载时可能提示文件系统不一致,需要先进入Windows系统完整关一次机(不是重启)才能正常挂载。
如果你想把Windows分区固定挂载到某个目录,可以在/etc/fstab里加一行配置,但新手阶段我建议先不折腾,直接在文件管理器里手动挂载就好,万一fstab写错了,可能导致Ubuntu开机卡在mb0` 所示。这么做有个好处,修改错配置后只是等待时间边长,不会直接卡死系统。
8.2 安装完成后重启直接进入Windows/Ubuntu
如果你安装完成重启,发现GRUB菜单消失了,直接进入了Windows,大概率是UEFI启动项顺序被Windows Boot Manager占用了第一优先级。在BIOS的启动项顺序里,把ubuntu这一项移到最上面,保存退出重启,GRUB菜单就回来了。
反之,如果你只想进Windows不想经过GRUB,也可以在BIOS里把Windows Boot Manager设为首选,这样开机直接进Windows。要进Ubuntu时,开机按启动菜单键,选ubuntu项即可。这只是启动顺序的优先级问题,两个系统的引导文件共存于ESP分区,互不影响。
8.3 双系统下从一个系统修复另一个系统的引导
这个需求很常见:Windows的引导被搞坏了,或者GRUB被覆盖了,怎么救回来?核心思路是:用另一个系统的安装介质进入Live环境,通过chroot或boot-repair工具重写引导。
修复GRUB最简单的方式是使用Boot-Repair工具。进入Ubuntu Live环境后联网,打开终端依次执行:
sudo add-apt-repository ppa:yannubuntu/boot-repair sudo apt update sudo apt install boot-repair sudo boot-repairBoot-Repair会扫描整个磁盘的引导配置,点击"Recommended repair"它会自动修复GRUB,并把Windows启动项也一并加回来。整个过程图形化,不需要手动操作,相当可靠。
修复Windows引导则稍麻烦些。如果Windows Boot Manager损坏或丢失,可以用Windows安装U盘启动,进入"修复计算机"→"疑难解答"→"高级选项"→"命令提示符",然后执行:
bootrec /fixmbr bootrec /fixboot bootrec /scanos bootrec /rebuildbcd注意:如果Windows和Ubuntu共享一个ESP分区,bootrec的修复操作可能不会影响Ubuntu的GRUB,因为两者目录独立。执行完这些命令后重启,UEFI会把两个引导项都列出来(或在BIOS里选择),双系统就都回来了。
8.4 安装时报错"您所选择的分区表可能不正确"
这个报错信息常见于在UEFI模式下安装Linux,但磁盘里已经有MBR分区表残留,或者ESP分区缺失的情况。解决办法是先确认磁盘分区表类型:在Ubuntu Live环境里打开GParted,查看设备信息,如果显示msdos(即MBR),就需要转换成GPT。
转换GPT分区表的操作在GParted里是"Device"菜单下的"Create Partition Table",选择gpt格式后执行。需要注意,这个操作会清空整个磁盘的数据,所以只适用于那些没有重要数据或已经备份好的机器。一般情况下,win10自带的磁盘转换工具(mbr2gpt)在Windows里就能完成硬盘从MBR到GPT的转换,无需动数据,但前提是系统盘格式兼容。
8.5 GRUB修复后出现minimal bash-like模式
如果GRUB引导文件损坏,进入恢复菜单时可能停在grub>提示符,而不是正常的GRUB菜单。这通常是/boot/grub/grub.cfg文件丢失或损坏。恢复方法是:进入Ubuntu Live环境,挂载根分区和ESP分区,然后chroot进去重新安装GRUB。
假设你的Ubuntu根分区是/dev/sda5,ESP分区是/dev/sda1,执行:
sudo mount /dev/sda5 /mnt sudo mount /dev/sda1 /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/sda update-grub exitchroot完重启,GRUB一般就恢复了。这个方法看着复杂,但原理其实就是"在一个系统里假装自己是另一个系统",把引导文件重新写一遍。
8.6 常见问题排查速查表
| 现象 | 可能原因 | 解决方案 |
|---|---|---|
| U盘启动后无法引导 | U盘制作方式与固件模式不匹配 | 用Rufus重新制作,分区类型选GPT |
| Ubuntu安装后开机直接进Windows | BIOS启动顺序中ubuntu项优先级低 | 调整启动顺序,让ubuntu项目靠前 |
| GRUB菜单里没有Windows | os-prober未检测到 | 执行sudo update-grub重新扫描 |
| 时间错乱8小时 | Linux默认RTC为UTC,Windows为本地时间 | 执行timedatectl set-local-rtc 1 |
| NVIDIA显卡黑屏 | 开源驱动不兼容 | 用"附加驱动"安装闭源驱动 |
| 无法挂载NTFS分区 | 快速启动未关闭或上次非正常关机 | 进Windows彻底关机,关闭快速启动 |
| 安装时提示分区表错误 | MBR/GPT混用 | 确认固件模式和分区表类型匹配,必要时转换GPT |
9. 双系统的卸载问题:哪天不用Ubuntu了怎么删干净
虽然装了双系统,但保不齐哪天你不想用Ubuntu了。删除Linux双系统这件事,很多人处理得乱七八糟,把引导文件删坏,导致Windows也进不去。正确的卸载步骤如下:
第一步,在Windows里打开磁盘管理器,删除Linux的所有分区(根分区、swap分区、EFI分区中ubuntu目录如果单独存在也一并处理),把删除后的空间重新分配给Windows分区。第二步,修复Windows引导:用Windows安装U盘进入修复命令行,执行bootrec /fixmbr和bootrec /fixboot,清掉GRUB残留的引导信息。第三步,如果有必要,在BIOS里把Windows Boot Manager设为第一启动项。
整个卸载过程中最容易出错的地方是第一步:删除分区时不小心把EFI分区里的Microsoft目录删了,或者把整个ESP分区删了。所以一定要看清楚,只删除ubuntu相关的分区和EFI目录,绝对不要碰Windows相关的分区。删除操作之前,先把/boot/efi/EFI/ubuntu备份到别处,万一删错了还能恢复。
10. 一些装系统之外的私货建议
装双系统的过程中我反复被问到的一个问题是"为什么要装双系统,虚拟机不香吗"。我的观点是:双系统和虚拟机面对的完全是两种需求。虚拟机适合偶尔用用Linux、跑个小工具的场景,缺点是无法充分利用硬件资源,游戏、大型计算、Docker这些场景性能损失明显。双系统则能做到原生性能,但切换麻烦,得重启。所以如果你是搞开发、跑深度学习、用Linux做日常主力系统,双系统是刚需;如果只是偶尔体验一下,虚拟机装个Ubuntu其实就够了。
还有一件事想提醒:在Linux里永远不要在root权限下运行三方的安装脚本或"一键优化"命令,尤其是那种来源不明的shell脚本。双系统本身就意味着你的电脑里同时存在两套系统,root权限的误操作可能同时破坏两个系统的数据。只要是拿不准的命令,先man或--help看一下,网上搜一下都是什么功能,再执行。这句话听起来像常识,但我身边真有人因为执行了网上的"Ubuntu清理缓存"脚本,把整个/usr目录删掉的。
最后说一个装完系统后的小技巧:尽早设置systemback或Timeshift等系统备份工具,对你的Ubuntu系统做一次快照。双系统环境牵一发动全身,有一次系统备份,以后再折腾驱动、乱调配置,出了事一键还原,比什么都稳。我从装好第一台双系统开始就养成了这个习惯,后面无数次帮我省下重装系统的时间。
这次的安装记录就写到这里。装双系统这件事,流程本身不复杂,但每一步都藏着前人的经验和坑。按着这篇教程走,大概率能一次成功。如果过程中卡在某个报错上,别急,先看看报错信息说的是什么,多数情况下它已经告诉你问题在哪了。祝你在Linux的世界里玩得开心。