手工处理 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。

相关推荐
sky_8106138 小时前
Oracle ERP 各模块业务管理功能及底层表说明
数据库·oracle
工业设备方案笔记9 小时前
RK3588 vs RK3568:AI边缘计算项目到底应该如何选择芯片平台?
arm开发·人工智能·目标跟踪·架构·边缘计算
空堂与归9 小时前
Linux 命令实战:AI 开发者必备的终端操作手册
linux
牢姐与蒯11 小时前
Linux基本指令及知识点(二)
linux·运维·服务器
小玮看世界11 小时前
[Python]从“脏”数据到优雅实现:一个IoT滑动窗口最大值问题的测试驱动优化实录
linux·前端·python
RisunJan12 小时前
Linux命令-spell(Unix 拼写检查工具 —— 文本校对的基础利器)
linux·运维·unix
ClouGence12 小时前
加一张临时表,OceanBase Oracle 写入居然快了 30 倍!
数据库·sql·oracle
BLi4ee12 小时前
WSL 文件资源管理器左侧 Linux / Ubuntu 入口恢复
linux·ubuntu
BLUcoding13 小时前
Ubuntu 开机自启 Kiosk 模式浏览器全屏展示网页配置指南
linux·运维·ubuntu
过客而已200315 小时前
Model Context Protocol(MCP)技术深度解析
arm开发