说起来挺有意思每隔一段时间就会在群里看到有人问“Ubuntu 22.04 server 到底怎么装”。尤其是这两年22.04 进入稳定的维护周期有人从 20.04 迁移业务有人第一次接触服务器选的就是它还有人是为了在树莓派或虚拟机里跑 ROS、数据库等服务才来折腾。凡是完整装过一次的人都会发现这个版本和早年的 Ubuntu 服务器版差别很大——全新 Subiquity 安装器、交互界面、磁盘分区逻辑、网络配置方式全都变了网上很多老教程根本对不上号。这篇文章就基于我自己的实操经验把从镜像下载、启动盘制作、安装流程、首次配置到常见故障排查的完整链路梳理一遍。物理机、虚拟机、双系统场景我都会涉及适合刚入门的运维新手也适合需要在离线或特殊环境里折腾的老手参考。装完之后你得到的不仅是一个能开机的系统而是一台可以继续承载数据库、容器、Web 服务的基础服务器。1. 安装前的准备工作版本选择、镜像下载与启动盘制作1.1 为什么选 22.04 LTSServer 版和 Desktop 版怎么区分Ubuntu 每两年出一个 LTS长期支持版本22.04 的代号是 Jammy Jellyfish。标准支持期到 2027 年 4 月买了 Ubuntu Pro 之后可以延长到 2032 年对一个生产服务器来说这个生命周期非常关键——你总不希望业务跑了一半系统就停止安全更新。Server 版和 Desktop 版最大的区别在于没有图形界面。安装过程是命令行向导装完默认只有一个终端资源占用低跑服务干净利落。如果你在物理机上只是想体验或日常办公那选 Desktop 没毛病但目标是跑 Web、数据库、容器服务或者想把机器扔在角落里长期开机请直接选 Server。桌面版多出来的那些组件对你没用反而增加攻击面和性能开销。另外一个容易忽略的点是版本号后面带的变体。22.04 官方提供的是 Live Server ISO既支持传统 BIOS 也支持 UEFI还能离线安装。ARM 架构的机器比如树莓派 4B、部分国产板卡要到专门的镜像站下载 arm64 版本别下成 x86_64 的。1.2 镜像从哪下怎么校验文件的完整性官方下载地址是 releases.ubuntu.com 文件名类似ubuntu-22.04.4-live-server-amd64.iso体积大约 2GB 出头。国内用户如果直接从官方源拉速度不理想可以走清华、阿里云、中科大等镜像站下载路径一般是ubuntu-releases/22.04/这个目录。下完之后别急着写盘先校验 SHA256。官方目录里同时提供SHA256SUMS文件下载后执行sha256sum ubuntu-22.04.4-live-server-amd64.iso把输出的哈希值和SHA256SUMS里那串对比一致才能保证文件在传输过程中没损坏。这一步很多人跳过但我在实践中真的遇到过下载不完整导致安装器中途报错的案例多花十秒钟可以省掉后面一小时的排错时间。1.3 启动盘制作工具的选择与差异Windows 环境下我推荐三个工具Rufus、Ventoy、balenaEtcher。Rufus 是轻量级首选但注意写盘模式选择。对 Ubuntu Server 这种大容量 ISORufus 默认的 ISO 镜像模式通常没问题但如果目标机器比较老、UEFI 兼容性差切换到 DD 模式写入的成功率更高。DD 模式本质上是把 U 盘变成一块“原始磁盘”的拷贝和 Linux 下的dd等价。Ventoy 就更有意思了它把 U 盘变成多启动盘直接把 ISO 文件拷进去就能引导不需要反复刷写。我平时维护多台机器一个 32G 的 Ventoy 盘里同时放 Ubuntu Server、Debian、系统修复工具非常省事。缺点是某些老机器的 UEFI 固件对 Ventoy 兼容性不好遇到引导失败就换 Rufus 兜底。Linux 下最稳妥的还是ddsudo dd ifubuntu-22.04.4-live-server-amd64.iso of/dev/sdX bs4M statusprogressof后面是 U 盘设备名比如/dev/sdb千万不要写成/dev/sda写错盘符等于销毁整个磁盘数据这是新手最容易犯的致命错误。写完后用sync让数据落盘再弹出 U 盘。2. 安装过程逐段拆解Subiquity 安装器的关键决策点2.1 引导菜单与安装器工作流程从 U 盘引导后你会先看到一个 GRUB 菜单里面有“Try or Install Ubuntu Server”“Ubuntu Server (safe graphics)”等选项。正常机器选第一项就行如果显卡或驱动导致花屏、无法进入安装界面选 safe graphics 模式可以绕开部分图形渲染问题。22.04 用的底层安装器叫 Subiquity它把整个安装过程拆成顺序步骤语言选择、键盘布局、网络配置、代理设置、软件源镜像、磁盘分区、用户创建、SSH 配置、软件快照安装。每一步都可以返回上一步修改界面虽然是文本模式但支持方向键和回车操作逻辑非常清晰。需要注意的是这个安装器在安装过程中会联网下载部分组件和软件包。如果网络不稳定建议在安装前先确认能顺利访问软件源否则宁可慢一点也要等网络正常再装避免中途卡死。2.2 网络、代理与软件源设置的选择逻辑安装器启动后第一步就是配置网络。默认情况下会自动通过 DHCP 获取地址作为个人服务器这一步通常直接继续即可。但如果你想从一开始就给服务器配置固定 IP需要选择对应网卡手动填写地址、网关和 DNS。这里有一个关键点Subiquity会把你在安装器里填写的网络配置写入最终系统的 netplan 文件。也就是说安装阶段配置好静态 IP后面就不用再改。如果选择 DHCP后续在系统里改成静态 IP 时务必记住自己的配置不然重启后 IP 变了SSH 连不上去就很尴尬。代理设置那一步一般家庭和企业内网环境直接留空即可。软件源那步默认指向archive.ubuntu.com国内用户建议在这里就换成阿里云、清华或中科大镜像能明显加快后续安装速度。安装器界面里选择Mirror后手动修改地址格式类似https://mirrors.aliyun.com/ubuntu/2.3 磁盘分区与 LVM 策略别被默认选项坑到磁盘分区是安装过程中最需要动脑的地方。Subiquity 提供几个选项整块磁盘安装并用 LVM、整块磁盘普通分区、手动自定义分区以及 ZFS 选项。默认推荐的是 LVM 方案。LVM逻辑卷管理相当于在物理磁盘和文件系统之间加了一层抽象好处是以后可以动态扩展分区。安装器默认创建的是一个卷组和一个逻辑卷把根分区整个放进去。对新手我建议直接用这个方案但有一个坑必须知道默认逻辑卷只使用卷组的一部分空间实际上默认配置会直接把整个卷组给根分区后面想缩容比较麻烦。如果你有独立数据盘的计划就别把数据盘放进系统卷组。手动分区是我个人更常用的方式尤其是生产环境。推荐的分区表大概是这样的分区大小类型挂载点/boot/efi512MB~1GBEFI 系统分区/boot/efi/boot1GB~2GBext4/boot/剩余空间减去 swapext4 或 xfs/swap视内存而定swap-/boot单独分区的价值在于内核升级时不容易因为分区满而出问题独立 EFI 分区则是 UEFI 启动的必须项。Swap 的大小按内存来算内存 8GB 以下给 4G swap16GB 以上我一般直接给 8G 或者干脆用 swapfile 方案。服务器内存充足时 swap 更多是兜底不用给太大。还有一点想提醒如果你装的机器只有一块盘且不需要数据隔离那么默认的 LVM 方案最省心。但如果你计划以后做 RAID 或者挂载独立数据盘手动分区时硬盘分区表一定要选对启动方式——UEFI 机器要留 ESP 分区BIOS 机器要装 GRUB 到主引导记录两者搞混了就会出现系统装完却不引导的故障。3. 装完系统之后的第一件事网络、SSH、软件源与基础加固3.1 netplan 网络配置默认 DHCP 改静态 IP安装完成后重启进入系统第一件事就是确认网络和 SSH。22.04 的网络配置统一走 netplan配置文件在/etc/netplan/目录下文件名通常是00-installer-config.yaml。查看当前配置cat /etc/netplan/00-installer-config.yaml默认内容类似network: version: 2 ethernets: ens160: dhcp4: true如果安装器里用了 DHCP 且你希望改成静态地址编辑这个文件network: version: 2 ethernets: ens160: dhcp4: false addresses: - 192.168.1.100/24 routes: - to: default via: 192.168.1.1 nameservers: addresses: - 223.5.5.5 - 8.8.8.8保存后执行sudo netplan apply让配置生效。注意ens160是 VMware 虚拟机下的网卡名物理机上可能是enp3s0、eno1之类。改动网络配置前建议先开一个备用 SSH 会话避免改错 IP 后把自己锁在外面。netplan 的 YAML 格式对缩进极其敏感我见过太多因为少一个空格导致整台机器上不了网的案例改完务必用sudo netplan try先验证确认能联网再apply。3.2 启用 SSH 并做最小化加固Server 版安装过程中向导会问你是否安装 OpenSSH Server我当时建议都选上。如果当时没勾选进系统后执行sudo apt update sudo apt install -y openssh-server sudo systemctl enable --now ssh确认服务状态systemctl status sshSSH 配置在/etc/ssh/sshd_config生产环境我至少会做三件事禁止 root 直接登录PermitRootLogin no、优先使用密钥认证、改用非默认端口可选。修改后记得重启服务sudo systemctl restart ssh防火墙这块如果启用了 UFW先放行 SSH 再启用否则会把自己挤出去sudo ufw allow OpenSSH sudo ufw enable一个小提示刚装完的服务器默认是可以密码登录的如果你没有配置密钥就先不急着关密码认证等密钥测试通过后再关。顺序搞反了等于给自己找罪受。3.3 软件源换源与系统更新22.04 开始apt 的源文件格式从早期的sources.list换成了 deb822 格式实际路径是/etc/apt/sources.list.d/ubuntu.sources。文件内容长这样Types: deb URIs: http://archive.ubuntu.com/ubuntu/ Suites: jammy jammy-updates jammy-backports Components: main universe restricted multiverse Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg换国内源最省事的方式是直接替换URIs里的域名。比如换成阿里云sudo sed -i s|http://archive.ubuntu.com|https://mirrors.aliyun.com|g /etc/apt/sources.list.d/ubuntu.sources sudo sed -i s|http://security.ubuntu.com|https://mirrors.aliyun.com|g /etc/apt/sources.list.d/ubuntu.sources然后执行sudo apt update sudo apt upgrade -yupgrade会把已经安装的软件包更新到当前源里的最新版本刚装完系统建议做一次把内核和基础库都拉到最新。这里有一个经验如果是生产服务器内核大版本更新后提醒你重启可以先不重启继续装完其他软件再一起重启但不要拖太久否则内核和模块版本不匹配会出现莫名奇妙的问题。4. 最常见的翻车现场网卡失踪、虚拟机断网、双系统引导与时间差4.1 网卡不见了怎么办Realtek 网卡驱动的排查链路装上系统后ip a只看到 lo没有以太网卡这是 22.04 server 安装后最常遇到的故障之一。原因十有八九是网卡驱动没有默认编译进内核尤其是部分 Realtek 芯片组的网卡。排查链路是这样的先看硬件是否被识别lspci | grep -i ethernet能看到类似Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411的输出说明硬件在。再用dmesg | grep -i r8169看内核是否加载了驱动模块。如果提示 module not found 或者 firmware 缺失先尝试安装内核扩展模块sudo apt install linux-modules-extra-$(uname -r)装完重启大概率网卡就出来了。如果还没有排查方向转向驱动编译安装可能需要从厂商或开源社区拉取对应驱动源码配合 dkms 做内核模块管理。Realtek 系列网卡在旧款台式机和某些笔记本上翻车率尤其高遇到这种情况别急着重装系统按这个链路走一遍基本能定位。4.2 虚拟机里没网NAT、桥接和网卡兼容性的坑在 VMware 或 VirtualBox 里装 22.04 server装完发现上不了网原因通常不在 Ubuntu 本身而在虚拟机的网络模式。VirtualBox 默认的 NAT 模式下虚拟机可以访问外网但宿主机访问虚拟机需要端口转发VMware 的 NAT 模式默认网段是 192.168.x.x一般 DHCP 没问题。如果虚拟机里dhclient拿不到地址先检查虚拟网卡是否被模拟成 Ubuntu 不认识的型号。VMware 默认的 VMXNET3 在 Linux 下 22.04 是自带驱动的但如果选成了老旧的 AMD PCNet在较新内核里会出现兼容问题。建议把虚拟网卡切换到 e1000e 或 VMXNET3再配一张 NAT 模式的网卡重启后一般能自动获取地址。还有一个容易忽略的点某些虚拟机模板开启了 cloud-init系统在首次启动时会根据虚拟化平台的元数据重新配置网络。这种情况下你手动改完 netplan重启后又被覆盖。解决办法是编辑/etc/cloud/cloud.cfg.d/下的配置文件禁用网络模块或者彻底移除 cloud-init生产环境里如果不需要云初始化功能直接用以下命令清理sudo apt purge cloud-init -y清理完再手动配置网络就不会出现改了又变回去的神奇问题。4.3 双系统引导问题与 Windows 时间差双系统安装 Ubuntu 22.04 server 的场景一般出现在开发机上。装完后最常见的现象是 GRUB 菜单里找不到 Windows或者引导直接被拉回 Ubuntu。这是因为 Ubuntu 安装器默认会把 GRUB 装到 EFI 分区而部分机器原有的 Windows 引导管理器和 Ubuntu 引导存在优先级冲突。解决引导菜单问题首选在系统里执行sudo update-grub它会调用os-prober检测其他系统并把 Windows 加入引导菜单。如果检测不到检查/etc/default/grub里GRUB_DISABLE_OS_PROBER是否为false手动改成false后再执行update-grub。实在搞不定可以用 Boot-Repair 工具它是一款 Linux 下的图形修复工具会自动修复 GRUB、EFI 和 MBR 的问题。另一个双系统用户一定会遇到的现象是Ubuntu 与 Windows 时间相差 8 小时。原因是 Windows 默认把硬件时钟RTC当作本地时间而 Linux 默认当作 UTC 时间。解决方案很简单在 Ubuntu 里执行timedatectl set-local-rtc 1让系统也把硬件时钟当本地时间两边就一致了。注意这个命令会同步修改系统时间执行完再date确认一下。最后分享一个我自己踩过的经验无论你是物理机、虚拟机还是树莓派装完 Ubuntu 22.04 server 后第一件事永远是做一次系统快照或备份。虚拟机平台直接拍快照物理机至少备份一份 netplan 配置和分区表信息。系统如果是在apt upgrade之后才发现网卡驱动出问题想要回到初始状态而没备份就只能从头再来一遍。这个版本的系统我已经装过十几遍从最初的盲目重复到后来的按套路做事最大的感受就是安装过程本身不难难的是装完之后对系统配置的理解——理解 netplan、理解 Subiquity、理解 LVM才是真正能让你在服务器运维路上走稳的东西。
