直接在控制台使用“更换镜像”或“重新实例化”功能选择官方提供的 Debian 11 镜像是最稳妥的方案,尽量避免通过 ISO 手动安装。
先说结论:优先使用云平台官方镜像库重装,手动导入镜像仅在有特殊内核需求时考虑。
- 适合:需要保留实例配置但更换操作系统的场景
- 先准备:备份数据并确认 SSH 密钥对可用
- 验收:验证网络连通性与云初始化状态
命令速用版
重装主要通过控制台完成,以下命令用于重装后的环境验证:
ssh -V
uname -m
systemctl status cloud-init
ip addr show
为什么会这样
兼容性问题的核心通常不在系统本身,而在于云初始化组件和驱动。甲骨文云的实例依赖 cloud-init 在首次启动时配置网络、写入 SSH 公钥并挂载元数据服务。官方镜像预装了适配的驱动和配置脚本,而手动安装的 Debian 往往缺少这些组件,导致启动后无法联网或无法登录。
此外,实例的架构(ARM 或 x86)必须与镜像架构严格匹配,否则无法引导。引导模式(UEFI 或 Legacy)也需与镜像一致,现代实例通常强制要求 UEFI。
分步处理
- 数据备份:重装会清除系统盘数据,操作前务必创建实例备份或手动快照。
- 控制台操作:进入实例详情页,选择“更多操作”中的“更换镜像”或“重新实例化”。
- 选择镜像:在平台镜像列表中查找 Debian。如果看不到 Debian 11,可尝试筛选“所有镜像”或检查区域支持情况。
- 确认密钥:确保选择的 SSH 公钥与你本地持有的私钥匹配,否则重装后将无法登录。
- 启动实例:确认配置后提交,等待实例状态变为“运行中”。
怎么验证是否生效
实例启动完成后,通过 SSH 尝试登录。登录成功后执行以下检查:
systemctl status cloud-init
cat /etc/debian_version
ping -c 4 8.8.8.8
如果 cloud-init 状态为 active (exited) 且能 ping 通外网,说明网络配置和初始化脚本已正常工作。
常见坑
- 架构不匹配:Ampere (ARM) 实例不能安装 x86 镜像,反之亦然。在控制台选择镜像时务必看清架构标识。
- SSH 密钥格式:控制台通常支持 OpenSSH 格式,确保私钥权限正确(chmod 600)。
- Cloud-init 卡住:如果首次启动时间过长,可能是 cloud-init 在等待元数据服务。检查实例日志中的控制台输出。
- 网络接口名:Debian 11 默认使用预测性网络接口名(如 ens1),不要强行改为 eth0,除非你清楚如何修改 udev 规则。