1. 安装前准备
1.1 为什么要装双系统
装了Linux双系统之后,你会发现一个非常现实的问题:日常办公聊天用Windows,写代码跑模型用Ubuntu,两边互不干扰,这才是真正的"一台电脑,两种生活"。
这些年我帮人装过不下几十台双系统,从最老的BIOS+MBR时代一路走到现在的UEFI+GPT,踩过的坑能写一本书。今天这篇文章打算把Ubuntu与Windows双系统安装这件事彻底讲透,尤其是Ubuntu 22.04 LTS这个版本,是目前最稳定、最不容易翻车的一个选择。无论你是想学ROS机器人开发、跑深度学习,还是只是想体验Linux生态,这篇文章的思路和步骤都适用。
1.2 需要的硬件和软件清单
在我开始动手之前,先盘一下我准备的东西,这些是整个安装过程中最基础也最关键的部分:
| 物料 | 规格/版本 | 用途 |
|---|---|---|
| 电脑 | 建议16G内存、512G以上硬盘 | 同时跑两个系统必须有富余空间 |
| Ubuntu镜像 | ubuntu-22.04.3-desktop-amd64.iso | 系统安装文件 |
| U盘 | 8GB以上,USB 3.0速度更佳 | 制作启动盘 |
| 刻录工具 | Rufus(Windows下用)或balenaEtcher | 将镜像写入U盘 |
| 数据备份 | 移动硬盘或云盘 | 防止误操作丢失数据 |
我把硬盘空间的最低要求放宽到256G,但如果条件允许,512G起步会比较稳妥。Windows那边装完各种软件大概占用100G左右,Ubuntu如果还要装ROS、训练模型、存数据集,预留150G以上才不憋屈。
另外注意:如果你的电脑是10代Intel或AMD 3000系列之后的CPU处理器,选镜像的时候一定要选64位的Ubuntu 22.04 LTS或者更新的版本,老版本的内核对新硬件的兼容性会比较差。
1.3 确认电脑的引导模式和分区表类型
这个东西很多人会忽略,但它决定了后面BIOS设置的方向,非常重要。现在市面上的电脑基本都支持UEFI引导,分区表使用GPT格式。老一点的电脑才有可能是BIOS+MBR的组合。
确认方法很简单:Windows下按Win + R,输入msinfo32回车,在"系统摘要"里找到"BIOS模式"这一行。显示UEFI就是UEFI启动,显示"传统"就是Legacy BIOS。
如果是UEFI模式,安装Ubuntu时需要格外注意后面第3步的GRUB引导安装位置;如果是Legacy模式,那过程会稍有不同,后面会讲到。目前99%的新电脑都是UEFI+GPT,所以下面的教程我以这个主流方案为主线来讲。
2. 制作Ubuntu启动U盘
2.1 官方镜像下载
下载Ubuntu镜像最好去官方网站,国内也有很多高校镜像站,速度更快。下载的时候注意看版本号,我推荐22.04.3,这是个LTS(长期支持)版本,技术支持会持续到2027年,而且对各种新硬件支持得比较好。
提示:不用刻意追求最新版本。23.10或24.04这类版本虽然新,但稳定性往往不如打磨了几年的LTS版本。特别是有专业软件需求的用户,比如要在Ubuntu上装ROS,22.04正好对应ROS 2 Humble,软件源里的预编译包直接就能用,省去手动编译的麻烦。
2.2 Rufus刻录U盘的详细步骤
Rufus这个工具,我用了快十年,体积小、速度快、功能全,堪称Windows下的刻盘神器。刻录过程很简单,但有几个细节值得注意。
首先插入U盘,打开Rufus,它会自动识别设备。然后在"引导类型选择"里点击选择按钮,找到你下载的ISO文件。分区类型这一栏,如果电脑是UEFI模式就选GPT,如果是Legacy就选MBR。文件系统保持默认的FAT32即可,不需要改。
点"开始"之后,Rufus可能会弹出一个对话框问你要以什么模式写入镜像,默认的"以ISO镜像模式写入"就行。整个过程大概3到5分钟,取决于U盘速度。
刻录完成后,U盘会被分成两个分区,其中一个很小,里面就是EFI引导文件,Windows资源管理器可能只显示这个小的分区,这是正常现象,不用大惊小怪。
2.3 U盘无法引导的特殊情况处理
个别电脑会比较挑U盘,特别是用了某种冷门主控方案的情况。如果做好启动盘后发现开机不识别,先排除是不是U盘3.0接口的问题。有些主板在启动阶段对USB 3.0的识别不够及时,换到USB 2.0接口就能解决。
还有一个常见原因是安全启动会把未签名的U盘引导给拦下来,判断方法也很简单:进BIOS看Secure Boot状态,如果开启就临时关掉再试。这个后面会详细说。
3. Windows下为Ubuntu分配磁盘空间
3.1 磁盘管理里压缩卷
Windows和Linux双系统最稳妥的安装方式是先装Windows再装Ubuntu,原因不复杂:Windows的引导管理器比较霸道,它不会主动识别Linux;而Ubuntu的GRUB引导很懂事,会自动把Windows加进启动菜单。所以后装Ubuntu在逻辑上是顺理成章的。
接下来我在Windows的磁盘管理里腾出空间。右键"此电脑"选"管理",左侧找到"磁盘管理"。找一个剩余空间比较大的分区,比如D盘,右键选"压缩卷",在输入框里填上想压缩出来的大小,单位是MB。比如要分出150G,就填153600(150 × 1024)。
注意:压缩卷只能压缩每个分区后面的"未分配空间",如果某个分区的文件碎片太多,压缩出来的空间会受限。遇到这种情况,可以先做一次磁盘碎片整理,或者用第三方分区工具(比如DiskGenius)来无损调整分区大小。
压缩完成后,你会看到磁盘管理中多了一块"未分配"的区域,这块区域留着不要格式化,不要分配盘符,安装Ubuntu的时候它会自动识别。
3.2 双硬盘用户的分区策略
如果你的电脑有两块硬盘,方案可以更灵活。比如一块NVMe固态装Windows,另一块SATA固态或者机械硬盘装Ubuntu,这样两个系统物理隔离,互不干扰,启动时靠BIOS的启动项选择或者GRUB引导就可以切换。
这种方案的好处是:Windows更新不会无缘无故覆盖Ubuntu的引导,Ubuntu折腾坏了也不会影响Windows。代价是要多花一块硬盘的钱,但如果你经常折腾Linux环境,这钱花得很值。
安装时需要注意一个关键点:安装Ubuntu的时候,安装器的"安装类型"界面里,要能清楚看到两个硬盘,千万别选错盘,否则分分钟把Windows分区抹掉。我一般会在分区界面用lsblk命令确认一下设备对应关系再动手。
4. 安装Ubuntu 22.04全流程
4.1 BIOS设置与U盘启动
把U盘插上,重启电脑。开机画面出现时狂按启动热键,不同品牌的按键不一样:联想和华硕是F12,戴尔是F12,惠普是F9,微星是F11,技嘉则是F12。如果不确定,可以先查一下自己主板的启动热键是什么。
进入启动菜单后选择U盘那一项,一般带有USB字样或者U盘品牌名。如果你的启动菜单里没有U盘选项,进BIOS设置界面,找到"Boot Mode"确认是UEFI,再检查"Secure Boot"是否关闭。
Secure Boot这个选项,许多刚接触的人容易踩坑。理论上Ubuntu 22.04支持Secure Boot,但实际安装时经常因为驱动签名问题卡住,建议直接关掉。根据我的经验,关了Secure Boot能省掉一半以上的启动问题。
4.2 安装类型选择与手动分区
U盘引导进入Ubuntu后会先看到一个紫色的GRUB菜单,选第一个"Try or Install Ubuntu"。等桌面图形界面加载出来之后,桌面上有一个"Install Ubuntu"的图标,双击它开始正式的安装过程。
进入安装界面之后,语言选简体中文(我测试过这个版本,语言是本地的,装完之后可以自由切换)。键盘布局默认English (US)即可,或者选Chinese也行,这个不影响使用。网络可以不连,无线网卡驱动等系统装完再处理也不迟,特别是在没有网线的情况下。安装过程需要一路点"继续"或"下一步",直到出现"安装类型"这个关键界面。
在安装类型界面,一定要选择"Something else"(其他选项),这样才能手动控制分区。千万不要选"Erase disk and install Ubuntu"(清除整个磁盘并安装Ubuntu),除非你不想要Windows了。
进入手动分区界面后,找到之前Windows压缩出来的那块空闲分区,它会显示为"空闲"或"free space"。选中它,然后点击左下角的加号,依次创建以下分区:
| 分区类型 | 大小 | 挂载点 | 文件系统 |
|---|---|---|---|
| EFI系统分区 | 512MB - 1GB | /boot/efi | fat32 |
| 交换空间 swap | 等于内存大小或酌情 | 无 | swap |
| 根分区 / | 剩下所有空间 | / | ext4 |
EFI系统分区非常重要,GRUB引导程序需要它才能启动。如果电脑原本的Windows已经有一个EFI分区,理论上可以共用,但手动指定容易搞混,我一般是单独新建一个。交换空间如果内存小于16G,建议分和内存相同的容量;如果内存16G以上,分4G到8G就够了,或者干脆不分,Ubuntu默认也可以使用swap文件来替代。
整个分区方案完成后,在"安装启动引导器的设备"这一栏,要选择你的EFI分区所在的那块硬盘(比如/dev/nvme0n1),而不是某个具体分区。如果这里选错了,就会导致安装后启动不了系统。
4.3 正式安装过程中的注意事项
分区分好之后,点击"现在安装",系统会弹窗确认要对磁盘做出的更改。仔细核对这些更改是否正确,特别是不要出现"删除分区/dev/nvme0n1pX"这样的字样,如果看到了,说明你误选了这个分区,需要返回检查。确认无误就可以点击"继续"。
接下来会设置时区、用户名、计算机名和密码。密码建议不要太简单,因为Ubuntu里很多操作(安装软件、更新系统)都需要sudo权限,而且如果你以后要跑远程服务,弱密码是比较容易出问题的。如果勾选了"自动登录",则每次开机不用输密码,但请注意这在公共环境下不太安全。
安装过程一般耗时10到20分钟,取决于磁盘速度和网络状况。等进度条走完,系统会提示重启,这时候拔掉U盘再按"现在重启",避免又引导到安装程序。
5. 双系统启动引导配置
5.1 GRUB引导菜单的管理
安装完重启后,正常情况下会看到一个紫色的GRUB菜单,从上到下列出了Ubuntu、Advanced options for Ubuntu和Windows Boot Manager这几个启动项。默认光标停在Ubuntu上,几秒倒计时后自动进入Ubuntu。
如果你希望默认启动Windows,或者缩短/延长倒计时时间,可以修改GRUB的配置文件。终端里执行:
sudo nano /etc/default/grub找到GRUB_DEFAULT这一行。Ubuntu默认值是0,即默认启动列表中第一个系统。如果想默认进Windows,先记下Windows Boot Manager在那个菜单中排在第几个位置(从0开始计数),比如它排在第二位,那设置GRUB_DEFAULT=2。
GRUB_TIMEOUT控制倒计时秒数,默认是10,改成3或5都可以,看个人习惯。修改完成后保存退出,然后执行:
sudo update-grub这样下次启动就按新配置执行。
注意:这里的
nano是终端文本编辑器。刚接触Linux的人可能不熟悉,记住:Ctrl+O保存,Ctrl+X退出,这两步在任何文本编辑操作里都一样。
5.2 启动项缺失的修复方法
偶尔会遇到装完Ubuntu后,GRUB菜单里没有Windows启动项的情况。通常是因为之前提到的EFI分区太小或者指向不明确导致的。不要慌,进入Ubuntu后打开终端,安装一个工具:
sudo apt update sudo apt install os-prober sudo os-proberos-prober会扫描磁盘上的其他操作系统,如果它找到了Windows Boot Manager,重新运行sudo update-grub即可。如果os-prober根本没找到Windows,那就需要检查Windows所在分区的EFI文件是否完整,这时候一般需要进Windows安装U盘修复引导。
5.3 直接使用BIOS启动菜单切换系统的方案
如果GRUB引导不顺手,还有一个更简单粗暴的方法:按启动热键(比如F12),直接在弹出的BIOS启动菜单里选择。这个方案的好处是,Windows和Ubuntu的引导是完全独立的,适合希望把两个系统的引导彻底隔离的人。
用这种方式切换系统,比GRUB多一步按键操作,但胜在系统之间互不干扰,即使一个系统的引导坏了,另一个系统照常启动。
6. 双系统时间不同步问题
6.1 问题产生原因
装好双系统后,很多人会遇到一个奇怪的现象:Windows显示的时间和Ubuntu不一样,往往相差8个小时。原因是两个系统对硬件时钟(CMOS时钟)的解释方式不同。Ubuntu默认把硬件时钟当成UTC时间,然后根据时区换算成当地时间显示;Windows则直接把硬件时钟当成本地时间,不做换算。中国是UTC+8,所以两个系统显示的时间正好相差8个小时。
6.2 解决方法和校验步骤
最简单的解决方案是在Ubuntu里运行一条命令:
sudo timedatectl set-local-rtc 1这条命令的意思很直接:让Ubuntu也把硬件时钟当成本地时间使用。执行完之后重启一次,两个系统的时间就会保持一致。
如果你更喜欢玩命令,也可以在Windows下用管理员权限打开PowerShell,执行以下命令来让Windows把硬件时钟当UTC用:
reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation" /v RealTimeIsUniversal /d 1 /t REG_QWORD /f两种方案选一个执行就行,没必要两边都操作。我个人推荐用Ubuntu的方式,因为改注册表毕竟有风险,而timedatectl是系统提供的标准接口,安全得多。
修改完成之后不要急着验证,先改时间跨度比较大的时段观察一两天,确认无误了再放心使用。
7. 硬件驱动与常用配置
7.1 显卡驱动安装
如果是NVIDIA显卡,装完Ubuntu后屏幕分辨率通常很糟糕,这是没有安装专有驱动导致的。打开"软件和更新",切到"附加驱动"选项卡,系统会列出可用的NVIDIA驱动版本,选一个带"tested"标记的版本,点"应用更改"即可。这一步需要联网。
如果你更喜欢命令行方式,终端里执行:
sudo ubuntu-drivers autoinstall这条命令会自动识别显卡型号并安装合适的驱动。装完后重启,分辨率恢复正常,跑CUDA、深度学习框架就不会再报驱动相关的错了。
Intel核显和AMD显卡一般用默认开源驱动就能正常工作,不需要额外处理。
7.2 中文字体和输入法安装
虽然安装时选了简体中文,但系统自带的中文字体比较有限。如果觉得字体显示发虚,可以加装noto-fonts-cjk或文泉驿微米黑:
sudo apt install fonts-noto-cjk fonts-wqy-microhei输入法方面,Ubuntu 22.04默认使用IBus输入法框架,自带智能拼音,一般不需要额外安装搜狗输入法,除非你对词库和输入体验有比较高的要求。如果要装搜狗输入法,从官网下载deb包,双击安装,然后在设置里的"键盘"添加输入源就行。
7.3 网络问题排查
如果Wi-Fi无法连接,大概率是无线网卡驱动没有正确加载。首先到"设置">"关于"里看无线网卡型号,然后在终端里执行lspci -k或lsusb获取更详细的信息。如果是Realtek等常见网卡芯片,在软件源里启用"受限驱动",然后执行sudo apt install linux-firmware,重启后基本能解决。
用有线网络安装的时候,有时会遇到有线网卡也不识别的情况。这种情况比较罕见,多见于比较新的主板配了不常见的网卡芯片。我的经验是先用手机USB共享网络应急,装好驱动后再换回有线或Wi-Fi。
8. 安装Ubuntu时的常见问题排查
8.1 无法引导安装U盘
最常遇到的就是U盘做好了,开机却怎么都引导不进安装界面。按照优先级排查以下项目:
- 确认启动热键按对了,有些品牌的启动热键不是F12,用错了自然没反应。
- 确认U盘插在USB 2.0接口上,3.0接口在启动阶段经常不被识别。
- 确认BIOS里的启动顺序中U盘优先级排在最前面。
- 临时关闭Secure Boot再试。
- 换一个刻录工具重新制作U盘,有时候Rufus刻录跟不上新的ISO格式,用balenaEtcher或Ventoy试试。
- 确认下载的ISO完整性。可以用校验工具对比官网提供的SHA256值。
8.2 安装完成但启动不了系统
启动不了系统分两种情况。第一种是GRUB菜单根本不出现,直接黑屏或自动进Windows。这种情况多数是引导安装位置不对。解决办法是进Ubuntu安装U盘的"试用"模式,打开终端,用Boot-Repair工具:
sudo add-apt-repository ppa:yannubuntu/boot-repair sudo apt update sudo apt install boot-repair boot-repair打开后点"Recommended repair(推荐修复)",它会自动扫描并重装GRUB到正确的EFI分区,一般两三分钟就搞定。
第二种情况是出现GRUB菜单,但无论选Ubuntu还是Windows都进不去。这种情况有可能是EFI分区格式不对或者分区挂载点分配有问题。好在不需要从头来过,重新进入试用模式,用GParted图形化分区工具检查EFI分区是否是FAT32格式,如果是ext4或没有格式,把分区标记为"boot, esp"并格式化为FAT32,再跑一遍Boot-Repair即可。
8.3 Windows系统更新把引导覆盖了
Windows系统升级有时会把MBR或EFI启动项重写,导致开机直接进Windows,看不到GRUB菜单。这个问题在双系统里是老熟人。
解决思路很清晰:把GRUB恢复回启动链的最前端。进入Ubuntu的U盘试用模式,重复刚才Boot-Repair的修复流程就行。如果你想防止Windows再覆盖引导,可以进Windows的UEFI固件设置里,把Ubuntu的引导项设为首选启动项,这样即使GRUB被覆盖过一次,恢复后仍然会优先走Linux的引导链。
8.4 安装卡在紫色界面
有些电脑在启动Ubuntu安装盘时,会卡在紫色画面,或者出现黑屏只显示一下光标。绝大多数情况是显卡驱动兼容性问题。解决方法是在GRUB菜单出现时,高亮"Try or Install Ubuntu"这一项,按e键进入编辑模式,找到以linux开头的那一行,在末尾加上:
nomodeset然后按Ctrl+X或F10启动。nomodeset会让内核跳过显卡模式设置,使用基础显示驱动启动,这样就能顺利进入安装界面。安装完成后的系统中,如果同样遇到卡在启动界面的问题,在GRUB里同样按e加参数,等进系统后再调整显卡驱动即可。
9. 安装完成后的优化与建议
9.1 更新系统和软件源
装完系统第一件事,打开终端:
sudo apt update && sudo apt upgrade -y如果下载速度慢,可以考虑更换软件源。Ubuntu 22.04默认源在国外,国内用户换上国内镜像源会有非常明显的提速。在"软件和更新"里找到"下载自",选择一个距离自己近的镜像站,然后重新执行sudo apt update即可。
9.2 系统快照
装完系统并配置好基本环境后,建议做一次系统快照或备份。Ubuntu本身没有像Windows还原点那样方便的功能,但可以用Timeshift这个工具来实现类似的能力:
sudo apt install timeshift安装完创建第一个快照,以后系统搞乱了可以一键还原。配合外接硬盘或单独分区存储快照,数据安全性就有保障了。
9.3 日常维护双系统的建议
用双系统很多年后我总结了一个比较实用的维护经验:Ubuntu负责开发和数据处理,Windows负责聊天、银行客户端和打印扫描这类生活办公需求。不要把重要文件只放在系统盘,最好在Windows数据分区(比如D盘)建一个共享目录,让Ubuntu自动挂载它。
方法很简单,编辑/etc/fstab文件,把Windows数据分区挂载到Linux的共享目录下。先执行sudo blkid查看分区的UUID,然后写入配置,比如:
UUID=你的UUID /mnt/windata ntfs-3g defaults,uid=1000,gid=1000,umask=022 0 0这样两个系统都能访问同一份文件,不用反复拷贝,省心很多。
10. 常用软件与性能优化
10.1 Ubuntu下常用开发软件推荐
我是做开发工作的,平时Ubuntu里最常用的软件有这么几个:
- Git 和 VS Code,日常写代码离不开
- Docker,跑容器化服务特别方便
- Terminator,比自带终端的标签和分屏功能更强
- Flameshot,截图标注工具
- 微信和钉钉,官网都有Linux版,虽然体验不如Windows版,但基本功能都能用
- OBS Studio,录屏和推流工具,质量不输Windows端
- Spotify,听歌工具,Linux版体验很好
安装这些软件大部分都能用sudo apt install解决,微信和钉钉需要去官网下载deb包或AppImage,双击安装即可。
10.2 提升系统响应速度的优化设置
装完双系统以后,如果你觉得Ubuntu的开机速度不如Windows流畅,可以做两个简单调整。第一个是关闭开机自启动的无关服务,打开"启动应用程序"管理器,去掉不必要的项。第二个是限制日志文件大小:
sudo journalctl --vacuum-size=100M这条命令会把系统日志裁剪到100MB以内。还可以编辑/etc/systemd/journald.conf,设置SystemMaxUse=100M,让日志自动控制量级。
对于SSD固态硬盘用户,Ubuntu默认开启了TRIM支持,不需要额外配置。如果你的Ubuntu跑着大量虚拟机或容器服务,还可以使用systemd-analyze blame这条命令查看开机启动耗时,找出拖慢速度的服务再针对性地禁用。
10.3 虚拟机和WSL的补充说明
有些人会问:既然有WSL和虚拟机,为什么还要装双系统?这个问题我回答过很多次。WSL适合日常练习Linux命令、跑跑小脚本,但如果你需要完整的图形界面、硬件直通、GPU加速,或者做实时系统开发,WSL就显得不够用了。虚拟机则存在性能损失,特别是图形渲染和USB设备直连这块比较弱。双系统虽然切换要重启,但你获得的是100%的硬件发挥,对资源敏感型任务来说没有第二种选择。
如果你是初学者,还没想好要不要彻底倒向Linux,先用WSL或虚拟机体验一段时间再决定装不装双系统,这个循序渐进的路子也很务实。
11. 总结要点
装双系统看起来步骤多,其实真正关键的就是三件事:做好启动U盘、分好磁盘空间、装对引导程序。只要这三步走对,剩下的都是配置问题而不是系统问题。
我在实际操作中有一点体会很深:安装新手遇到问题时,经常会在网上搜索一条命令复制粘贴,结果越弄越乱。其实很多问题在终端里运行一条命令就能看清系统状态:
sudo fdisk -l sudo blkid efibootmgr这三条命令分别查看磁盘分区、分区UUID和UEFI启动项,是排查双系统引导问题的万能起点。
最后再分享一个建议:装系统之前不要怕备份麻烦,数据是无价的。无论是Windows还是Linux,重要资料一定要有备份,这个习惯比任何技术技巧都重要。