无题 – 李商隐

事情是这样子的,由于执行脚本的需要,需要在编译服务器上更新一个parted命令。但由于编译服务器实在是比较老了(Ubuntu12.0),加之本人对于apt系列命令的运linux必学的60个命令用不是很熟悉。除了软件源比较旧无法找到之外,还乱用ios模拟器auios12torem服务器是什么o服务器的作用ve 这个子参数,得,这下子系统的一些关键的依赖库和包都给 remove,然后随之而来的,就是系统在不停地重启,软件商店然后就再也起不来了,开机就卡死了,且连 tty 都进不去

一次误操作把公司的编译服务器给搞挂了

从终端打印的 Log 上看(这件事其服务器租用实过了蛮久了,遗憾的是当时的 Log 没有保存),确实是和 package system有关。所以这边就寻思着在 grub 界面选择 recovery 模式启动,因为 grub 在 revovery 模式中提供了一些系统修复模块的使用,其中便有 p服务器的作用ackage system 的修复。由于没有保存现场截图,这里抓一张网络相似的图,如下:

一次误操作把公司的编译服务器给搞挂了

一般来说,点击 dpk电脑截图快捷键g 项,等待系统修复应该就可以了吧。但是事与愿违。点击之后结果还是linux命令卡住了,卡了两个多小时。 不知道是系统(grub)太老了还是什么原因,这方法不行。经过不懈的测试和多次的重启(软件管家狗头)电脑截图快捷键ctrl加什么,最后连 grub 都突然不见了,就是服务器开机后直接进入BIOS, grub 引导菜单不见了

一次误操作把公司的编译服务器给搞挂了

貌似只能重装系统???之后又想了一下,觉得还服务器内存条和普通内存条区别是有办法修复的(Linu服务器系统x一切皆文件),毕竟系统还是在硬盘上不是?

解决的软件工程专业思路

  • 想办法进入编译Linux服务器系统的终端
  • 修复 package system
  • 重装 grub 引导菜单

曲折的步骤

  • 准备一个U盘,U盘里面是预刻录好的ubuntu系统(可服务器怎么搭建能久一点的比较好,我这里使用的是Ubuntu18.04)

  • 电脑启动的时候,BIOS里面选择U盘启动

  • U盘启动后进入 Ubuntu 临时安装界面,这个时候就可以打开终端,通过sudo fdisk -l可以看到原来存储编译服务器系统(这里指的是根/)所在的块设备(假设是 sda1)

  • 通过U盘中的系统,chroot到硬盘中的系统(之后终端的运行环境就切换到服务器内存条和普通内存条区别了硬盘里面的编译服务器系统),命令如下:

    //找到服务器系统分区
    sudo fdisk -l  
    //挂载服务器系统分区到U盘的 /mnt 文件夹
    sudo mount /dev/sda1 /mnt 
    //挂载一些必要的系统文件夹,并使用chroot命令,切换运行环境(从U盘到编译服务器的硬盘)
    sudo mount --bind /dev /mnt/dev
    sudo mount --bind /proc /mnt/proc
    sudo mount --bind /sys /mnt/sys
    cd /mnt
    sudo chroot . ./bin/bash
    
  • 修复 package system,具体可参考 askubuntu.coios启动器m/q软件管家uestions/1… 以下为示例:

    sudo apt-get clean
    sudo apt-get install -f
    sudo dpkg --configure -a
    
  • 重装 grub 引导菜单,Ubuntu有现成的命令可以参考并使用的,以服务器怎么搭建下两种我都试过,是可以的:

    • 软件管家命令行模式
    sudo grub-install /dev/sda
    sudo grub-mkconfig -o /boot/grub/grub.cfg
    
    • 结合gui界面操作
    sudo apt install boot-repair
    boot-repair
    

然后,然后就以为是可linux必学的60个命令以了,保存,开机。

一次误操作把公司的编译服务器给搞挂了

结果,还是无法在BIOS上看到 g电脑怎么录屏rub 引导菜单,正当我百思不得其解的时候,无意中地点击了一下BIOS系统的其中一个设置(编译服务器的牌子为华硕ASUS):

一次误操作把公司的编译服务器给搞挂了
,经过测试发现,操作系统类型如果选择了Window U软件工程专业EFI mode 就无法看到 Ulinux是什么操作系统buntu 的 grub 界面了,需要选择Other OS才可以。选择重启后就看到了正常的 grub 引导菜单了,编译服务器的系统也可以正常跑起来了,哈哈哈哈哈哈!!!!!!

结论

Q:那是不是代表我之前那一步重装grub是多余的?

A: 一半吧,因为目前显示的 grub 引导菜单就是我之前使用命令更新后的版本,且这个服务器是什么版本软件技术的grub菜单的 recovery 模式也是ios模拟器可以正常使用的,包括 d服务器地址pkg 修复项。这就表明重装 grub 的命令是正常运行的,只不过针对这次的 package system 问题可能用不到而已,至于为啥 BIOS 会突然自动设置回Window UEFI mode,其实我也不知道,这个到没有深究,服务器还是太老了(我太菜了)。

其实这招 从U盘的Linux系统切换到硬盘中的Lin电脑怎么连接wifiux系统在你无法通过硬盘进入系统但又需要操作硬盘里面的系统的时候会用到,这里的修复 package system只是简单的个例而已。