系统安装完成无法启动问题

一、前绪

我们在给服务器安装系统的时候,经常会出现系统安装结束后重启,然后起不来了。我这里总结了一些常见的问题和原因,如果后续再发现会慢慢加上。
这里我说的系统指的是linux系统,准确的说是centos系统。因为目前在中国互联网公司里,使用centos系统的占大多数。

二、常见的问题

1. BIOS无法读取大硬盘的问题

问题背景:

  1. 服务器比较旧,一般采购与2015年之前。
  2. 安装的系统为centos6或默认使用grub1的系统。
  3. 系统安装到的硬盘,空间大于2T。
  4. grub1安装到的分区,空间大于2T。

问题原因:

  • 在系统安装的过程中,使用光盘或是U盘或是网络(PXE)进行安装。这些安装方式有一个共同点,就是没有经历从bios直接到硬盘的引导过程,所以安装没有问题。
  • 而问题恰恰出在了这个bios到硬盘的引导过程中,因为服务器bios版本比较低,只能识别到小于2T的硬盘,而我们在系统安装的时候,很可能把启动程序(grub)安装到了2T以后的位置(2T外的柱面的第一个扇区),这个安装位置是随机的(但都是在第一个扇区)。
  • 这时候我们通过bios引导硬盘启动的时候,找不到大于2T的bootSector(启动扇区),所以无法启动。

解决办法:

  • 升级服务器bios版本,是bios能够支持识别2T以上的硬盘。这个操作一般需要厂家支持。
  • 重新多安装几次,这个是个概率问题,多试几次没准就安装到2T以内的扇区中了。
  • 新建boot分区,并将/boot分区放到硬盘的最前面。这个方法解决起来还是比较靠谱的。
  • 使用grub2进行引导。

2. BIOS磁盘对应的问题

问题背景:

  1. 服务器使用的是HBA卡,并且卡上有多块硬盘。
  2. 系统安装在了不是第一块盘的位置,例如安装到了sdm而不是sda

问题原因:

  • grub对磁盘设备的代号(例如sda、sdb)使用的是检测到的顺序,也就是说先识别到了哪块硬盘,哪块盘就是sda。
  • 而我们安装的grub配置文件很可能对应到了错误的盘号上(有点漂盘的意思),这个配置文件在 /boot/grub/device.map。
  • 这就造成了服务器启动的时候从错误的硬盘启动,而错误的硬盘里没有安装系统,所以无法启动。

解决办法:

  • 进入HBA卡中,修改硬盘的识别顺序,例如在系统盘加入boot参数(alt + b)。这样使系统盘保持是sda。
  • 修改/boot/grub/device.map,使之对应到正确的盘符。也可以安装grub的时候加入 –recheck参数,会自动处理对应关系。
    原文作者:小小运维
    原文地址: https://www.jianshu.com/p/2029e094c9eb
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞