logo NodeSeekbeta

甲骨文arm ubuntu 24系统dd成debian13教程

先用chatgpt 做攻略,告诉他要用脚本https://github.com/bin456789/reinstall dd系统 安装debian13,让他做一份详细教程,教程中的备份引导卷这一步骤我没有做,重装前的检查工作也没做,因为原来arm ubuntu系统没有问题,当然准备工作最重要的是私钥公钥你都要有,然后,就是先ssh原系统 passwd 命令,得到root 密码,然后,在实例 操作系统管理 控制台连接 用root 登录,就放在那里,等ssh dd时,被断开,可以在控制台页面看到整个dd系统安装过程,心理有底,不会焦虑。

总之,按照ai的这份攻略,中间没有踩坑,dd系统 大概过程6分钟搞定

已将教程中的 Windows 用户名统一改为 admin,并保留 Linux 管理员账号 admin 的设置。论坛发布时,读者仍需把 C:\Users\admin 改成自己的 Windows 用户目录。

Oracle ARM VPS 使用 reinstall 脚本安装 Debian 13 教程

一、本次环境和结果

  • 云平台:Oracle Cloud Infrastructure
  • 实例架构:ARM64 / AArch64
  • 实例类型:VM.Standard.A1.Flex
  • 原系统:Ubuntu 24.04
  • 新系统:Debian 13 ARM64
  • SSH 用户:root
  • SSH 端口:22
  • 安装方式:reinstall.sh debian 13
  • 结果:安装成功,SSH 密钥登录正常

本文中的 Windows 用户名统一使用:

admin

实际使用时,请将:

C:\Users\admin

替换成自己的 Windows 用户目录。

成功登录后的典型信息:

Linux localhost 6.12.94+deb13-arm64
aarch64
root@localhost

这说明 Debian 13 ARM64 已经安装成功。

二、重要结论:不要把 Debian 安装误当成 RAW DD

本脚本有两种相关用法。

推荐方式:安装指定 Linux 系统

bash /root/reinstall.sh debian 13

适合本次任务,脚本会自动处理:

  • Debian 13 ARM64 安装
  • EFI/GRUB 引导
  • 磁盘分区
  • 网络配置
  • SSH 服务
  • SSH 公钥
  • root 或普通用户配置

RAW DD 方式

bash /root/reinstall.sh dd --img "https://example.com/arm64.raw.xz"

这种方式要求:

  • 必须是 ARM64/AArch64 镜像
  • 必须是 RAW 或固定大小 VHD 镜像
  • 不能直接使用 Debian ISO
  • Linux RAW 镜像不会自动修改网络和 SSH
  • 需要自行处理 cloud-init、网络和登录密钥
  • 当前脚本 README 已将 DD RAW 功能标记为弃用

因此,安装 Debian 13 时,优先使用:

bash /root/reinstall.sh debian 13

三、重装前检查

1. 备份 OCI 引导卷

重装脚本会清除整个系统硬盘,包括其他分区。

在 OCI 控制台创建引导卷备份:

Storage
→ Block Storage
→ Boot Volumes
→ 找到对应引导卷
→ Create Backup

同时检查:

  • /home 是否有重要数据
  • Docker 数据是否在系统盘
  • 网站配置和数据库是否需要备份
  • SSL 证书是否需要保存
  • 是否有单独的 Block Volume
  • 是否有其他分区挂载在系统盘上

2. 确认实例架构

原 Ubuntu 中执行:

uname -m

ARM 实例应显示:

aarch64

也可以在 OCI 控制台检查 Shape:

Compute
→ Instances
→ 选择实例
→ Shape

常见 ARM 型号:

VM.Standard.A1.Flex
VM.Standard.A2.Flex
VM.Standard.A4.Flex

3. 确认公网和路由

OCI 控制台确认:

实例详情
→ Primary VNIC
→ Public IPv4 Address

子网路由表中应有:

0.0.0.0/0 → Internet Gateway

安全规则中应允许:

TCP 22

规则可能位于:

Security List

或者:

Network Security Group

4. 准备串行控制台

重装前建议创建:

Compute
→ Instances
→ 你的实例
→ Console connections
→ Create local connection

如果重装后 SSH 暂时无法连接,可以通过串行控制台检查启动和安装过程。

四、Windows 11 准备 SSH 私钥

本次私钥路径示例:

C:\Users\admin\Desktop\oracle2\ssh-key-2026-08-28.key

查看对应公钥:

Get-Content -LiteralPath "C:\Users\admin\Desktop\oracle2\ssh-key-2026-08-28.key.pub"

如果没有 .pub 文件,可以从私钥生成:

ssh-keygen -y -f "C:\Users\admin\Desktop\oracle2\ssh-key-2026-08-28.key" | Set-Content -NoNewline -Encoding ascii "C:\Users\admin\Desktop\oracle2\ssh-key-2026-08-28.key.pub"

注意:

  • --ssh-key 需要填写公钥。
  • 不能填写私钥。
  • 公钥通常以 ssh-rsa 或 ssh-ed25519 开头。
  • 公钥需要完整复制成一行。

五、修复 Windows 私钥权限

如果 SSH 出现:

WARNING: UNPROTECTED PRIVATE KEY FILE
bad permissions
This private key will be ignored

说明 Windows 私钥文件对其他用户组开放,OpenSSH 会拒绝使用。

PowerShell 修复方法

$keyPath = "C:\Users\admin\Desktop\oracle2\ssh-key-2026-08-28.key"
$currentUser = [System.Security.Principal.WindowsIdentity]::GetCurrent().Name

icacls.exe $keyPath /inheritance:r
icacls.exe $keyPath /grant:r "${currentUser}:(R)"
icacls.exe $keyPath

最后一条命令中,应主要看到当前 Windows 用户拥有读取权限。

图形界面修复方法

  1. 右键 .key 文件
  2. 选择“属性”
  3. 进入“安全”
  4. 点击“高级”
  5. 点击“禁用继承”
  6. 选择:
从此对象中删除所有已继承的权限
  1. 回到权限列表,点击“添加”
  2. 添加当前 Windows 用户:
admin
  1. 只保留“读取”权限
  2. 应用并确定

不要保留:

Everyone
Users
CodexSandboxUsers

等普通用户组的访问权限。

六、登录原 Ubuntu

在 Windows PowerShell 中:

$ociIp = "你的公网IPv4"
$ociKey = "C:\Users\admin\Desktop\oracle2\ssh-key-2026-08-28.key"

ssh -i $ociKey "ubuntu@$ociIp"

Oracle Ubuntu 默认用户名通常是:

ubuntu

登录后检查:

uname -m
cat /etc/os-release
free -h
df -h /
lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINTS
ip -br addr
ip route

切换 root:

sudo -i

七、下载 reinstall 脚本

安装下载工具:

apt-get update
apt-get install -y curl ca-certificates

下载 GitHub 当前版本:

curl -fL --retry 3 --connect-timeout 15 -o /root/reinstall.sh https://raw.githubusercontent.com/bin456789/reinstall/main/reinstall.sh || curl -fL --retry 3 --connect-timeout 15 -o /root/reinstall.sh https://cnb.cool/bin456789/reinstall/-/git/raw/main/reinstall.sh

如果 GitHub 下载失败,会自动尝试 CNB 镜像。

设置权限:

chmod 700 /root/reinstall.sh

查看脚本开头:

sed -n '1,100p' /root/reinstall.sh

八、正式安装 Debian 13

把下面命令中的公钥替换为自己的完整公钥:

bash /root/reinstall.sh debian 13 \
  --username root \
  --ssh-key "ssh-rsa AAAAB3NzaC1yc2EAAAA...你的完整公钥..."

本次实际配置的要点:

目标系统:Debian 13
用户:root
公钥登录:启用
SSH 端口:22

使用 SSH 公钥时,不要同时添加:

--password

如果没有 SSH 公钥,才使用临时密码:

bash /root/reinstall.sh debian 13 \
  --username root \
  --password "一个复杂的临时密码"

密码方式安全性较低,而且密码可能出现在命令历史中。

九、看到这个提示后才重启

脚本准备完成后,会显示类似:

Warning: Reinstalling will erase all data on the main disk.
Reboot to start the reinstallation.
Or run "sh reinstall.sh reset" now to cancel the reinstallation.

这时表示:

  • 重装配置已经准备好
  • 还没有真正开始清空系统盘
  • 需要手动重启才能开始安装

确认备份和 SSH 公钥无误后,执行:

reboot

不要执行:

sh reinstall.sh reset

后者是取消重装。

重启后当前 SSH 会断开,这是正常现象。

十、重装期间查看进度

重启后等待几分钟,再测试端口:

Test-NetConnection $ociIp -Port 22

如果端口恢复,可以尝试连接安装环境:

ssh -i $ociKey "root@$ociIp"

进入安装环境后可以查看日志:

tail -fn+1 /var/log/syslog

也可以尝试进入安装器界面:

TERM=screen screen -x root/ -p 1

如果 SSH 无法连接,使用 OCI 串行控制台。

重装期间不要:

  • 连续强制重启
  • 重复执行重装命令
  • 关闭 OCI 控制台
  • 误以为短时间无法 SSH 就是失败

十一、首次登录新 Debian

由于新系统会生成新的 SSH 主机密钥,可能出现:

REMOTE HOST IDENTIFICATION HAS CHANGED

这通常是正常的。

在 Windows PowerShell 执行:

ssh-keygen -R $ociIp

然后连接新系统:

ssh -i $ociKey "root@$ociIp"

检查系统:

cat /etc/os-release
uname -m
hostnamectl
free -h
df -h /
ip -br addr
ip route
getent hosts deb.debian.org
systemctl --no-pager status ssh

正常结果应包括:

Debian GNU/Linux 13
aarch64
SSH active/running
网络和默认路由正常

十二、安装系统更新

脚本为了快速安装,不会自动完成全部系统更新。

登录 Debian 后执行:

apt-get update
apt-get full-upgrade -y
apt-get install -y sudo curl ca-certificates openssh-server
timedatectl set-timezone Asia/Shanghai
systemctl enable --now ssh

检查失败服务:

systemctl --failed

十三、创建普通管理员账号

长期使用 root 不推荐。

创建普通用户:

adduser --disabled-password --gecos "" admin
usermod -aG sudo admin

复制 root 的 SSH 公钥:

install -d -m 700 -o admin -g admin /home/admin/.ssh
cp /root/.ssh/authorized_keys /home/admin/.ssh/authorized_keys
chown admin:admin /home/admin/.ssh/authorized_keys
chmod 600 /home/admin/.ssh/authorized_keys

在 Windows PowerShell 新开窗口测试:

ssh -i $ociKey "admin@$ociIp"

测试 sudo:

sudo -n true
sudo id

看到以下内容说明成功:

uid=0(root)

十四、关闭 root SSH 登录

必须先确认 admin 可以正常登录和执行 sudo。

然后回到 root 窗口执行:

cat >/etc/ssh/sshd_config.d/99-local-hardening.conf <<'EOF'
PermitRootLogin no
PasswordAuthentication no
KbdInteractiveAuthentication no
EOF

检查配置:

sshd -t

没有报错后:

systemctl restart ssh

以后使用:

ssh -i $ociKey "admin@$ociIp"

十五、OCI 子网安全规则是否受影响

DD 或重装系统不会删除 OCI 的云端安全规则。

以下内容仍然存在:

  • Security List
  • Network Security Group
  • Route Table
  • Internet Gateway
  • VNIC
  • 公网 IP

因为这些配置属于 OCI 云平台,不在系统硬盘中。

但系统内部防火墙属于操作系统,重装后可能发生变化:

ufw status
nft list ruleset
ss -lntp

开放端口时必须同时检查两层:

OCI Security List/NSG
+
Debian 系统防火墙

例如开放 TCP 80:

  1. OCI 放行 TCP 80
  2. Debian 防火墙放行 TCP 80
  3. Web 服务监听 TCP 80

十六、以后再次重装时的最简流程

重装 Debian 13

sudo -i
apt-get update
apt-get install -y curl ca-certificates
curl -fL --retry 3 -o /root/reinstall.sh https://raw.githubusercontent.com/bin456789/reinstall/main/reinstall.sh || curl -fL --retry 3 -o /root/reinstall.sh https://cnb.cool/bin456789/reinstall/-/git/raw/main/reinstall.sh
chmod 700 /root/reinstall.sh
bash /root/reinstall.sh debian 13 --username root --ssh-key "你的完整SSH公钥"
reboot

重装后连接

ssh-keygen -R $ociIp
ssh -i $ociKey "root@$ociIp"

如果误操作但尚未重启

bash /root/reinstall.sh reset

十七、常见错误速查

SSH 提示私钥权限过宽

错误:

UNPROTECTED PRIVATE KEY FILE
bad permissions

解决:

$keyPath = "C:\Users\admin\Desktop\oracle2\ssh-key-2026-08-28.key"
$currentUser = [System.Security.Principal.WindowsIdentity]::GetCurrent().Name

icacls.exe $keyPath /inheritance:r
icacls.exe $keyPath /grant:r "${currentUser}:(R)"

SSH 提示主机密钥变化

ssh-keygen -R $ociIp

Permission denied (publickey)

检查:

  • 用户名是否正确
  • 私钥是否匹配公钥
  • 公钥是否复制完整
  • 是否误用 ubuntu 登录新 Debian
  • 私钥是否仍被 Windows 忽略

新 Debian 本教程第一次登录使用:

ssh -i $ociKey "root@$ociIp"

Connection timed out during banner exchange

重点检查:

  • OCI 公网 IP
  • 子网路由表
  • Internet Gateway
  • Security List
  • NSG
  • TCP 22
  • 串行控制台

这通常不是密码错误,而是 SSH 还没有完成握手。

重装后无法启动

Oracle A1.Flex 在该脚本说明中属于成功率不确定的平台。

处理顺序:

  1. 使用串行控制台查看错误
  2. 不要连续强制重启
  3. 等待几分钟确认是否只是启动较慢
  4. 使用引导卷备份恢复
  5. 必要时新建实例测试

十八、最终经验

  1. 重装前一定创建 OCI 引导卷备份。
  2. Debian 13 使用 debian 13 安装入口,不要优先使用 RAW DD。
  3. SSH 私钥必须设置为当前 Windows 用户独占读取。
  4. --ssh-key 填公钥,不能填私钥。
  5. 脚本显示 Reboot to start the reinstallation 后,才执行 reboot。
  6. 重装后出现 SSH 主机密钥变化通常是正常现象。
  7. OCI 子网安全规则不会因 DD 重装而消失。
  8. 第一次登录成功后,再创建普通用户并关闭 root SSH。
  9. 修改 SSH 端口时,必须同时修改 OCI 和 Debian 两侧规则。
  10. Oracle ARM A1.Flex 重装前必须准备串行控制台和备份。

官方资料

教程整理日期:2026-08-29

  • 你这文章很奇怪啊,源系统是ubuntu,为什么又是windows的用户啥的?而且直接用https://github.com/bin456789/reinstall dd不就行了
    大概懂你意思了,不过全是垃圾话。

  • 学习学习@cmxhello #0

  • @mzm #1 我在win11 电脑上远程ssh登录 oracle vps

  • 学习了,用控制台看着dd过程确实心里踏实,下次我也试试这个脚本装debian。

  • @cmxhello #3 很多操作都是没有必要的,直接登录ubuntu系统先切root再直接dd就行。哪里有你这个写的那么麻烦

    su -i 
    curl -fsSL https://raw.githubusercontent.com/bin456789/reinstall/master/reinstall.sh | bash -s debian-13 --password "密码" --web-port 80 && reboot
    
  • @mzm #5 我是新手,ai告诉我这样做,我就这样做了

  • 6,这也行。都是上去就DD的,你这一套又一套啊。厉害。 xhj003

  • 好教程,谢谢分享

  • 请问为什么要换debian,

你好啊,陌生人!

我的朋友,看起来你是新来的,如果想参与到讨论中,点击下面的按钮!

📈用户数目📈

目前论坛共有72653位seeker

🎉欢迎新用户🎉