原因:今天中午手贱对一台闲置(幸好是闲置的,后面会讲)的甲骨文云实例(1c1g x86)执行了apt upgrade。然后等了几分钟都无法登陆,查看哪吒面板显示设备离线了,我当时就知道大事不妙哇!下面记录一下我完整的抢救过程!过程中不断的拷打deepseek,感谢大D老师!
第一步:
登陆甲骨文云实例,进入问题实例A → 操作系统管理 → 启动Cloud Shell链接,发现实例启动就crash,没办法只能重置了
第二步:进入问题实例A存储界面,点击映像获取OCID,然后点击替换引导卷;而后选择映像,输入OCID,这里我遇到了第一个坑,这个元数据我输入了ssh公共密钥,可是后来启动时不生效,我也是醉了。

第三步:重启实例A,发现能起来,但是密钥登陆不了,cloud shell中root密码也登陆不了,这时候大D老师告诉我可以挂载到别的实例上,重置密钥;
第四步:分离实例A的引导卷
第五步:将分离的引导卷绑定到实例B上,但是实例B中附加块存储卷中的按钮居然是灰的,人都麻了
第六步:绝望之际,大D老师告诉我可以用oci命令进行附加:
6.1:安装oci工具,命令如下:
bash -c “$(curl -L https://raw.githubusercontent.com/oracle/oci-cli/master/scripts/install/install.sh)”
6.2: 重启shell:
exec -l $SHELL
6.3: 安装配置oci,过程中要求你输入用户OCID、租户OCID、区域:分别在用户设置和信息中查找输入就行,其他选项都是回车就好了。设置完成中将公钥/root/.oci/oci_api_key_public.pem填写到用户设置中的API密钥
oci -i
第七步: 使用oci命令重新附加块存储,命令中的volume-id就是块的资源ID
oci compute volume-attachment attach-iscsi-volume --instance-id {实例B的ID} --volume-id {已分离的实例A的}
第八步, 挂载块存储卷并修改配置
8.1: 获取 iSCSI 命令并连接:
附加成功后,在实例B的“附加的块存储卷”下,找到新附加的卷,点击操作菜单,选择“iSCSI 命令和信息”。
复制窗口中的“附加命令”。以 root 或具 sudo 权限的用户 SSH 登录实例B,粘贴并运行这些命令,将远程卷映射到实例B的本地设备。
8.2: 识别新设备并挂载:
在实例B上运行 lsblk 或 fdisk -l 命令,查看新附加的设备。通常,新设备是系统盘(如 /dev/sda)之外的另一个,命名为 /dev/sdb 。
创建挂载点:mkdir -p /mnt/rescue
挂载设备: mount /dev/sdb1 /mnt/rescue。
8.3: 进行配置修改:
将公钥写入/mnt/rescue/.ssh/authorized_keys中
8.4:卸载:umount /mnt/rescue
第九步:
9.1: 从实例B分离卷:
再次回到实例B的“iSCSI 命令和信息”窗口,复制“分离命令”。
在实例B的 SSH 会话中粘贴并运行这些命令。
命令执行成功后,回到 OCI 控制台,找到实例B“附加的块存储卷”下的此卷,点击其操作菜单中的“分离”。
9.2: 将卷作为引导卷重新附加到实例A:
进入“块存储” → “引导卷”,找到该卷,确认其状态变为“未附加”。
点击卷名称进入详情页,在“资源”下选择“附加的实例”,然后点击“附加引导卷”。
在弹出的窗口中选择实例A,点击“附加”。此操作会将卷重新指定为实例A的引导卷。
第十步:启动实例A:
回到实例A的详情页,点击“启动”。
而后ssh可以链接了,在重新安装一下哪吒,终于搞好了。
写在最后,教训就是:以后再也不手贱apt upgrade了![]()
3 个帖子 - 3 位参与者