Skip to content

一次SmartDataCenter headnode启动失败的修复

headnode启动时显示:

hash mismatch

press any key to reboot

重新启动了几次都是如此。即使是rescue模式也是一样。幸好这只是台测试用的机器,如果真的是一个负责整个数据中心的headnode无法启动,那后果简直不堪设想。目前我还没看到headnode有什么容错的方案。

记得上次关机之前运行了sdcadm experimental update-*命令更新过一些东西,或许是这个过程中出了什么问题。

尝试了几种方法,发现把headnode中的config文件备份下来,重新制作一个启动的U盘,然后把config文件再拷贝过去就可以重新启动了,原来的zones貌似都可正常启动。

具体如下:

  1. 把headnode启动U盘插入到一台Linux机器,把它根目录下的config文件拷贝出来。如果你的已经无法读取了,那我也没办法。
  2. 使用原来下载的img文件重新制作一个启动U盘。
  3. 使用此U盘启动headnode机器,使用rescue模式。同样需要在grub中设置os_console参数。
  4. 使用root登陆(密码文件在下载img文件的压缩包中)
  5. 登陆后设置网络,使此机器可以连通存放config文件的Linux机器。我要使用scp命令来复制。具体可参考SmartOS的网络配置方式。
  6. 在headnode机器上,进入到/mnt/usbkey目录中,将config文件复制到此文件夹下
  7. 完成后重新启动即可解决上述启动问题。2016/04/30 更新:
  8. 再次重启后发现headnode会默认使用PXE方式启动,这样无法启动headnode。修复方法是在headnode自动后,以root登陆,运行/usbkey/scripts/mount-usb.sh 脚本以挂载U盘,然后编辑/mnt/usbkey/boot/grub/menu.lst文件,将“default 0”这行改为“default 1”即可。0对应的就是PXE启动,1对应的就是“Live 64bit”的启动方式。
Avatar

专业Linux/Unix/Windows系统管理员,开源技术爱好者。对操作系统底层技术,TCP/IP协议栈以及信息系统安全有强烈兴趣。电脑技术之外,则喜欢书法,古典诗词,数码摄影和背包行。

Sidebar