一线国际大厂,都没有提供重装系统的功能,系统和卷是绑定的,所以只提供更换引导卷的功能,其实国内有的小厂的vps重装系统,也是换卷,如果你把系统分区加密后,再DD系统后,发现系统又多出一倍的磁盘空间出来(使用lsblk多了一个sdx的卷,这个卷也是可以mount后使用的),不是刻意为之,因为vps的磁盘,在主机是可以访问的,所以才有加密的需求。然后就有这个意外发现。
Oracle 重装系统。
了解了他们是怎么玩卷的,当然就好办事了。如果让实例列表里打”始终免费“ 的标签,就必需要保留一个可以运行”始终免费“ 的实例,这个非常重要!以下简称这个为A实例。
- 查看A实例详情,把系统镜像的OCID复制出来备用,创建新实例,选择我的镜像,就可以使用A实例镜像的OCID了。
- 正在运行的实体,通过替换引导卷的把向导使用A实例镜像的OCID,系统会自动先分离旧的,再附加新的系统.
- 通过替换引导卷的方式,先备份/克隆A实例的引导卷,取个名字。以后可以用这个引导卷的界面上,创建新实例。
- 如果是arm系统,可以开出配置更好的实例,这种方式会丢掉”始终免费“的标签。可以直接使用dd脚本,重装系统。
前面三种都是使用原厂系统,其中第一种,可能会遇到登录不上的情况,新下载的privatekey 无效,当然通过控制台的web连接生成的key也是无法登录的,opc的密码更是不可能知道。
解决重装系统privatekey无效,无法登录的问题。
- 先停止新实例,分离引导卷。
- 在原来可以登录的A实例上,使用附加存储卷把B的引导卷附加进来。
- 在A实例上把新的卷mount进来,修改公钥和私钥和权限(实际上内容是一样的),我是通过passwd修改A实例的shadow里的密码,替换mount进来/etc/shadow里的opc的密码,也可能是ubuntu用户,同样的操作,这种方式别忘了要修改sshd_config开启账密登录。然后umount、分离。
- 在B实例上重新附加修改后的引导卷。
- 开机,然后就可以愉快的玩耍了。
还没完呢?
一般新实例,都是使用原来虚拟子网络,理论上一切完好,实际上oralcecloud-init的脚本,不光是修改了登录,还加上了iptable规则,等你一顿操作猛如虎后,发现你的服务都不可用。除了ssh,因为这个规则就是写在sshd之后。
好吧,删除这个规则或者启动ufw后。是真的可以愉快的玩耍了.