相信很多人在使用云服务器的时候都会碰到系统忘记密码,或者弱密码被爆破修改,而各类厂商的云面板功能不一,比如国内腾讯和阿里都支持修改密码,而国外的甲骨文没有修改密码选项,那么此时不用着急,只要可以连接VNC,或者分离附加引导卷就不用进行重装系统等删除服务器数据之类的操作,那么接下来我就演示一下Oracle的流程

演示步骤

首先我们分离需要修改密码的机器的引导卷

然后在另一台机器上附加刚才分离的卷

然后在被附加的机器上执行一下命令

1
2
3
4
5
6
7
#建立连接
sudo iscsiadm -m node -o new -T iqn.2015-02.oracle.boot:uefi -p 169.254.2.2:3260
sudo iscsiadm -m node -o update -T iqn.2015-02.oracle.boot:uefi -n node.startup -v automatic
sudo iscsiadm -m node -T iqn.2015-02.oracle.boot:uefi -p 169.254.2.2:3260 -l
#断开连接
sudo iscsiadm -m node -T iqn.2015-02.oracle.boot:uefi -p 169.254.2.2:3260 -u
sudo iscsiadm -m node -o delete -T iqn.2015-02.oracle.boot:uefi -p 169.254.2.2:3260

接着使用命令查看卷信息,一般来说是sdb,然后把efi分区挂载到目录

1
2
fdisk -l
mount /dev/sdb15 /mnt

再接着就下载netboot文件,放到里面,然后我们直接分离(ps:其实这里已经可以使用DD对拷把卷重新换个系统,但是假如我们需要的是里面的数据)

1
2
3
4
5
6
7
8
9
10
#这里要注意,如果不是arm架构,请根据CPU架构自行下载,下载链接放在文章尾部
wget https://pan.alybaba.top/soft/netboot.xyz-arm64.efi
chmod 755 netboot.xyz-arm64.efi
mv netboot.xyz-arm64.efi /mnt/
#确认权限一致
ls /mnt/EFI/BOOT/ -al
#分离
umount /mnt
sudo iscsiadm -m node -T iqn.2015-02.oracle.boot:uefi -p 169.254.2.2:3260 -u
sudo iscsiadm -m node -o delete -T iqn.2015-02.oracle.boot:uefi -p 169.254.2.2:3260

然后我们进行分离附加操作,同上。接着登录到控制台,然后连接vnc,接着让服务器启动,我的是甲骨文,直接点控制台,其他国内外大厂基本一致,要么是VNC,要么是控制台。我们直接选择启动

然后我们按ESC,进入bios,依次boot manager,EFI Internal Shell,输入FS0,搞错了..重新来

依次Boot Maintenance Manager,Boot Options,Add Boot Option,回车,选择我们的文件回车,Commit Changes and Exit,再重复一遍操作就会进入netboot的efi(我是按了两遍,按人品来说是一次就行了)
做到现在我发现了很大的问题,我发现我怎么按都进不了救援模式,之前我是有操作过的,进救援模式,直接改根目录,修改密码,有密钥直接改ssh配置文件就行了。很奇怪,所以我不得不重装系统了,后续再看看是什么原因,现在只能重装系统了,还好没有重要文件
我们选择Linux Network Installs (arm64)

再选择自己喜欢的系统重装,这里我选择大便12

接着选择基本的命令行安装Text Based Install,然后就是巴拉巴拉的让你选了,最后成功

成功登录

接下来我准备扩容硬盘(只能扩不能缩)

然后命令行进行扩容

1
2
3
4
5
6
7
#安装工具
apt install cloud-utils parted
#找到你的主分区,我的是sda2
fdisk -l
#扩容
parted /dev/sda resizepart 2 100%
resize2fs /dev/sda2

ok。大功告成

总结

是可以进救援模式进行无损改密的,或者拷贝数据再DD系统,也不用像我这么复杂的去进行这么多操作,应该是esc,shift,F2,F8,F10之类的。改天我去虚拟机试试,太久没有操作了,按esc进bios了,太久不玩就会忘记..还是写教程好,忘记了就来翻。然后其实还有很多种办法,比如进入EFI Internal Shell模式,输入PS:0,再用tftp拉取文件,这样的话还需要一台机搭建tftp 服务端。总之办法很多。

相关链接

https://netboot.xyz/downloads/