CentOS开机报错"error can't find command ':'"处理方法
本文为故障描述和问题记录。converterP2V迁移CentOS7到虚拟机,开机报错"error can’t find command ‘:’"的处理方法。
本文为CentOS7的操作记录,其他版本可以参考,请以实际环境为准。
————————————————
原创不易未经本人允许请勿转载,发现必究,谢谢。
问题描述:
在运行Converter P2V迁移程序后,将CentOS 7迁移为虚拟机后,虚拟机开机报错,会一直卡在引导前 显示”error can’t find command ‘:’”。
需要再手动敲回车确认后,重新引导进入系统。
问题定位及解决方案: 重启后会在引导前报错,可能是系统有问题或者grub文件有问题。grub是引导操作系统的程序,它会根据自己的配置文件,去引导内核,当内核被加载到内存以后,内核会根据grub配置文件中的配置,找到根分区所使用的文件系统对应的驱动,通过根分区文件系统对应的驱动,挂载根分区,从而达到启动操作系统的目的。
如果grub.cfg文件内有程序被修改,可能会导致引导故障,系统起不来。
先排查系统问题,确认无误,基本可以确认是grub文件的问题。
具体grub文件位置视系统配置而定,基本都是在/boot/grub下,进入文件夹,修改对应找到的grub.cfg。
cd /boot/grub2/ #grub引导文件夹
vi grub.cfg #编辑grub引导文件
打开文件,下拉找到如下图位置。发现确实是grub文件的问题。
可以看到converter在迁移过程,对grub文件的部分代码做了修改。但是在打注释的时候可能定位错误,#号打在了每行句首,但是每行都漏了:号。所以才会出现开机引导时识别到命令“:”。
所以我们重新编辑文件,在这些有remove by converter的行首补上#号,使注释生效。
保存文件后重启验证,已经不会卡报错,直接引导进系统。