
说实话今年上半年我连续给三台不同设备折腾了 Ubuntu 22.04一台是主力笔记本装双系统一台是虚拟机里跑轻量服务还有一块 RK3566 的板子要手动构建系统。结果热搜上那些问题我基本全撞了一遍——有线网卡识别不对、WiFi 驱动消失、输入法难用、远程登录连不上、想卸载又怕搞坏引导。这篇就把这段时间的操作记录整理成一份偏实战的笔记按装之前 → 怎么装 → 装完驱动 → 日常使用 → 想卸载的顺序来写适合正在用 22.04 或者准备入坑的人参考。1. 装系统前的准备镜像源、校验和启动盘1.1 官方源还是国内源版本细节别搞混下载镜像这件事看起来很简单但我想先说一个容易踩的坑Ubuntu 22.04 有多个 point release比如最初的 22.04、22.04.1、22.04.2、22.04.3、22.04.4。它们的 ISO 在硬件支持上差别不小尤其是新网卡、新显卡、新主板的场景22.04.4比最初的 22.04 要友好很多。官方下载地址是releases.ubuntu.com国内可以用清华、阿里云的镜像站速度差距挺大但注意拿到的版本必须一致别在官方看到 22.04.4、在镜像站看到 22.04.3 就随手下了安装器版本其实还好但内核和固件包会差一截。架构也要看仔细笔记本、台式机选amd64RK3566 这种 ARM 板子选arm64。我见过有人给板子下了 amd64 的 ISO写入 SD 卡后完全启动不了还以为是板子坏了其实是架构不对。下载完成后养成一个习惯校验 SHA256。官方页面会给出校验文件或校验值命令行下执行sha256sum ubuntu-22.04.4-desktop-amd64.iso比对输出的哈希值和官方一致再进入下一步。这一步能避免很多启动盘莫名无法引导的诡异问题因为很多 U 盘实际容量比标称小下载文件被截断了。1.2 启动盘制作Ventoy 比 dd 更省心制作启动盘我推荐 Ventoy因为我踩过直接dd写盘后无法 UEFI 引导的坑。Ventoy 的原理是先给 U 盘装一个小型引导分区之后你只需要把 ISO 文件丢进 U 盘的大分区即可。这样做有两个好处一是可以同时放多个 ISO比如 Ubuntu 22.04 和 Windows 安装镜像二是 ISO 文件可以随时替换不用反复格式化 U 盘。如果用 Windows也可以选 Rufus如果手里只有一台 Linux 机器dd不是不行但要确认写入的 ISO 是完整的而且 U 盘最好用 UEFI 目标模式写入。我个人的建议是桌面主板走 UEFI 启动已经是绝对主流做启动盘时优先考虑 UEFI 兼容性别再用传统的 MBR 引导方式去揣摩它。制作完成后第一次从 U 盘启动后先选择Try Ubuntu进入试用桌面确认键盘、鼠标、网络、磁盘都能被识别再正式开始安装。这一步看似多余实际能提前暴露很多驱动问题尤其是网卡识别不到的情况。1.3 分区方案提前想清楚分区建议在安装前定好避免安装器里临时乱分。双系统场景我习惯手动分区而不是直接用安装 Ubuntu 与 Windows 共存的选项因为共存选项有时会用掉大量空闲空间划分结果不够直观。常用方案是这样的分区大小建议类型EFI 系统分区500 MB - 1 GBFAT32如果 Windows 已有 EFI 分区可复用根分区/至少 50 GB建议 100 GBext4 或 btrfsSwap 交换分区与内存大小相当或不单独分用 swapfileswap家目录/home剩余空间ext4如果你还想做整盘单系统直接让安装器自动分区即可。但双系统务必确认 Windows 的 BitLocker 是否已关闭否则分区操作可能触发加密锁导致 Windows 分区不可访问。2. 三条安装路线双系统、虚拟机和 WSL22.1 双系统最大的坑装完找不到 Windows 引导双系统安装过程本身不复杂真正的麻烦在装完之后。常见情况有两种一种是开机直接进 Ubuntu看不到 Windows 引导项另一种是 Windows 引导项在但选进去后蓝屏或转圈卡死。第一种情况多半是因为 Ubuntu 的 GRUB 没有正确探测到 Windows 的 EFI 引导文件。安装完成后在终端执行sudo update-grub如果输出里仍然看不到 Windows Boot Manager再检查 EFI 分区里是否有EFI/Microsoft/Boot/bootmgfw.efi。我的修复方法是用boot-repair这是社区里相对可靠的引导修复工具sudo add-apt-repository ppa:yannubuntu/boot-repair sudo apt update sudo apt install boot-repair -y boot-repair选Recommended repair它会自动检测磁盘上的系统并重新生成 GRUB 菜单。修复完重启一般就能看到 Windows 了。第二种情况是 Windows 引导项存在但选了进不去。这通常是安装 Ubuntu 时动了 EFI 分区或者 Windows 的快速启动机制残留了异常状态。可以先在 Ubuntu 里执行sudo os-prober确认 os-prober 是否能探测到 Windows。如果探测不到检查efibootmgr -v看到的启动项顺序必要时手动添加sudo efibootmgr --create --disk /dev/nvme0n1 --part 1 --label Windows Boot Manager --loader \EFI\Microsoft\Boot\bootmgfw.efi注意/dev/nvme0n1和--part 1要根据你的实际磁盘和 EFI 分区号修改用lsblk确认。输入错误的话启动项会指向错误路径启动时依然无效。2.2 虚拟机安装VMware 和 VirtualBox 的差异点如果你只是体验一下 22.04或者想在一个隔离环境里跑测试虚拟机是最省事的方式。我常用 VMware Workstation 和 VirtualBox两者在安装 Ubuntu 22.04 上差别不大但有几点要注意。VMware Workstation 对 Ubuntu 22.04 的默认配置比较成熟安装系统时选择 Ubuntu 64 位即可之后再安装 VMware Tools或者直接安装 open-vm-toolsUbuntu 官方源里有:sudo apt install open-vm-tools-desktop -yVirtualBox 则需要额外安装增强功能Guest Additions而且 22.04 的 GNOME 桌面在 VirtualBox 默认图形控制器下的 3D 加速效果一般。建议在 VirtualBox 设置里把显示控制器调为 VMSVGA显存调到 128 MB 以上。虚拟机安装时磁盘类型用虚拟磁盘即可但如果你后续要移动虚拟机文件建议使用单文件模式别用动态分片的多文件模式备份和迁移时省心很多。网络模式方面默认 NAT 就够了需要宿主机直接访问虚拟机的 SSH 服务再用桥接模式。2.3 WSL2 里跑 Ubuntu 22.04轻量方案的隐藏限制WSL2 是另一个常见路径很多人误以为它就是一台完整的 Ubuntu其实不是。WSL2 共享 Windows 内核Ubuntu 22.04 在 WSL2 里以发行版形式运行系统服务支持有限。安装方式很直接Windows 终端里执行wsl --install wsl --list --online wsl --install -d Ubuntu-22.04如果wsl --install提示需要启用虚拟机平台需要先重启。装完之后默认是 root 用户需要执行sudo passwd root或者创建一个普通用户因为很多操作在 root 下权限太大容易误删文件。WSL2 的局限性在于它没有完整内核所以涉及内核模块、驱动、固件的操作比如编译 WiFi 驱动都不适用systemd 在 22.04 的 WSL2 里默认已经支持了但开启方式需要在/etc/wsl.conf里写[boot] systemdtrue之后执行wsl --shutdown再重新进入systemd 才会生效。如果你只是想跑命令行工具、Docker、开发环境WSL2 够用但如果要测试桌面、显卡驱动、网卡驱动还是老老实实装虚拟机或双系统。3. 装完第一件事把网卡和 WiFi 驱动理顺3.1 有线网卡识别不对的三种常见情况Ubuntu 22.04 装完后网卡问题的频率非常高而且热搜上那个识别不对其实包含了三种完全不同的情况需要分开排查。第一种网卡被识别了但接口名变了。比如以前叫eth0现在叫eno1或ens33。这不是故障是 systemd 的命名规则。如果你的网络配置还写在旧名字里就会出现接了网线但上不了网的假象。用ip a查看实际接口名改/etc/netplan/*.yaml或者用 NetworkManager 的图形界面重新指定即可。第二种速度不对网线插上但速率显示 100 Mb/s。常见于瑞昱 RTL8168/RTL8125 这类网卡Ubuntu 22.04 默认加载的r8169驱动对新硬件的兼容性不够。解决办法是安装瑞昱官方提供的r8168驱动sudo apt install dkms -y wget https://example.com/r8168-8.xxx.tar.bz2这里不推荐记忆特定版本号建议直接访问瑞昱官网下载对应驱动的 Linux 源码包解压后执行./autorun.sh。如果系统里已经装了r8168-dkms则用sudo apt install r8168-dkms sudo modprobe r8168然后用ethtool eno1查看速率。如果依然只有 100 Mb/s检查网线、交换机端口、网卡自动协商设置是下一步。第三种网卡完全没被识别。这种情况ip a里看不到有线接口需要先查lspci -nnk | grep -A 3 Ethernet看驱动是否是(null)或显示kernel modules: unknown。如果是新出厂的网卡内核太老就会这样。解决办法是升级内核Ubuntu 官方提供 HWE 内核栈比如 22.04 上装了 HWE 内核后硬件支持会向后滚动更新sudo apt install linux-generic-hwe-22.04 sudo reboot这个操作和换驱动不同它是更底层的兜底方案很多识别问题会因为内核版本更新而直接消失。3.2 RK3566 板子构建系统没有 WiFi 驱动从三个环节排查这块板子的问题比较特殊不是直接装 ISO而是用 SDK 构建出来的系统装完发现没有 WiFi 驱动。我把排查思路梳理成三条线按顺序走基本能定位问题。第一是硬件层。先确认系统有没有识别到 WiFi 芯片。常用的命令lspci lsusb如果 WiFi 模块是 USB 接口lsusb里会显示芯片厂商和型号如果是 SDIO 接口lspci不显示需要看设备树。最直接的现象是如果lsusb里能看到 RTL8821CU、RTL8852BS 这类芯片说明硬件没问题问题在驱动加载如果看不到可能是设备树没有正确描述这个 WiFi 模块或者模块供电、时钟没有使能。第二是固件层。很多 WiFi 芯片除了驱动程序还需要 firmware 文件。系统构建时如果没把/lib/firmware里对应的.bin文件打包进去dmesg 会提示firmware: failed to load。解决办法是从芯片厂商或主线固件仓库里找到对应固件手动拷贝到板子系统的/lib/firmware目录下。这个操作也要注意架构ARM64 系统拷贝的固件和 x86 通用但有些芯片固件会区分平台最好以厂商 SDK 提供的文件为准。第三是驱动层。SDK 默认的内核配置可能没把该选的驱动编进去比如CONFIG_RTL8821CU这类模块。找到内核配置菜单确认 WiFi 相关选项后重新编译再把编译好的.ko文件拷贝到板子系统里sudo cp path/to/rtl8821cu.ko /lib/modules/$(uname -r)/kernel/drivers/net/wireless/ sudo depmod -a sudo modprobe rtl8821cu执行完modprobe后用ip link查看是不是多了wlan0或类似接口。如果没有继续看dmesg | tail通常会有明确报错比如 GPIO 请求失败或者中断号冲突那就不是驱动的问题而是设备树配置问题。整个排查链路里我最想强调的是看 dmesg这件事。很多人在板子上一碰到 WiFi 没驱动的问题第一反应是重新编译内核其实先花两分钟看dmesg很多时候一眼就能看到是固件没加载还是设备树没匹配完全不需要重新编译整个内核。3.3 NVIDIA 显卡驱动更换的正确顺序如果你用 22.04 做日常桌面、跑 CUDA 或者玩 Steam 游戏NVIDIA 驱动基本绕不开。网上各种教程很多我按自己踩过坑的顺序总结一下。第一步别急着下载官网.run文件。Ubuntu 仓库里的驱动已经经过测试优先用仓库方案sudo apt update ubuntu-drivers devices这个命令会列出当前硬件推荐的驱动版本通常输出里会标注recommended。然后安装sudo apt install nvidia-driver-550这里的版本号以ubuntu-drivers devices输出为准不同内核、不同卡型推荐的版本可能不同。第二步处理 Nouveau 冲突。Ubuntu 默认开源的 Nouveau 驱动会和 NVIDIA 闭源驱动冲突。安装 NVIDIA 驱动时安装脚本或者包管理器一般会提示禁用 Nouveau但有时候没提示。如果装完重启后卡在登录界面可能是 Nouveau 还在。创建一个黑名单文件sudo bash -c echo blacklist nouveau /etc/modprobe.d/blacklist-nouveau.conf sudo bash -c echo options nouveau modeset0 /etc/modprobe.d/blacklist-nouveau.conf sudo update-initramfs -u sudo reboot第三步注意 Secure Boot。如果主板开启了 Secure BootNVIDIA 内核模块需要签名后才能加载否则会出现无法加载模块Operation not permitted之类的报错。我遇到过卡到这一步的确认方法是mokutil --sb-state显示SecureBoot enabled的话需要去 BIOS 里暂时关闭或者注册 MOK 密钥这个操作比较繁琐。我的建议是如果不依赖 Windows 的 Credential Guard 之类的功能直接在 BIOS 里关掉 Secure Boot省事很多。第四步验证驱动是否真的生效nvidia-smi如果显示显卡型号和驱动版本就说明装好了。还要注意Ubuntu 内核升级后NVIDIA 驱动可能因为 DKMS 重编译失败而失效。检查dkms status如果显示错误状态重新执行sudo dkms install -m nvidia -v 550.xx驱动的版本号要和你安装的保持一致不要记我这里的例子。4. 日常使用四件事向日葵、远程登录、输入法和系统管理4.1 向日葵从下载到开机自启的完整链路远程控制这块很多文章的注意力都放在 SSH 上但实际场景里家里老人的电脑、办公室的 Linux 机器很多时候需要图形化远程操作。向日葵是个不错的国产方案支持 Ubuntu 22.04。注意别从第三方网站下载直接去向日葵官网找 Linux 客户端。下载下来通常是 deb 包安装时如果提示缺少依赖用sudo apt install ./sunloginclient-xxx-amd64.debUbuntu 22.04 的软件包管理已经支持直接安装本地 deb 并自动拉取依赖比先dpkg -i再apt -f install顺畅很多。安装完成后第一次启动向日葵需要在图形界面里登录账号并绑定设备。这里有个细节如果你用的是 Wayland 会话向日葵可能只能看到锁屏界面或者画面卡住。Ubuntu 22.04 默认登录会话可能是 Wayland建议登录界面选择Ubuntu on Xorg再用向日葵兼容性好很多。设置开机自启可以走 systemd新建一个服务文件[Unit] DescriptionSunlogin Client Afternetwork.target [Service] ExecStart/usr/local/sunlogin/bin/sunloginclient Restartalways RestartSec3 User你的用户名 [Install] WantedBymulti-user.target注意路径可能因安装方式不同而变化用which sunloginclient确认实际路径再写入。4.2 Win10 远程登录 Ubuntu 22.04xrdp 方案配置细节Windows 远程登录 Ubuntu很多人第一反应是装 VNC Server但 Windows 自带的远程桌面连接客户端用的 RDP 协议和 Linux 常见的 VNC 不是一回事。想让 Windows 的 mstsc 直接连到 Ubuntu最省事的方案是 xrdp。安装sudo apt install xrdp -y sudo systemctl enable --now xrdp理论上这时候 Windows 的远程桌面客户端填 Ubuntu 的 IP 就能连了但实际操作中有几个非常常见的坑。第一个坑是连接后黑屏或者只有鼠标光标。这通常是因为 xrdp 和当前桌面会话不兼容。Ubuntu 22.04 默认 GNOMExrdp 默认启动startwm.sh这个脚本加载的会话配置可能是错的。22.04 上我建议修改/etc/xrdp/startwm.sh确保它调用的是官方会话文件if test -r /etc/profile; then . /etc/profile fi export GNOME_SHELL_SESSION_MODEubuntu export XDG_CURRENT_DESKTOPubuntu:GNOME exec /usr/bin/gnome-session保存后重启 xrdp 服务sudo systemctl restart xrdp第二个坑是连接后闪退、反复要求登录。这往往是.xsession文件残留了旧配置删除它再试rm -f ~/.xsession ~/.xsessionrc第三个坑是 xrdp 服务起不来查看日志sudo journalctl -u xrdp -n 50如果是端口被占用改/etc/xrdp/xrdp.ini的端口号。还有xrdp 默认监听 3389 端口Windows 远程桌面也默认用 3389局域网内使用没问题。还有一点值得说明xrdp 方案和向日葵这类第三方远程方案的使用场景不同。向日葵适合跨网络、需要账号认证、穿透内网的场景xrdp 适合局域网内快速连接占资源更小。如果你有公网访问需求我建议优先考虑部署一个轻量工具而不是直接把 3389 暴露到公网安全性和抗扫描能力都更好。4.3 不装 IBus 也能好好打字fcitx5 配置热搜里那句怎么安装别的输入法不安装 IBus我太有共鸣了。Ubuntu 22.04 默认输入法框架是 IBus但它在一些应用里会出现中文输入法候选框不跟随光标、快捷键冲突等问题。我后来切到 fcitx5整体流畅很多。先卸载或者禁用 IBus。不需要真的卸载干净只要把输入法框架切换掉就行sudo apt install fcitx5 fcitx5-chinese-addons fcitx5-config-qt -y然后安装一个输入法引擎。如果不想用系统默认的拼音可以装搜狗输入法 for Linux或者拼音库更完整的fcitx5-rime。我个人的体验是fcitx5-chinese-addons自带的拼音已经够日常用Rime 适合需要高度自定义词库的人搜狗适合从 Windows 过来、拼音习惯已经固化的用户。关键在环境变量。如果不设置环境变量很多 Qt 程序或 Electron 应用不会走 fcitx5。编辑/etc/environmentGTK_IM_MODULEfcitx QT_IM_MODULEfcitx XMODIFIERSimfcitx或者只对当前用户生效sudo tee -a /etc/environment EOF GTK_IM_MODULEfcitx QT_IM_MODULEfcitx XMODIFIERSimfcitx EOF我建议写成系统级环境变量避免某些软件以 root 运行时输入法失效。设置完成后注销重新登录或者重启。如果切到 fcitx5 后某些软件里依然打不出中文检查软件是否支持 XIM 协议。对不支持 XIM 的软件可以临时把这一条也加上XIM_PROGRAMfcitx5但注意这属于兜底方案不是所有软件都认。4.4 系统更新与内核版本管理不翻车的小技巧日常使用中系统更新也是一件容易被忽略的操作。22.04 的更新提示经常会在装完驱动后弹出来这时不要盲目点全部升级。我的习惯是先看更新内容里有没有 Linux 内核和 NVIDIA 驱动如果有先把/etc/apt/sources.list熟悉的源站测试一下延后或者手动指定更新sudo apt update sudo apt list --upgradableNVIDIA 驱动和内核更新如果同时进行重启后很容易出现 DKMS 重编译失败导致进不了桌面。建议驱动相关的更新单独执行执行完确认nvidia-smi正常后再更新内核。另外Ubuntu 22.04 默认不自动清理旧内核时间久了/boot分区会满导致后续更新失败。清理旧内核dpkg --list | grep linux-image sudo apt purge linux-image-旧版本号但保留当前运行的内核别一次清光否则重启后没有可用内核。5. 卸载 Ubuntu 22.04不破坏 Windows 引导的操作顺序5.1 先在系统内删除引导项再清理分区卸载 Ubuntu 和卸载普通软件不是一回事。如果你装了双系统想完全退回 Windows操作顺序错了很容易让 Windows 也起不来。我的建议是先删引导项再删分区。引导项删除在 Ubuntu 里用efibootmgrefibootmgr -v这会列出当前所有启动项找到 Ubuntu 对应的项通常类似Boot0000* ubuntu。确认编号后删除sudo efibootmgr --delete-bootnum --bootnum 0000注意--bootnum后面跟的是四位数比如0000不是 0。删除引导项之后再用磁盘工具删除 Ubuntu 分区。可以在 Ubuntu 的 live 环境里用 GParted也可以直接在 Windows 的磁盘管理里删除。我建议在 Windows 磁盘管理里做因为这样对 Windows 自己更安全。你需要在 Windows 下按 WinX 打开磁盘管理找到安装 Ubuntu 时创建的分区通常是 EFI 分区旁边、根分区、home 分区、swap 分区几个未分配空间或 ext4 分区右键删除卷。如果看不到分区类型可以用 diskpart 确认diskpart list disk select disk 0 list partition分区列表里 ext4 分区一般显示为主分区大小和你当时规划的一致。删除时务必小心别把 Windows 的系统分区删了。5.2 修复 Windows 引导的最后一步删完 Ubuntu 分区后最容易被忽略的是Windows 的引导配置里可能还有 GRUB 的残留项或者 EFI 引导顺序还把 GRUB 放在第一位。这时如果直接重启可能黑屏或者提示找不到操作系统。建议你准备一个 Windows PE 启动盘进入 PE 后使用引导修复工具或者手动执行bcdboot C:\Windows /s S: /f UEFI注意C:是 Windows 系统盘符S:是 EFI 分区盘符实际以 PE 里看到的为准。执行完后再用bcdedit /enum firmware检查启动项列表把残留的 GRUB 或 Ubuntu 启动项删掉bcdedit /delete {标识符}还有一种更稳妥的办法如果你本来就不打算保留 Ubuntu 的 EFI 分区可以直接在 diskpart 里选择对应的 EFI 分区删除后重建 Windows 引导diskpart select disk 0 select partition 1 delete partition override create partition efi size100 format quick fsfat32 labelSystem assign letterS exit bcdboot C:\Windows /s S: /f UEFI但这一步风险很高如果你对分区结构不够了解建议只做删除引导项 删除分区 bcdboot 重写 BCD不要动 EFI 分区的重建。卸载操作里我最后悔的一次经历是当时觉得删分区之后总该没事了结果忘了 EFI 引导顺序里还有 ubuntu开机直接卡在 GRUB 命令行界面。所以顺序一定是先删引导项再删分区最后做 Windows 引导修复三步缺一不可。6. 最后的几点体会把这一圈折腾下来我最大的感受是Ubuntu 22.04 确实比之前的版本稳定不少尤其是桌面环境、Wayland 兼容性和默认软件源包的质量。但只要是装系统、碰硬件驱动就别指望一次成功。我说几个自己反复用到的排查习惯应该能帮你省不少时间。第一任何驱动问题先看日志。WiFi 消失了看dmesg | grep -i firmware网卡速度不对看ethool的协商结果NVIDIA 装不上看/var/log/apt/term.log。日志比百度经验更可靠。第二不要一上来就编译内核。热搜里rk3566 构建 Ubuntu 系统没有 WiFi 驱动这种情况很多人直接重新编译整个内核其实先确认设备树有没有正确匹配、固件有没有被打包进去往往几分钟就能解决。编译内核是最后的办法不是最快的办法。第三Ubuntu 的 LTS 版本也不是无脑升级就好。22.04 的 HWE 内核栈虽然能支持新硬件但如果你长时间不更新驱动和内核会慢慢出现偏离。系统级的重大更换操作建议做完之后立刻用timeshift或者至少备份一份重要配置别裸奔。最后再补一个小技巧如果你在局域网里经常要远程登录 Ubuntu除了 xrdp也可以试一下gnome-remote-desktop它在 22.04 上默认支持 RDP和 GNOME 桌面集成度更高配置方式比 xrdp 简单。不过它有一些显示器相关的限制如果不喜欢折腾xrdp 依旧是更通用的方案。