美文网首页系统运维专家我爱编程
系统安装完成无法启动问题

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

作者: 小小运维 | 来源:发表于2018-08-04 18:54 被阅读152次

    一、前绪

    我们在给服务器安装系统的时候,经常会出现系统安装结束后重启,然后起不来了。我这里总结了一些常见的问题和原因,如果后续再发现会慢慢加上。
    这里我说的系统指的是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.haomeiwen.com/subject/zqimvftx.html