云梦
www.htcp.net

Oracle Cloud 更换 Debian 10 系统

由于 Oracle Cloud 没有 Debian 操作系统,只有 CentOS/Oracle/Ubuntu,这非常不方便,所以,这里介绍如何将 Ubuntu 更换成 Debian。

创建实例就不用介绍了,注意创建实例的时候一定要把 SSH 公钥上传上去,否则创建完了登录不上是一件非常麻烦的事情。

下面教程开始。

一 开启 Oracle 的 VNC 连接

1.1 创建控制台连接

首先打开要更换系统的实例的「实例详细信息」,页面往下拉找到「控制台连接」,然后点「创建控制台连接」按钮。

如图所示:

1.2 上传 SSH 公钥

然后点“或浏览。”把 SSH 公钥上传上去,当然直接粘贴 SSH 公钥也行,然后点创建控制台连接。

如图所示:

1.3 复制 VNC 连接

创建完成状态变成“活动”后,点后面的三个点菜单按钮,然后点「复制 Linux/Mac 的 VNC 连接」选项。

注:因为我的设备是 MAC,所以我选的这个。如果是 Windows 的话,需要点“复制 Windows 的 VNC 连接”按钮,会复制一个 Powershell 命令到剪贴板,但我没有 Windows 电脑,所以不多介绍,请自行摸索。

1.4 编辑刚复制的命令并粘贴到终端

复制出来的命令还不能使用,需要编辑一下,将 SSH 私钥文件指定一下,示例:

PS: 这又臭又长的 OCID 真难受。:(

ssh -i ~/.ssh/demo.key -o ProxyCommand=’ssh -W %h:%p -i ~/.ssh/demo.key -p 443 ocid1.instanceconsoleconnection.oc1.ap-seoul-1.anuwgljrmykpnwqcs41asaj4a6yxxqnx4wpgmryqa5jfy5fqayb7atu3zy3q@instance-console.ap-seoul-1.oraclecloud.com’ -N -L localhost:5900:ocid1.instance.oc1.ap-seoul-1.anuwgljrmykpnwqckervah11rehmuimvmnlfu7ru7tyd2rfipf6xweyk571b:5900 ocid1.instance.oc1.ap-seoul-1.anuwgljrmykpnwqckervah11rehmuimvmnlfu7ru7tyd2rfipf6xweyk571b

将编辑完的命令粘贴到 MAC 的「终端」里,然后输入 yes,

终端输出示例如下:

kane@kanes-Mac .ssh % ssh -i ~/.ssh/demo.key -o ProxyCommand=’ssh -W %h:%p -i ~/.ssh/demo.key -p 443 ocid1.instanceconsoleconnection.oc1.ap-seoul-1.anuwgljrmykpnwqcs41asaj4a6yxxqnx4wpgmryqa5jfy5fqayb7atu3zy3q@instance-console.ap-seoul-1.oraclecloud.com’ -N -L localhost:5900:ocid1.instance.oc1.ap-seoul-1.anuwgljrmykpnwqckervah11rehmuimvmnlfu7ru7tyd2rfipf6xweyk571b:5900 ocid1.instance.oc1.ap-seoul-1.anuwgljrmykpnwqckervah11rehmuimvmnlfu7ru7tyd2rfipf6xweyk571b
The authenticity of host ‘ocid1.instance.oc1.ap-seoul-1.anuwgljrmykpnwqckervah11rehmuimvmnlfu7ru7tyd2rfipf6xweyk571b ()’ can’t be established.
RSA key fingerprint is SHA256:VicVSvgp966cIPCUcW4jzP40QUI1Z30TwCNCcE0LR2g.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added ‘ocid1.instance.oc1.ap-seoul-1.anuwgljrmykpnwqckervah11rehmuimvmnlfu7ru7tyd2rfipf6xweyk571b’ (RSA) to the list of known hosts.

这时候终端一直会定在这里,这样 VNC 转发就连接好了,不要关终端。

1.5 打开 VNC Viewer 并连接到实例

打开 VNC Viewer,地址栏输入 localhost:5900 并回车。

将会提示 VNC 未加密,不用管它,直接点「continue」。

如图所示:

这样 VNC 连接就开启好了,接下来进行下一步操作。

二 设置 netboot 引导

1.1 登录实例的 ssh 并替换文件

直接登录 SSH 把 Ubuntu 的 vmlinuz 和 initrd.img 替换为 netboot 的就行,连编辑 grub.cfg 都不用。虽然不改 grub.cfg 的话,安装界面会是黑色的,但不影响在线安装。

cd /boot
wget https://mirrors.xtom.com.hk/debian/dists/stable/main/installer-amd64/current/images/netboot/debian-installer/amd64/initrd.gz
wget https://mirrors.xtom.com.hk/debian/dists/stable/main/installer-amd64/current/images/netboot/debian-installer/amd64/linux
ln -sf linux vmlinuz
ln -sf initrd.gz initrd.img

1.2 重启并在线安装系统

直接执行 reboot 命令重启或者在「实例详细信息」中执行「重新引导」,重启完了以后 VNC 可能会底下显示 _ 卡一段时间,耐心等等就行。

安装过程我就省略掉了,不会的可以网上找找。
需要注意的是,在分区那个步骤里,一定一定一定要创建一个 EFI 分区并擦空,大小 512MB 就行,否则将会无法开机。Oracle Cloud 是 EFI 引导的。

1.3 手动选择 grubx64.efi 引导

因为 Oracle Cloud 的 EFI 是弱支持,安装完 Debian 还是不能直接开机,会卡在 EFI Shell 里,这样我们先手动选择 grubx64.efi 引导进入 Debian 系统。

输入如下命令:

fs0:
cd EFI\debian
grubx64.efi

如图所示:

1.4 修复 EFI 引导

进入系统后,切换到 root 用户执行如下命令:

apt install sudo -y
cd /boot/efi/EFI
mkdir boot
cp debian/grubx64.efi boot/bootx64.efi

告知 grub 确保备选 bootloader 是最新版:

echo "grub-efi-amd64 grub2/force_efi_extra_removable boolean true" | sudo debconf-set-selections

重启设备,就行了。EFI 已经修复完成。

参考链接:

https://wiki.debian.org/GrubEFIReinstall
https://www.logilab.org/blogentry/6546148

赞(2) 打赏
文章通过 CC 4.0 BY-NC-ND 协议发布,转载请注明出处:云梦 » Oracle Cloud 更换 Debian 10 系统

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

如果您觉得文章有用,可以支持一下本站

支付宝扫一扫打赏

QQ 扫一扫打赏