4. 操作系统安装:Ubuntu Server 22.04 LTS 安装与基础配置

好,咱们进入实战环节。操作系统选型上,我毫不犹豫推荐 Ubuntu Server 22.04 LTS。为什么?因为它在 ARM 架构(比如树莓派、瑞芯微)和 x86 架构上都有极好的兼容性。我在几个边缘计算项目中都用它,稳得很。

说白了,边缘节点不像云服务器,没人天天盯着。系统必须稳定、长期支持、驱动全。Ubuntu 22.04 的 LTS 支持到 2027 年,够你跑好几个项目周期了。

4.1 镜像选择与烧录

先下载镜像。别下错了,要选 Ubuntu Server 22.04.3 LTS。桌面版带 GUI,对边缘节点来说太臃肿。

我的习惯: 下载时顺手校验 SHA256 校验和。有一次我下载的镜像包损坏,烧录后系统启动到一半就卡死。排查了半天,最后发现是镜像问题。从那以后,我每次都会校验。

烧录工具我用 Rufus(Windows)或 dd 命令(Linux/Mac)。

# Linux/Mac 下用 dd 烧录(假设 U 盘是 /dev/sdb)
sudo dd if=ubuntu-22.04.3-live-server-amd64.iso of=/dev/sdb bs=4M status=progress
sync
警告: 确认 U 盘设备名!/dev/sdb 只是示例。我曾经手滑把 /dev/sda(系统盘)给 dd 了,结果...嗯,重装系统吧。

4.2 安装过程要点

插入 U 盘,启动。BIOS 里设置 U 盘为第一启动项。不同设备进 BIOS 的按键不一样,F2、F10、Del 都有可能。你试试看。

安装过程中有几个关键点,我逐个说:

4.2.1 语言与键盘布局

选 English。别选中文。为什么?因为终端里很多错误日志是英文的,中文环境下显示乱码,你排查问题会非常痛苦。键盘布局选 English (US),除非你用的是特殊键盘。

4.2.2 网络配置

边缘节点通常用静态 IP。安装界面里可以手动配置。我建议你记下这个 IP,后面所有远程操作都靠它。

参数 示例值 说明
IP 地址 192.168.1.100 根据你的局域网网段调整
子网掩码 255.255.255.0 标准 C 类网络
网关 192.168.1.1 通常是路由器地址
DNS 8.8.8.8, 114.114.114.114 主备 DNS

4.2.3 磁盘分区

边缘节点一般就一块 SSD 或 eMMC。我建议用 LVM(逻辑卷管理)。为什么?因为后期扩容方便。你想想看,如果系统盘满了,LVM 可以直接加一块物理盘扩展卷组,不用重装系统。

# 典型分区方案(64GB eMMC)
/boot      -> 1GB    (ext4)
/          -> 20GB   (ext4, LVM)
/var       -> 10GB   (ext4, LVM)
/var/log   -> 5GB    (ext4, LVM)
swap       -> 2GB    (LVM)
剩余空间   -> 留空,后续扩展用
重要: /var/log 单独分区。边缘节点日志增长很快,如果不限制,日志写满系统盘是常有的事。我在一个项目中遇到过,节点运行 3 个月后,日志占了 30GB,系统直接挂掉。

4.2.4 软件包选择

安装界面会问你要装哪些软件包。只选 OpenSSH server。其他一概不选。边缘节点要最小化安装,少一个包就少一个攻击面。

4.3 安装后基础配置

系统装完了,重启,拔掉 U 盘。用刚才设置的静态 IP 登录。

ssh username@192.168.1.100

4.3.1 更新系统

第一件事,更新软件源和系统包。

sudo apt update
sudo apt upgrade -y
sudo apt autoremove -y

这个过程可能有点慢,取决于你的网络。我建议你换国内源,比如清华源或阿里源,速度会快很多。

4.3.2 配置主机名

给节点起个有意义的名字。别用默认的 ubuntu

sudo hostnamectl set-hostname edge-node-01
# 编辑 /etc/hosts,添加一行
echo "127.0.1.1 edge-node-01" | sudo tee -a /etc/hosts

4.3.3 配置时区与 NTP

边缘节点的时间必须准确。很多物联网协议(如 MQTT、CoAP)依赖时间戳。

# 设置时区为上海
sudo timedatectl set-timezone Asia/Shanghai

# 启用 NTP 同步
sudo timedatectl set-ntp true

# 查看状态
timedatectl status
避坑指南: 我曾经部署了一批节点,发现设备上报的时间总是差 8 小时。排查了半天,发现是时区没设。边缘节点通常没有 RTC 电池,断电后时间会重置。所以 NTP 必须配好。

4.3.4 配置防火墙

Ubuntu 默认用 ufw。只开放必要的端口。

sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow ssh
sudo ufw enable
sudo ufw status verbose

嗯,这里要注意。如果你后续要跑 MQTT Broker(端口 1883)或 HTTP API(端口 8080),记得开放对应端口。但原则是:只开必要的,关掉所有不用的。

4.3.5 创建普通用户并禁用 root 登录

安全第一。永远不要直接用 root 操作。

# 创建用户
sudo adduser edgeadmin
sudo usermod -aG sudo edgeadmin

# 禁用 root 密码登录
sudo passwd -l root

# 修改 SSH 配置,禁止 root 登录
sudo sed -i 's/PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
sudo systemctl restart sshd

4.4 验证安装

配置完了,做个快速验证。

# 检查系统版本
lsb_release -a

# 检查磁盘空间
df -h

# 检查内存
free -h

# 检查网络连通性
ping -c 4 8.8.8.8

# 检查 SSH 服务
systemctl status ssh

如果一切正常,恭喜你,边缘节点的操作系统就绪了。

总结一下: 操作系统安装看似简单,但很多细节决定了后续运维的成败。分区方案、时区、防火墙、用户权限,这些基础工作做好了,后面部署应用时才不会手忙脚乱。我见过太多项目,因为系统层没配好,导致应用跑起来各种诡异问题。所以,别急,把这一步做扎实。