最后还是没进去,只是一些杂记。
背景:做power cycle测试,在一个ubuntu系统的rc.local里调用了一个shell脚本,每次开机自动运行,执行一些命令后重启。
问题:本来是计划一定条件后停下来,一个小失误导致脚本没有判断功能,机器一进OS就不停重启,根本停不下来。。。
然后想通过单用户模式进OS修改rc.local文件:
方法1:通过GUN GRUB界面按下“e”到recovery模式,之后修改/boot/vmlinuz-xxx...
由于环境特殊只能用串口和SSH远程控制服务器,然后发现和平时正常进OS流程不一样,没有GUN GRUB这个界面,没办法按“e”或者“shift”键,放弃。
方法2:通过grub命令行进单用户模式
在grub命令行模式下,用ls找到系统所在的分区,然后使用root挂载,再使用kernel命令修改单用户模式。但是输入root (hd0, 1)一直提示没有这个命令,怀疑是kernel有问题或者版本相关,网上查了查说是要用root=(hd0, 1),还没试,这时想到了方法3
方法3:简单粗暴安全 把系统盘拆下来放到另一个带系统的机器上
遇到的问题:使用mount nvme1n1挂载的时候一直报错“mount: wrong fs type, bad option, bad superblock on...”。原因是系统盘格式问题,被识别为一个块而不是文件系统,不能直接挂载。
解决办法:用lsblk -f找到nnvme1n1下有两个文件格式的分区,挂载其中一个,发现可以挂载成功。最后可以查看这个系统盘上,所有文件,并删除rc.local下的脚本,问题解决。。。
最后放个学习链接供参考: