1. 为什么偏偏是这台机器值得折腾
手上这台 R7000P 2020 款,锐龙 7 4800H 加 RTX 2060,16G 内存,512G 固态,放在今天看不算顶配,但胜在皮实耐造,散热模组给得足,性能释放也放得开。我平时主力开发环境是 Linux,但偶尔要跑一些只有 Windows 下才顺手的工具,比如某些板卡厂商的烧录软件、部分仿真器驱动,还有几个老项目的编译链只在 MSVC 下验证过。所以双系统对我来说不是“尝鲜”,而是刚需——一台机器同时承担两套工作流,开机时选一下就行,比虚拟机省心太多,性能也是实打实的。
这篇文章面向的是手里有同款或者类似配置游戏本、想装 Ubuntu 双系统但又被各种“坑”劝退的朋友。我会把整个流程拆开揉碎,从分区方案怎么定、BIOS 里哪些选项必须动、安装时引导怎么放、装完之后显卡驱动和无线网卡怎么收拾,一直到那些网上教程很少提但实际会卡住你的细节,全部讲清楚。你不需要有很深的 Linux 底子,只要会做启动盘、敢进 BIOS 改设置,跟着走就能落地。
先说结论:这台机器装 Ubuntu 双系统,核心难点集中在三处——BIOS 里的硬盘模式与安全启动设置、分区时 EFI 引导分区的处理、装完后 NVIDIA 显卡与无线网卡的驱动适配。把这三块啃下来,剩下的都是常规操作。我前后在这台机器上装过 Ubuntu 20.04、22.04 和 24.04 三个版本,踩过的坑基本覆盖了你能遇到的大部分情况,下面按实操顺序展开。
2. 装之前必须想清楚的几件事
2.1 双系统的两种共存思路
很多人一上来就问“怎么装”,其实更该先问“装成什么样”。双系统有两种典型布局,选错了后面会很难受。
第一种是共用一块物理硬盘,从原有的 Windows 分区里压缩出一块空闲空间给 Ubuntu。优点是省硬盘、不用拆机;缺点是分区表操作有风险,一旦压缩或调整出错,Windows 可能直接起不来。而且这块盘上 Windows 和 Ubuntu 的引导会挤在同一个 EFI 分区里,后期维护要小心。
第二种是加装第二块固态硬盘,Windows 和 Ubuntu 各占一块盘,互不干扰。R7000P 2020 款机身内部有两个 M.2 插槽,加一条 1T 的固态成本不高,体验提升却非常明显:引导独立、重装互不影响、数据隔离清晰。我个人强烈推荐这种方式,尤其是你打算长期用 Linux 做开发的话。
如果你只能共用一块盘,也不是不行,但务必在动手前把 Windows 的重要数据备份到移动硬盘或者云盘。分区操作没有“撤销键”,这是血泪教训。
2.2 分区容量的合理规划
假设你走的是加装第二块盘的路子,那这块盘怎么分?我给出一个经过实际使用验证的方案,以 1T 固态为例:
| 挂载点 | 建议容量 | 文件系统 | 用途说明 |
|---|---|---|---|
| EFI 引导分区 | 512M | FAT32 | 存放 Ubuntu 引导文件,必须独立 |
| / 根分区 | 150G | ext4 | 系统和软件安装位置 |
| /home | 剩余大部分 | ext4 | 用户数据、代码、文档 |
| swap 交换分区 | 32G | swap | 内存 16G,交换区给 2 倍 |
这里解释几个关键决策。EFI 分区给 512M 是因为 Ubuntu 的引导文件加上内核更新会逐渐占用空间,256M 用久了容易满,满了就更新不了内核,这是个隐蔽的坑。swap 给 32G 而不是传统的“内存两倍”,是因为现在内存都大,休眠功能用得少,32G 足够应对编译大项目时的内存峰值。如果你不用休眠,16G 甚至 8G 也够。
根分区 150G 是考虑到 Ubuntu 装完基础系统加常用开发工具大概占 30 到 40G,再装些大型软件比如容器镜像、数据库,留出余量。剩下的全给 /home,这样以后重装系统时,只要不格式化 /home,个人数据全都在。
2.3 版本选择:LTS 还是最新版
Ubuntu 的版本策略是每两年一个 LTS 长期支持版,中间每半年一个过渡版。对双系统用户来说,无脑选 LTS。原因很简单:LTS 有五年支持周期,驱动适配成熟,社区资料多,遇到问题一搜就有答案。过渡版虽然内核新、驱动新,但生命周期只有九个月,到期就得升级,折腾成本高。
目前推荐 22.04 LTS 或者 24.04 LTS。22.04 更稳,各种教程和第三方软件兼容性最好;24.04 内核更新,对新一代硬件的支持更完善。R7000P 2020 款的硬件不算新,22.04 完全够用,我主力就是 22.04。
提示:下载镜像时认准官方渠道,别用来路不明的“优化版”“精简版”,那些往往被动过手脚,装完各种奇怪问题。
3. 动手前的准备工作
3.1 制作启动盘的正确姿势
启动盘制作工具我用过好几个,最后稳定在Rufus和balenaEtcher这两个。Rufus 在 Windows 下用,功能细,可以选分区类型和目标系统类型;balenaEtcher 跨平台,界面极简,不容易选错。
用 Rufus 制作时,有几个选项要注意:
- 分区类型选 GPT,因为 R7000P 2020 款默认是 UEFI 引导,对应 GPT 分区表。
- 目标系统类型选 UEFI(非 CSM)。
- 文件系统保持 FAT32 默认即可,Ubuntu 镜像里的文件结构 Rufus 会自动处理。
- 写入模式选DD 镜像模式,这样能保证引导信息完整写入,避免 ISO 模式可能出现的引导失败。
U 盘容量至少 8G,建议用 USB 3.0 以上的,写入速度快很多。制作过程会清空 U 盘,提前把里面东西挪走。
3.2 BIOS 里那几个必须改的选项
R7000P 2020 款进 BIOS 的方式是开机按 F2,或者关机状态下用取卡针戳机身侧面的 Novo 小孔,选 BIOS Setup。进去之后,有几个设置直接决定你能不能顺利装。
第一,安全启动(Secure Boot)。Ubuntu 官方镜像其实是支持安全启动的,但第三方驱动(尤其是 NVIDIA 闭源驱动)在安全启动下会加载失败。我的建议是先关掉安全启动,装完系统、驱动都配好了,如果你有需要再考虑开回来。关掉它省去大量签名验证的麻烦。
第二,硬盘模式。这台机器默认可能是 RAID 模式(Intel RST 或者 AMD 对应的存储模式),这个模式在 Linux 下认不到硬盘。必须改成AHCI。注意:如果你 Windows 是在 RAID 模式下装的,直接改 AHCI 会导致 Windows 蓝屏。正确做法是先在 Windows 里用安全模式切换,或者用注册表方式改,具体步骤网上有详细教程,核心就是让 Windows 先加载 AHCI 驱动再重启改 BIOS。
第三,启动顺序。把 U 盘调到第一启动项,或者开机时按 F12 手动选启动设备。R7000P 的启动菜单键是 F12。
第四,快速启动(Fast Boot)。建议关掉,否则有时 U 盘识别不出来。
改完这些,按 F10 保存退出,插上启动盘重启。
3.3 Windows 这边要做的收尾
在动分区之前,Windows 里有两件事必须做。一是关闭快速启动,在控制面板的电源选项里,取消“启用快速启动”的勾选。这个功能会让 Windows 关机时不完全释放硬盘,导致 Linux 挂载 NTFS 分区时出问题。二是关闭 BitLocker,如果开了磁盘加密,分区调整会触发恢复密钥验证,麻烦得很,先解密再操作。
另外,把 Windows 的休眠文件也关掉,命令行执行powercfg -h off,释放出休眠文件占用的空间,也避免休眠状态干扰分区。
4. 安装过程逐步拆解
4.1 启动到 Live 环境
插好 U 盘重启,按 F12 选 U 盘启动。如果一切正常,会看到 GRUB 菜单,选“Try or Install Ubuntu”。进入 Live 桌面后,先别急着点安装,先测试一下基本硬件:无线网卡能不能识别、触摸板灵不灵、声音有没有。这一步很重要,如果 Live 环境下无线网卡就不工作,装完大概率也不工作,得提前想好对策(比如用有线网,或者准备 USB 无线网卡)。
R7000P 2020 款的无线网卡如果是 Intel 的,Ubuntu 22.04 内核一般能直接驱动;如果是 Realtek 某些型号,可能需要额外装驱动。Live 环境测一下心里有数。
4.2 分区环节的精细操作
点安装,语言选中文或英文都行,键盘布局默认。到了“安装类型”这一步,选“其他选项”,手动分区。这是整个安装最关键的地方,别选“清除整个磁盘”或者“与 Windows 共存”的自动选项,自动分区容易把引导装错地方。
进入分区界面后,你会看到所有硬盘和分区。找到你准备装 Ubuntu 的那块盘(比如 /dev/nvme1n1),如果上面有旧分区,先删干净。然后按顺序创建:
EFI 分区:大小 512M,类型选 EFI System Partition,挂载点 /boot/efi。注意,如果你是和 Windows 共用一块盘,Windows 已经有一个 EFI 分区了,那就不要新建,直接选中那个已有的 EFI 分区作为 Ubuntu 的引导分区,但不要格式化它。这一点极其重要,格式化会毁掉 Windows 引导。
swap 分区:大小 32G,类型选 swap area。
根分区:大小 150G,类型 ext4,挂载点 /。
home 分区:剩余空间,类型 ext4,挂载点 /home。
安装启动引导器的设备这一项,选你新建的那个 EFI 分区所在的整块硬盘(比如 /dev/nvme1n1),不要选分区本身。如果和 Windows 共用盘,就选那块盘。
确认无误后点“现在安装”,系统会提示分区将被写入,确认即可。
4.3 安装过程中的设置
接下来是时区、用户信息这些常规设置。用户名建议用纯小写字母,别用中文或特殊字符,否则某些命令行工具会出问题。密码设一个你记得住的,因为 sudo 会经常用。
安装过程大概十几到二十分钟,取决于 U 盘速度和硬盘性能。装完后提示重启,拔掉 U 盘,重启。
4.4 首次启动与引导确认
重启后应该看到 GRUB 引导菜单,里面有 Ubuntu,通常也会有 Windows Boot Manager 的选项。如果直接进了 Windows 或者进了 GRUB 但没看到 Windows,说明引导配置有问题,后面排查章节会讲。
进 Ubuntu 后,第一件事是连网,然后打开终端执行系统更新:
sudo apt update sudo apt upgrade -y更新完重启一次,让内核和驱动生效。
5. 装完之后的驱动与优化
5.1 NVIDIA 显卡驱动的安装
R7000P 2020 款是 NVIDIA 独显加 AMD 核显的双显卡组合。Ubuntu 默认用开源 nouveau 驱动,性能差、发热大,必须换成官方闭源驱动。
最省事的方式是用 Ubuntu 自带的“附加驱动”工具。打开“软件和更新”,切到“附加驱动”标签页,等它扫描完,会列出可用的 NVIDIA 驱动版本。选那个标记为“专有”且版本号较新的,点应用更改,等下载安装完重启。
如果附加驱动里没有合适选项,可以用命令行:
ubuntu-drivers devices这条命令会列出推荐的驱动版本,然后:
sudo apt install nvidia-driver-535版本号按推荐来。装完重启,用nvidia-smi验证,能输出显卡信息就成功了。
注意:装 NVIDIA 驱动前,确保安全启动是关闭的,否则驱动模块加载会被拦截,表现为装完驱动后分辨率异常或者
nvidia-smi报错。
5.2 无线网卡与蓝牙的适配
前面 Live 环境测试过无线网卡,如果正常,装完系统一般也正常。如果发现无线网卡不工作,先看内核有没有识别:
lspci | grep -i network找到网卡型号后,去查对应的 Linux 驱动。Intel 网卡通常内核自带,Realtek 某些型号需要装rtl8821ce之类的第三方驱动。蓝牙问题多半是固件缺失,检查/lib/firmware下有没有对应文件,缺的话从 Windows 驱动包里提取或者网上找。
5.3 电源管理与散热调优
游戏本装 Linux,电源管理是个绕不开的话题。默认情况下,Ubuntu 的电源策略偏保守,风扇可能一直转或者该转不转。可以装tlp来优化:
sudo apt install tlp tlp-rdw sudo systemctl enable tlptlp 会根据电源状态自动调整 CPU 频率、硬盘省电策略等。对于双显卡机器,还可以用prime-select切换显卡模式:
prime-select query # 查看当前模式 sudo prime-select intel # 切到核显,省电 sudo prime-select nvidia # 切到独显,性能日常办公用核显,跑深度学习或者游戏再切独显,续航和性能兼顾。
5.4 时间同步问题的解决
Windows 和 Linux 对硬件时钟的解读不一样,Windows 认为硬件时钟是本地时间,Linux 默认认为是 UTC。结果就是每次切换系统,时间都会差几个小时。解决办法是让 Linux 也用本地时间:
timedatectl set-local-rtc 1 --adjust-system-clock执行完重启,时间就一致了。或者反过来改 Windows 的注册表让它用 UTC,两种方式选一种即可。
6. 常见问题与排查实录
6.1 引导相关的问题
问题一:开机直接进 Windows,没有 GRUB 菜单。
这通常是引导顺序问题。进 BIOS 把 Ubuntu 的引导项调到第一位,或者用 Windows 的bcdedit命令添加引导项。更彻底的办法是用boot-repair工具修复,在 Live 环境里装好这个工具跑一遍自动修复。
问题二:GRUB 里有 Ubuntu 但没有 Windows。
在 Ubuntu 终端里执行:
sudo os-prober sudo update-grubos-prober会扫描其他系统的引导,update-grub重新生成菜单。如果os-prober没输出,检查它是否被禁用,在/etc/default/grub里确认GRUB_DISABLE_OS_PROBER=false。
问题三:GRUB 菜单默认等待时间太短。
编辑/etc/default/grub,把GRUB_TIMEOUT改成 10 或者你想要的秒数,然后sudo update-grub。
6.2 硬件相关的问题
问题一:装完系统没有声音。
R7000P 的声卡有时需要额外配置。先检查alsamixer,看有没有通道被静音。如果不行,可能是内核模块问题,尝试更新内核或者装sof-firmware固件包。
问题二:亮度调节无效。
NVIDIA 驱动装好后,亮度调节键可能失灵。可以在 GRUB 启动参数里加acpi_backlight=vendor或者acpi_backlight=native,编辑/etc/default/grub里的GRUB_CMDLINE_LINUX_DEFAULT,加完sudo update-grub重启。
问题三:触摸板手势不好用。
Ubuntu 默认的触摸板驱动支持基本手势,但不如 Windows 精细。可以装libinput-gestures来配置多指手势,或者用gestures工具。
6.3 常见问题速查表
| 现象 | 可能原因 | 解决方向 |
|---|---|---|
| 安装时看不到硬盘 | 硬盘模式是 RAID | BIOS 改 AHCI |
| 装完进不去系统 | 安全启动未关 | BIOS 关 Secure Boot |
| 无 GRUB 菜单 | 引导顺序错误 | BIOS 调顺序或 boot-repair |
| 无 Windows 选项 | os-prober 未启用 | 改 grub 配置并 update-grub |
| 时间差几小时 | 硬件时钟解读不同 | timedatectl 设本地时间 |
| 显卡性能差 | 用的开源驱动 | 装 NVIDIA 闭源驱动 |
| 无线网卡不工作 | 驱动缺失 | 查型号装对应驱动 |
| 亮度键失灵 | ACPI 参数问题 | GRUB 加 acpi_backlight 参数 |
6.4 几个容易忽略的细节
细节一:EFI 分区不要格式化。和 Windows 共用盘时,那个已有的 EFI 分区里存着 Windows 的引导文件,格式化等于把 Windows 引导删了。安装时只挂载,不格式化。
细节二:安装启动引导器的设备选整块盘。选分区本身有时会导致引导写入位置不对,选整块盘(如 /dev/nvme0n1)更稳妥。
细节三:装完先别急着装一堆软件。先把驱动、更新、时间同步这些基础问题解决,系统稳定了再折腾开发环境。否则出了问题分不清是系统本身还是软件冲突。
细节四:定期备份 EFI 分区。用dd或者efibootmgr导出引导项,万一引导坏了能快速恢复。EFI 分区不大,备份成本很低。
7. 我在这台机器上踩过的坑
第一次装的时候,我没关安全启动,NVIDIA 驱动死活装不上,nvidia-smi一直报“couldn't communicate with the NVIDIA driver”。查了半天才意识到是安全启动拦截了未签名的内核模块。关掉之后一次成功。这个坑很典型,网上很多教程只提一句“建议关闭安全启动”,但不说为什么,导致很多人装完驱动才发现问题。
第二次是分区时手滑,把 Windows 的 EFI 分区格式化了。结果 Windows 直接进不去,好在数据没丢,用 Windows 安装盘修复了引导。从那以后我养成了习惯:动分区之前,先把 EFI 分区整个备份出来,出问题直接还原。
第三次是无线网卡。那台机器用的是某款 Realtek 网卡,Ubuntu 22.04 内核没带驱动,Live 环境就没网。我临时找了个 USB 无线网卡顶着,装完系统后从另一台机器下载了驱动源码,编译安装才解决。所以前面反复强调 Live 环境先测硬件,就是这个原因。
还有一次是时间问题,每次从 Windows 切回 Ubuntu 时间就乱,日历提醒全错位。后来用timedatectl设成本地时间才消停。这个问题不影响使用,但很烦人,早解决早省心。
8. 装完之后还能做些什么
系统跑起来只是开始,后面可以根据自己的需求继续打磨。比如装个zsh加oh-my-zsh让终端好用点,配个tmux管理会话,用docker跑开发环境。如果做深度学习,装 CUDA 和 cuDNN,R7000P 的 RTX 2060 跑中小规模模型完全够用。
另外,建议把常用的配置写成脚本,比如驱动安装、软件批量安装、dotfiles 部署,下次重装系统时一条命令搞定,省去重复劳动。我自己维护了一个setup.sh,新系统装完跑一遍,半小时内恢复到熟悉的工作环境。
最后再分享一个小技巧:如果你经常在 Windows 和 Ubuntu 之间切换,可以在 Windows 里装一个能读取 ext4 分区的工具,方便直接访问 Linux 下的文件;反过来 Ubuntu 挂载 NTFS 是原生支持的,双向访问都解决了。这样两个系统之间的数据流转就没什么障碍了。