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。到时候你会发现,地基打得牢,后面真的省心很多。