
1. 装之前先想清楚为什么是 Windows 加 Ubuntu 20.04 双系统折腾双系统这件事我在台式机、两台笔记本和一台老机械硬盘机器上都做过一遍踩过的坑基本能凑成一本小册子。这篇就围绕Windows Ubuntu20.04 双系统的完整安装教程展开从选型、准备、分区、安装到后续维护和故障排查一步步讲透。如果你手上有台机器想同时留住 Windows 的办公/游戏环境又需要一个原生的 Ubuntu20.04 跑开发环境比如 ROS Noetic、ORB-SLAM3、深度学习那套工具链那么这套方案基本是最稳、最省成本的路子。哪怕你之前没碰过 Linux 命令行跟着走也能装完。先把一个常见误区说清楚Ubuntu20.04 并不是过时的选择恰恰相反它是目前生态兼容性最好的一个 LTS 版本。官方标准支持到 2025 年 4 月ESM 延长支持到 2030 年。更重要的是不少机器人、视觉、自动驾驶方向的开源项目官方文档里写的验证环境就是 20.04 ROS NoeticNoetic 只支持 20.04。你装 22.04 或者 24.04 也能跑但要自己处理一堆依赖版本冲突纯属给自己找活干。所以我给的建议是机器不是特别新、没有必须用新内核的硬件就老老实实上 20.04。1.1 双系统、虚拟机、WSL 三条路到底怎么选在动手前先花十分钟把方案想明白比装到一半发现选错方向再推翻重来要划算得多。这三条路我都长期用过各自的取舍很明确。虚拟机VMware / VirtualBox的优势是零风险装坏了删掉重来宿主机一点不受影响快照一打随便折腾。但代价是性能损耗大尤其是需要 GPU 直通、需要跑图形密集型任务三维重建、SLAM、深度学习训练的时候虚拟机的图形性能和 IO 性能会成为瓶颈。另外虚拟机的内核模块和宿主机隔离很多底层调试做不了。WSL2的体验这几年进步非常大启动快、文件互通方便、能和 Windows 的 VS Code 无缝联动日常写代码、跑 Python 脚本完全够用。但它的本质还是一个跑在轻量虚拟化层里的 Linux没有真实的内核启动流程systemd 支持是后加的图形界面支持有限硬件访问USB 设备、串口、摄像头也比较绕。做机器人开发、需要接真实传感器的场景WSL 基本没法用。双系统就是实打实的原生 Linux 跑在裸机上性能无损硬件直通什么驱动都能装代价是同一时间只能用一套系统切换要重启。对于需要长期做原生开发、需要完整硬件访问权的人来说这是唯一的选择。方案性能硬件访问风险适合场景双系统原生完整分区操作有风险长期开发、GPU 任务、机器人/视觉虚拟机有损耗有限极低尝鲜、临时验证、教学演示WSL2接近原生CPU很有限极低日常编码、脚本、命令行工具我的实际选择是主力台式机装双系统笔记本装 WSL2 做日常编码需要折腾硬件环境的时候再远程连台式机。你也可以按这个思路组合使用不一定非此即彼。1.2 装机前必须做的三项硬件盘点很多人装机失败不是技术不行是准备工作没做。我每次装之前都会确认这三件事。第一确认固件类型是 UEFI 还是 Legacy BIOS。WinR 输入msinfo32看BIOS 模式这一行显示 UEFI 就是 UEFI 引导显示传统就是 Legacy。这个信息决定了你后面 U 盘启动盘的分区方案GPT 还是 MBR搞错了直接启动不了。现在 2015 年之后的机器基本都是 UEFI本文也以 UEFI GPT 为主线讲。第二确认硬盘剩余空间。Ubuntu 至少要给 40G 才能装得舒服我一般建议 100G 起步如果要做深度学习或者存数据集200G 以上。用磁盘管理看一眼 C 盘后面有没有足够的连续空间可以压缩。第三确认内存大小因为这直接决定 swap 分区怎么给。8G 内存的机器和 32G 内存的机器分区策略完全不同。注意如果这台机器上有你唯一的资料备份动手前务必先拷一份到移动硬盘。分区操作本身是安全的但人手动操作总有失误概率别拿唯一的数据赌。2. 前期准备镜像、启动盘、BIOS 三个关键动作准备工作做扎实后面的安装过程基本就是点点点。我见过太多人卡在安装程序找不到硬盘U 盘启动后黑屏装完 Windows 丢了这几个问题上回头一查全是准备阶段留下的雷。这一章把每个雷都提前拆掉。2.1 镜像下载与完整性校验Ubuntu20.04 的最后一个小版本是 20.04.6桌面版镜像文件名是ubuntu-20.04.6-desktop-amd64.iso。老版本的点版本20.04.0 到 20.04.5官方已经下架如果看到只有 20.04.6 不用奇怪这是正常的所有更新都会通过 apt 推给你点版本号不影响使用。下载渠道建议走国内镜像站速度快很多清华 TUNA、中科大 USTC、阿里云镜像都有 20.04 的归档。文件大概 3.6G 左右。下完之后一定要校验 SHA256这不是多此一举。我曾经因为一次下载中断导致镜像损坏U 盘启动后卡在某个界面反复报错排查了两个小时才发现是镜像的问题。Windows 下打开 CMDcertutil -hashfile ubuntu-20.04.6-desktop-amd64.iso SHA256把输出的哈希值和镜像站页面上公布的 SHA256SUMS 文件里的值对比一模一样才能用。Linux 或者 macOS 下就是sha256sum ubuntu-20.04.6-desktop-amd64.iso2.2 用 Rufus 制作启动盘的分区参数怎么选写盘工具用 Rufus 最省心轻量、开源、不用安装。插上一个 8G 以上的 U 盘会被格式化里面别放东西打开 Rufus 后有几个参数必须对设备选中你的 U 盘别选错成移动硬盘我干过一次代价是那块盘的数据全没了。引导类型选择点选择按钮加载下载好的 ISO 文件。分区类型UEFI 的机器选GPT。目标系统选UEFI非 CSM。文件系统FAT32Rufus 一般会自动处理。点开始后会弹窗问用 ISO 镜像模式还是 DD 镜像模式选ISO 镜像模式推荐就行这两种模式写出来的盘都能启动ISO 模式的盘还能继续往里面拷别的文件方便你把驱动、配置文件一起放进去。写盘过程大概 3 到 8 分钟取决于 U 盘速度。写完 Rufus 会提示 READY这时候别急着拔先在 Windows 里点一下安全弹出。2.3 Windows 这边必须先关掉的三个东西这三项是真正会导致安装失败的元凶我把它放在最前面讲是因为十次装失败里有六次跟它们有关。第一个关闭快速启动。Windows 的快速启动准确说是混合关机会让关机时把内核状态存到 hiberfil导致 NTFS 分区处于半挂载状态。Ubuntu 挂载这个分区时会报 unclean file system 或者直接变成只读严重的时候文件系统会损坏。关法控制面板 → 电源选项 → 选择电源按钮的功能 → 更改当前不可用的设置 → 取消勾选启用快速启动。第二个关闭 BitLocker。如果你的 Windows 开启了设备加密或者 BitLocker改动分区表和引导记录会触发恢复模式要求输入 48 位恢复密钥那玩意儿很多人根本找不到。装系统前先到管理 BitLocker里把它关掉等 Ubuntu 装完、引导稳定了再开回去也行。实在要保留务必先把恢复密钥导出来存好。第三个关掉 Windows 的快速启动带来的休眠文件。用管理员权限打开 CMD执行powercfg /h off这一步顺手把 hiberfil.sys 删掉能省出几个 G 的空间也彻底断了混合关机的念想。至于Secure Boot我的建议是新手先关掉。Ubuntu 20.04 理论上支持 Secure Boot但装 NVIDIA 私有驱动、VirtualBox 内核模块这类第三方模块时需要走 MOK 签名流程界面是蓝底白字的英文文本菜单很多人看不懂就直接卡在那了。装完系统、驱动都齐了再想开回去也可以。提示进 BIOS 的按键各家不同华硕/微星是 Del 或 F2联想是 F1 或 FnF2戴尔是 F2惠普是 F10小米/华为笔记本是 F2。开机时连点别按住不放。2.4 用磁盘管理腾出一块干净的未分配空间Windows 下 WinX 选磁盘管理找到你的系统盘右键 C 盘选压缩卷。输入要压缩的量比如你想给 Ubuntu 200G就输入204800单位是 MB。这里有个很多人不知道的坑Windows 的压缩卷能做多大取决于磁盘上不可移动文件的位置。有时候你明明有 400G 空闲压缩卷却只能压出 50G。遇到这种情况有两个办法一是关闭系统保护还原点、关闭页面文件、关闭休眠后重启再试二是用 DiskGenius 这类工具做无损分区调整。我更推荐先把能关的都关了再压缩稳妥。压缩完你会看到一块黑色的未分配空间。这块空间不要格式化不要新建分区就让它保持未分配状态Ubuntu 安装程序会直接识别它。顺便提一个特别容易被忽略的问题BIOS 里的硬盘模式。很多新笔记本出厂时硬盘控制器是 Intel RST或者叫 VMD模式这个模式下 Ubuntu 的安装程序根本看不到硬盘界面里一片空白。改法是在 BIOS 里把 SATA/存储模式从 RST/VMD 改成 AHCI。但直接改会导致 Windows 蓝屏启动不了正确姿势是先执行bcdedit /set safeboot minimal重启进 BIOS 改成 AHCI进入 Windows 的安全模式然后再执行bcdedit /deletevalue safeboot重启就正常了。这一步不做你会在安装界面里对着没有可用磁盘发呆半小时。一个实操的分区规划示例我拿一台 1TB SSD、32G 内存的机器举例分区大小类型挂载点说明ESP100M已有FAT32/boot/efiWindows 建的直接复用不要格式化MSR16M已有--保留分区不要动C 盘300G已有NTFS-Windows 系统盘根分区80Gext4/系统文件、软件包swap32Gswap-要休眠就给等量内存home剩余约 480Gext4/home个人数据、代码、数据集3. Ubuntu 20.04 安装全过程实录准备工作做完插上 U 盘重启按对应的启动菜单键F12、F11、ESC 各家不同在启动项列表里选带UEFI:前缀的那个 U 盘条目。如果列表里同一个 U 盘出现两个条目一个带 UEFI 一个不带一定要选带 UEFI 的否则装出来的系统引导方式和 Windows 不匹配后面配置 grub 会很麻烦。3.1 从启动到分区界面之间的每一步进入 Ubuntu 的试用桌面后桌面上有个Install Ubuntu 20.04 LTS图标双击开始。语言和键盘布局选中文或者英文都行我个人建议安装时选English因为 Linux 下的错误信息和日志大多是英文用英文界面去搜报错更容易命中结果。装完系统后输入法、中文支持再单独配不冲突。更新和其他软件会问你是正常安装还是最小安装。正常安装会带上办公套件、游戏、媒体播放器多占一两个 G。我的习惯是选最小安装需要什么后面 apt 装什么系统干净。下面还有两个勾选项安装 Ubuntu 时下载更新和安装第三方软件如果是第一次装建议都先不勾因为装 NVIDIA 驱动这件事在安装器里做经常会出问题黑屏、卡登录不如装完系统启动正常了在系统里手动装驱动可控性高得多。安装类型这一步是关键。默认选项会问你是不是清除整个磁盘并安装 Ubuntu千万别选这个它会把你整个硬盘抹掉Windows 就没了。要选最后一个Something else其他选项进入手动分区界面。3.2 手动分区四个挂载点一个都不能配错进入手动分区界面后你会看到磁盘上所有的分区列表。这时候深呼吸我们一个一个来。第一步找到 ESP 分区。在列表里找那个 100M 左右、类型显示为efi或者fat32的分区它通常是最上面那个。选中它点更改Change用途选EFI 系统分区挂载点选/boot/efi但千万不要勾选格式化。这是整个流程里最容易出错的地方——ESP 分区里装着 Windows 的引导文件你一格式化Windows 就彻底起不来了修复起来要动用启动盘和 bcdboot非常麻烦。第二步创建根分区/。选中那块黑色的空闲空间free space点左下角的号。弹出窗口里填大小8192080G单位 MB新分区类型主分区Primary位置空间起始位置用于Ext4 日志文件系统挂载点/根目录给 80G 是个比较舒服的数字。如果你准备装 CUDA、PyTorch、ROS 全家桶这些包动辄几个 G/太小容易爆掉。当然装完也可以扩容但过程比一开始就分好麻烦得多。第三步创建 swap 分区。再次选中剩余空闲空间点大小按内存来见下表用于交换空间swap areaswap 大小的经验值我整理成表你可以直接照抄物理内存不需要休眠需要休眠功能4G 以下4G内存的 2 倍4G ~ 8G4G ~ 8G等于内存8G ~ 16G8G等于内存16G ~ 64G8G等于内存64G 以上8G等于内存或不用 swap改用 swapfile休眠功能的判断标准很简单你要不要在 Ubuntu 里用挂起/休眠把内存内容写到磁盘上、下次开机原样恢复需要的话swap 就必须大于等于物理内存否则休眠会失败。不需要的话给 8G 就够了现代机器内存大日常基本用不到 swap。第四步创建/home分区。把剩下的空闲空间全给/home类型 ext4挂载点/home。为什么要单独分/home因为重装或者升级系统时可以只格式化//home原地保留你的代码、配置、文档全都在省去大量恢复时间。这是老手和新手最容易拉开差距的一个习惯。第五步看引导器安装位置。界面最下面有个安装启动引导器的设备Device for boot loader installation默认通常会指向整块硬盘比如/dev/nvme0n1。注意这里一定要选整块硬盘的设备名不要选成某个分区比如 /dev/nvme0n1p1。选整盘安装器会自动把 grub 写到 ESP 分区的 EFI 目录下并且和已有的 Windows 引导共存选成分区在某些主板上会装出一个无法启动的系统。检查一遍分区表ESP 挂/boot/efi未格式化、/是 ext4、swap 是交换空间、/home是 ext4、引导器指向整盘。确认无误点现在安装后面会弹出确认对话框核对你即将格式化的分区列表只有你新建的那几个分区在列ESP 和 NTFS 分区都不在里面这就是对的。3.3 安装完成后的首次启动与换源接下来的安装过程大概 10 到 20 分钟取决于硬盘速度。中间会问你时区选 Shanghai和用户名密码。用户名建议全小写英文不要用中文和空格很多开发工具对中文路径支持很差一个中文用户名能让你后面莫名其妙报错半天。密码别设太简单因为 sudo 授权会频繁用到。装完提示重启点现在重启在机器重新亮起来之前把 U 盘拔掉。如果没拔可能又从 U 盘启动了重新选一次硬盘启动就行。重启后会看到 GRUB 菜单里面应该同时有 Ubuntu 和 Windows Boot Manager 两个选项。能同时看到这两个说明整个安装流程走通了这是最让人安心的一刻。进系统后第一件事是换源因为默认的官方源在国内速度感人。先备份再改sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak sudo sed -i s|http://archive.ubuntu.com|https://mirrors.tuna.tsinghua.edu.cn|g /etc/apt/sources.list sudo sed -i s|http://security.ubuntu.com|https://mirrors.tuna.tsinghua.edu.cn|g /etc/apt/sources.list sudo apt update sudo apt upgrade -y三条命令下去第一次更新可能会跑几分钟把系统补丁全部打完。这一步做完再装任何软件都会顺畅很多。3.4 显卡驱动apt 装 nvidia-driver-535 的正确姿势这一节单独拎出来讲因为它是 Ubuntu20.04 装机后翻车率最高的环节尤其是 NVIDIA 独显的笔记本和台式机。先看系统推荐你装哪个版本ubuntu-drivers devices输出里会有一行标着recommended通常就是 535 系列。直接按推荐装最稳sudo apt update sudo apt install nvidia-driver-535 -y sudo reboot重启后验证nvidia-smi能打印出显卡型号、驱动版本、显存占用就说明驱动装好了。这里有几个必须知道的坑。第一个坑如果 Secure Boot 是开着的安装过程中会弹出一个蓝底白字的 MOK 管理界面要你设置一个一次性密码重启后还要在同一个界面里选 Enroll MOK → Continue → 输入刚才的密码才算完成签名。很多人重启后看到这个蓝色界面以为系统坏了直接强关结果驱动加载失败。如果你之前按我建议关了 Secure Boot就不会遇到这一出。第二个坑装完驱动重启后卡在登录界面循环或者黑屏只有光标。这大概率是 GDM 默认走 Wayland 导致的。20.04 的 GDM 默认启用 Wayland而 NVIDIA 私有驱动在 Wayland 下兼容性很差。解决办法是强制切回 X11编辑/etc/gdm3/custom.conf把#WaylandEnablefalse前面的#去掉保存重启。这个是 20.04 NVIDIA 组合的经典问题几乎每台机器都要处理一次。第三个坑笔记本双显卡。Intel 核显 NVIDIA 独显的机器装完驱动后可能默认走核显跑深度学习时说找不到 CUDA 设备。用prime-select切换prime-select query # 查看当前用的是哪个 sudo prime-select nvidia切换后需要注销重新登录生效。日常办公用on-demand或intel更省电跑训练前切到nvidia。心得我一般会在装完驱动、确认 nvidia-smi 正常之后立刻做一次系统快照如果用了 LVM 或者虚拟机或者把关键配置记下来。显卡驱动这一块折腾起来最容易反复有个可以回退的点心里踏实。4. 双系统日常维护时间、启动项、磁盘互访系统装完只是开始双系统真正让人头疼的是日常使用中的那些小摩擦。这一章讲的全是我实际遇到过、并且有稳定解决方案的问题。4.1 两个系统时间差 8 小时怎么根治装完双系统重启进 Windows十有八九会发现时间不对了快了或者慢了 8 小时。这不是时钟坏了是两套系统对硬件时钟存的是什么理解不一致Windows 默认认为主板 RTC 存的是本地时间Linux 默认认为存的是 UTC 时间。两个系统各按各的理解去读写就差了时区偏移量。解决方案有两个方向选一个就行别两个都做。方案 A让 Ubuntu 迁就 Windows把 RTC 当本地时间用timedatectl set-local-rtc 1 --adjust-system-clock执行完timedatectl看一下会显示 RTC in local TZ: yes。这个方案改动小一条命令搞定缺点是 Ubuntu 官方不太推荐某些场景下比如夏令时切换、跨时区同步可能出问题。方案 B让 Windows 迁就 Ubuntu把 RTC 当 UTC 用。Windows 下用管理员 CMD 执行reg add HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_DWORD /d 1 /f然后重启 Windows把时间手动校准一次。这个方案更正确我一般用这个。4.2 修改默认启动项和等待时间默认情况下 GRUB 会等你 10 秒默认进 Ubuntu。如果你日常主要用 Windows每次开机都要手动选一下很烦。改法sudo vim /etc/default/grub找到GRUB_DEFAULT0把它改成你想默认启动的那一项。这里的值可以用序号从 0 开始数也可以直接写菜单项的完整字符串我更推荐后者因为序号在更新内核后会变字符串不会GRUB_DEFAULTWindows Boot Manager (on /dev/nvme0n1p1) GRUB_TIMEOUT5名字要写得分毫不差包括括号和空格。怎么拿到准确的字符串开机进 GRUB 菜单的时候那一行显示什么就写什么。改完执行sudo update-grub有个更聪明的做法是临时切换一次启动项不动全局配置sudo grub-reboot Windows Boot Manager (on /dev/nvme0n1p1) sudo reboot这会在本次重启时进 Windows下次重启又自动回到默认的 Ubuntu。适合平时用 Ubuntu周末打游戏这种使用节奏。4.3 让 Ubuntu 读写 Windows 的 NTFS 分区Ubuntu 默认会通过 ntfs-3g 驱动自动挂载 NTFS 分区你在文件管理器里点一下就能看到 C 盘、D 盘。但如果出现这两个症状说明前面提到的快速启动没关干净分区挂载上去了但只能读不能写新建文件报只读文件系统开机挂载时报错日志里出现The disk contains an unclean file system解决顺序是先在 Windows 里确认快速启动已关、执行过powercfg /h off然后回 Ubuntu 手动挂载一次sudo umount /dev/nvme0n1p3 sudo ntfsfix /dev/nvme0n1p3 sudo mount -t ntfs-3g -o uid1000,gid1000,umask022 /dev/nvme0n1p3 /mnt/winntfsfix能清掉那个 dirty 标志uid/gid/umask是让普通用户有读写权限。想开机自动挂载改/etc/fstabUUID你的分区UUID /mnt/win ntfs-3g defaults,uid1000,gid1000,umask022 0 0UUID 用sudo blkid查。反过来想在 Windows 里读 Linux 的 ext4 分区说实话我不推荐。Windows 下的 ext4 读写工具要么收费要么有损坏分区的风险一旦写坏Linux 那边可能直接起不来。跨系统传文件走 U 盘、移动硬盘exFAT 格式或者网络共享比装那些驱动靠谱得多。提示如果你经常在两个系统之间倒腾大文件最省事的方案是划一个 exFAT 格式的公共分区两个系统都能原生读写不用折腾驱动也不会有权限问题。4.4 一个系统引导坏了怎么从另一个系统救回来这是双系统用户早晚会遇到的问题我把两种方向的处理方式都写清楚。方向一Ubuntu 能进Windows 启动项丢了。这种情况多半是 Windows 更新或者装 Ubuntu 时 grub 没探测到 Windows。在 Ubuntu 里操作sudo os-prober sudo update-grub如果os-prober什么都没输出说明 Windows 的引导分区没被识别。检查一下 ESP 分区是不是挂在/boot/efi上挂载正确再执行一次。还有一个可能Windows 用了 BitLockeros-prober 读不到那就需要先关掉加密。方向二Windows 能进Ubuntu 启动项没了。这种情况常见于重装 Windows 或者调整分区之后。修复办法是用 Ubuntu 的 U 盘启动到试用模式然后 chroot 进原来的系统重装 grubsudo mount /dev/nvme0n1p5 /mnt # 挂载原来的根分区 sudo mount /dev/nvme0n1p1 /mnt/boot/efi # 挂载 ESP for i in /dev /dev/pts /proc /sys /run; do sudo mount -B $i /mnt$i; done sudo chroot /mnt grub-install /dev/nvme0n1 update-grub exit sudo reboot分区号要根据你实际的来用lsblk看。这套流程我用了不下十次非常可靠。还有一个懒人方案是boot-repair图形界面点一下自动修复对不熟悉命令行的朋友很友好。在 Ubuntu 里装上sudo add-apt-repository ppa:yannubuntu/boot-repair sudo apt update sudo apt install boot-repair -y boot-repair注意它需要联网而且修复前会问你一些选项第一次用建议先选推荐修复看完报告再决定要不要做高级操作。5. 常见问题排查与避坑实录前面几章是怎么做这一章是做砸了怎么办。我把自己和身边人踩过的坑整理成速查表按现象查就行。5.1 装机阶段的高频故障速查现象大概率原因处理方式U 盘启动后黑屏、卡在 logo显卡驱动冲突、镜像损坏启动菜单编辑加nomodeset重新校验镜像安装界面看不到任何硬盘BIOS 里是 RST/VMD 模式改 AHCI先用 safeboot minimal 过渡分区表里找不到空闲空间压缩卷没做成功回 Windows 关还原点/页面文件后重新压缩提示没有定义根文件系统忘了给/分配挂载点回去给根分区设置挂载点装完重启直接进 Windows没有 GRUB引导器装到了错误的分区用 U 盘进 Live 系统chroot 重装 grub装完 Windows 无法启动ESP 被格式化或引导项被覆盖用 Windows 安装盘执行bcdboot重建安装到一半卡住不动网络更新超时断网重装或安装时不勾选下载更新nomodeset的加法是在 GRUB 启动菜单选中 Ubuntu 那一项按e进入编辑找到以linux开头的那一行在末尾加上nomodeset按 F10 启动。这是临时生效能进系统之后再装显卡驱动就能永久解决。bcdboot的用法在 Windows 安装盘的修复模式里命令行执行bcdboot C:\Windows /s S: /f UEFI其中 S: 是挂载出来的 ESP 分区盘符需要用diskpart手动分配。5.2 装完之后才暴露的问题无线网卡没有驱动连不上网。这是新笔记本的常见问题尤其某些品牌的网卡。最实用的绕过办法是用手机 USB 共享网络连上之后系统会自动装好驱动。或者用网线直连。如果都没有只能把驱动 deb 包拷到 U 盘里离线装。笔记本亮度键失效、屏幕特别刺眼。在 GRUB 启动参数里加acpi_backlightvendor或者用nvidia驱动时加nvidia.NVreg_RegistryDwordsEnableBrightnessControl1。具体加哪个要看机型两个都试试不影响其他功能。主副屏识别错、显示器位置不对。图形界面的设置 → 显示里可以直接拖拽调整但在某些外接显示器上不生效。命令行方案更可靠xrandr # 先看接口名 xrandr --output HDMI-1 --right-of eDP-1 --auto系统字体太小或者太大。20.04 在高分屏上默认缩放可能不合适设置里可以选 100%、125%、200%但分数缩放需要开实验特性。如果选项是灰的尝试切到 X11前面改 custom.conf 那个操作。根分区满了。df -h一看/100% 是常事。先用du -sh /* 2/dev/null | sort -h找到占空间的大头多半是/var/log、/var/cache/apt或者 Docker 的镜像目录。清理命令sudo apt clean sudo journalctl --vacuum-size200M如果是 Docker 占的docker system prune -a能回收几个 G 到几十个 G。5.3 我给几个装双系统朋友的建议第一装之前多花半小时做分区规划别图快。我见过有人把/home和/混在一起、后面想重装系统几百 G 的数据要倒来倒去这个时间成本远大于当初多花的那十分钟。第二装完立刻做一次完整的系统备份或者快照。如果用的是虚拟机或者支持快照的文件系统这一步就几秒钟。裸机的话至少把/etc、/home的关键配置和dpkg --get-selections的输出导出一份重装的时候能省下大量时间。第三不要盲目追新版本。Ubuntu20.04 是 LTS五年支持生态成熟。装 24.04 碰到 ROS、CUDA 版本不兼容的时候你会发现搜到的解决方案全是 20.04 的改起来很痛苦。除非有明确的、20.04 满足不了的需求否则就用它。第四BIOS 里的改动记下来。你今天关了 Secure Boot、改了 AHCI、调了启动顺序半年后系统出问题需要进 BIOS 排查时可能已经忘了当时改了什么。我当时改了哪些选项现在都能翻出来对照排查效率高很多。第五留一个可启动的 U 盘放在抽屉里。不管系统多稳定总会有需要进 Live 环境修复的时候。这个 U 盘不用太大8G 就够做一次能用好几年。这是我在一次硬盘故障后养成的习惯从此再没慌过——即使系统进不去也能用 Live 环境把数据先拷出来。装机这件事说到底就是用可预期的准备工作去交换后续使用的省心程度。你把分区、引导、驱动这三个环节理解透了双系统其实是个非常稳的方案我用下来几年也没出过大问题。真正会让人崩溃的从来不是技术本身而是某个被忽略的细节在关键时刻跳出来——希望这篇把那些细节都提前替你说到了。