3、操作系统安装:Ubuntu 22.04 LTS 安装与配置、系统初始化、SSH远程连接设置

好,咱们进入第三课。说实话,很多搞AI部署的朋友,上来就急着装驱动、配环境,结果系统本身没弄干净,后面各种玄学问题。我个人的习惯是:先把地基打牢,再往上盖楼。这一章,咱们就把Ubuntu 22.04 LTS这个地基,给它夯实了。

3.1 为什么选Ubuntu 22.04 LTS?

你可能要问:Ubuntu版本那么多,为什么偏偏选22.04?

原因有三:

  • LTS长期支持:官方支持到2027年,企业级项目最看重这个。我见过有人用非LTS版本,半年一升级,结果模型推理库全崩了,那叫一个惨。
  • 生态成熟:NVIDIA的驱动、CUDA、Docker、Kubernetes,对22.04的支持最完善。说白了,你踩过的坑,别人早就踩平了。
  • 内核版本适中:5.15 LTS内核,对主流边缘设备(如Jetson、x86工控机)兼容性极好。

核心观点:边缘设备不像服务器,一旦部署很难频繁重装系统。选一个稳定版,能省去你未来两年的运维烦恼。

3.2 安装前的准备工作

嗯,这里我要多说两句。很多人下载镜像直接刻盘,结果装到一半发现U盘不识别,或者BIOS里找不到启动项。我曾经就因为这个,在客户现场折腾了俩小时,脸都丢光了。

3.2.1 下载镜像

去Ubuntu官网下载 ubuntu-22.04.3-live-server-amd64.iso。注意,是Server版,不是Desktop版。边缘设备不需要图形界面,省资源才是王道。

3.2.2 制作启动盘

我推荐用 Rufus(Windows)或 dd 命令(Linux/Mac)。

Windows下用Rufus,记得选DD模式写入,别选ISO模式。原因?DD模式兼容性更好,尤其是针对老旧工控机。

# Linux/Mac 下用 dd 命令(注意:/dev/sdX 是你的U盘设备)
sudo dd if=ubuntu-22.04.3-live-server-amd64.iso of=/dev/sdX bs=4M status=progress
sync

警告:dd命令会清空U盘所有数据。操作前务必确认设备号,别把硬盘给格了。我有个同事就干过这事,后果你懂的。

3.3 系统安装过程

把U盘插上,开机按F2/F10/Del进BIOS,设置U盘为第一启动项。保存重启,你会看到Ubuntu的安装界面。

3.3.1 语言与键盘

选English(US)。别选中文,因为终端里很多错误日志是英文的,中文显示会乱码。键盘布局选English (US)。

3.3.2 网络配置

这里建议先配一个静态IP,方便后续SSH连接。我个人习惯是:

  • 子网:192.168.1.0/24
  • IP:192.168.1.100
  • 网关:192.168.1.1
  • DNS:8.8.8.8, 114.114.114.114

如果你是在内网环境,DNS最好用公司的内网DNS,不然解析会很慢。

3.3.3 磁盘分区

边缘设备通常用SSD,容量不大(128G或256G)。我建议这样分:

挂载点 大小 文件系统 说明
/boot 1G ext4 存放内核和引导文件
/ 剩余全部 ext4 根目录,放系统和数据
swap 8G swap 交换分区,内存不够时用

为什么不分 /home?因为边缘设备通常只有一个用户,分出来反而浪费空间。你想想看,128G的盘,分来分去,最后根目录只剩50G,装几个模型就满了。

3.3.4 用户与主机名

设置一个用户名,比如 edgeadmin。主机名建议有规律,比如 edge-node-01。这样以后管理多台设备时,一眼就能认出是哪台。

3.4 系统初始化配置

安装完成后,系统会自动重启。拔掉U盘,用刚才设置的用户名密码登录。接下来,咱们做几件要紧事。

3.4.1 更新系统

第一件事,把系统更新到最新。这步不能省,因为官方会修复很多安全漏洞。

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

3.4.2 安装基础工具

我每次装完系统,都会先装这几个工具:

sudo apt install -y vim net-tools curl wget git htop lrzsz
  • vim:编辑器,改配置文件必备
  • net-tools:提供ifconfig、netstat等命令
  • curl/wget:下载文件
  • git:版本管理
  • htop:进程监控,比top直观多了
  • lrzsz:支持rz/sz命令,方便从本地传文件

3.4.3 关闭防火墙(谨慎操作)

边缘设备通常在内网,防火墙有时会干扰Docker和K8s的网络通信。我建议先关掉,等环境搭好后再按需开启。

sudo ufw disable

提示:如果你部署在公网环境,千万别关防火墙。老老实实配好规则,只开放22、80、443等必要端口。

3.5 SSH远程连接设置

边缘设备通常没有显示器,全靠SSH远程管理。所以SSH配置必须一次搞定,不然你只能抱着设备去接显示器了。

3.5.1 安装并启动SSH服务

Ubuntu Server版默认装了SSH Server,但以防万一,还是检查一下:

sudo apt install -y openssh-server
sudo systemctl enable ssh
sudo systemctl start ssh
sudo systemctl status ssh

看到 active (running) 就说明成功了。

3.5.2 配置SSH安全策略

默认的SSH配置太宽松了,我建议做以下修改:

sudo vim /etc/ssh/sshd_config

找到并修改以下几行:

# 禁止root直接登录(安全第一)
PermitRootLogin no

# 允许密钥登录(推荐)
PubkeyAuthentication yes

# 关闭密码登录(可选,但更安全)
PasswordAuthentication no

# 修改默认端口(避开扫描器)
Port 2222

修改后重启服务:

sudo systemctl restart ssh

警告:如果你关闭了密码登录,一定要先配好密钥对。否则你把自己锁在外面,就只能去机房接显示器了。我曾经就干过这种蠢事,大半夜跑回公司...唉,不提了。

3.5.3 配置密钥登录

在本地机器上生成密钥对:

# 本地执行
ssh-keygen -t rsa -b 4096 -C "edge-node-01"
# 将公钥复制到边缘设备
ssh-copy-id -p 2222 edgeadmin@192.168.1.100

如果没有 ssh-copy-id 命令,可以手动复制:

# 本地执行
cat ~/.ssh/id_rsa.pub
# 复制输出内容,然后在边缘设备上执行
echo "你的公钥内容" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh

3.5.4 测试连接

在本地终端输入:

ssh -p 2222 edgeadmin@192.168.1.100

如果一切顺利,你应该能直接登录,不需要输入密码。嗯,这种感觉就像你有一把专属钥匙,开门就是爽。

3.6 避坑指南

最后,分享几个我踩过的坑:

  • U盘启动失败:有些工控机只支持Legacy启动,不支持UEFI。制作启动盘时,记得在Rufus里选MBR分区类型。
  • 网卡不识别:部分Realtek网卡在Ubuntu 22.04上需要额外驱动。建议安装前先查一下硬件兼容性列表。
  • SSH连接超时:检查一下客户端的防火墙,或者边缘设备的IP是否配置正确。我曾经因为网关配错,折腾了一下午。

好了,系统装好了,SSH也能连上了。下一章,咱们开始装NVIDIA驱动和CUDA。到时候你会发现,地基打得牢,后面真的省心很多。