手工处理 Oracle Cloud ARM 实例在线 DD Rocky Linux 10报错


原始环境

服务器:

  • 云厂商:Oracle Cloud

  • 架构:ARM64(Ampere)

  • 系统:Oracle Linux 7.9

确认命令:

复制代码
cat /etc/os-release
uname -m

结果:

复制代码
Oracle Linux Server 7.9
aarch64

使用 reinstall 脚本 DD

下载脚本:

复制代码
curl -O https://raw.githubusercontent.com/bin456789/reinstall/main/reinstall.sh

执行 Rocky 10 安装:

复制代码
bash reinstall.sh rocky10

脚本自动:

  1. 下载 Alpine 临时系统

  2. 修改 GRUB

  3. 重启进入 Alpine

  4. 再由 Alpine 写入目标系统镜像


遇到的问题

进入 Alpine 后报错:

复制代码
Could not find xda: 00000000

日志显示:

复制代码
extra_main_disk=00000000

查看:

复制代码
cat /proc/cmdline

发现:

复制代码
extra_main_disk=00000000

被写入启动参数。


排查过程

查看磁盘:

复制代码
cat /proc/partitions

结果:

复制代码
sda
sda1
sda2
sda3

说明:

  • 磁盘实际上存在

  • 主盘就是 /dev/sda

  • reinstall 自动识别主盘失败


查看 trans.sh

定位逻辑:

复制代码
grep -n "main_disk\|xda" /trans.sh

发现:

复制代码
if [ -z "$main_disk" ]; then
    error_and_exit
fi

以及:

复制代码
find_xda()

函数会根据:

复制代码
extra_main_disk

寻找真实磁盘。

因为:

复制代码
extra_main_disk=00000000

所以找不到:

复制代码
/dev/sda

导致:

复制代码
Could not find xda: 00000000

解决办法

强制指定:

复制代码
xda=sda

重新运行安装:

复制代码
sudo sh -c 'xda=sda ash /trans.sh'

这里不能用:

复制代码
sudo -E

因为 Alpine 里的 sudo 实际是:

复制代码
doas-sudo-shim

不支持:

复制代码
-E

安装成功标志

最后出现:

复制代码
***** DEL INVALID EFI ENTRY *****

删除旧启动项:

复制代码
Oracle Linux
reinstall (rocky 10)

然后创建新的 EFI:

复制代码
Boot0003* bootaa64.efi

最终:

复制代码
***** DONE *****

表示:

  • 镜像写入成功

  • EFI 修复成功

  • 启动项已注册

  • 可以重启


重启

执行:

复制代码
reboot

系统正常进入:

复制代码
Rocky Linux 10

这次踩坑的根因

不是:

  • ARM 不支持

  • Rocky 10 镜像损坏

  • Oracle Cloud 不兼容

真正原因是:

复制代码
extra_main_disk=00000000

这个参数被错误写入启动命令行。

脚本自动识别主盘失败。

而实际主盘是:

复制代码
/dev/sda

手动指定:

复制代码
xda=sda

后安装立即成功。


下次如果再遇到

看到:

复制代码
Could not find xda: 00000000

直接:

复制代码
cat /proc/partitions

确认磁盘。

如果是:

复制代码
sda

直接:

复制代码
sudo sh -c 'xda=sda ash /trans.sh'

如果是:

复制代码
vda

则:

复制代码
sudo sh -c 'xda=vda ash /trans.sh'

如果是:

复制代码
nvme0n1

则:

复制代码
sudo sh -c 'xda=nvme0n1 ash /trans.sh'

通常就能继续安装。

这次实际上是绕过了 reinstall 脚本的自动探测 Bug,手工指定系统盘完成了 DD。

相关推荐
万粉变现经纪人3 小时前
2026最新Windows11系统CMD安装Claude Code 快速接入DeepSeek V4 Pro在VSCode编程工具中使用保姆级入门教程指南
linux·运维·ide·windows·vscode·macos·编辑器
带土13 小时前
2. ARM处理器概论
arm开发
wxmtwfx3 小时前
Linux 系统内核列表宏解析
linux·list·列表
utf8mb4安全女神3 小时前
shell脚本
linux·运维·服务器
jnrjian3 小时前
LOCAL_LISTENER 为空
oracle
花果山~~程序猿3 小时前
ubuntu20.4下载python3.12
linux
jnrjian3 小时前
Oracle 计算表 + LOBs 大小
oracle
Leon-Ning Liu3 小时前
Oracle恢复DELETE数据的PACKAGE(介绍篇)(仅做研究使用)
数据库·oracle
daad7773 小时前
sitl_5760_io记录
linux·运维·服务器