前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >记一次Linux踩坑

记一次Linux踩坑

作者头像
Lu说
发布2022-06-07 20:20:51
6020
发布2022-06-07 20:20:51
举报

记一次Linux踩坑

本意是想进入Centos7 BIOS关闭CPU超线程,使用IPMI重启服务器。结果踩进一大坑。

挂盘重启第一次顺利进入系统,且 mount-a没有问题。

然后因为不熟悉按哪一个键进入BIOS,错过了几次,所以连续重启了几次。

发现后面系统进不去了,提示:

输入root密码并没有什么反应,提示认证错误,无法进入紧急模式。

网上说法一大堆,基本无用处。

一般重启进不了系统都是磁盘、或者磁盘挂载的问题。但是我重启之前使用mount -a挂载并没有报错,所以我认为我挂的那24块SSD盘是没有问题的,但是很奇怪,难道是重启过程中磁盘硬件坏啦或者分区损坏了,这种可能性是小概率事件,并且不可能如此凑巧。

既然无法进入紧急模式,那就没法查看系统, 即使怀疑是磁盘问题也需要进入系统查看配置文件或者fsck修复。

所以尝试进入单用户模式救火,至少单用户模式是可以敲一些简单的命令。

在引导选择需要启动的Kernel ,修改为以下配置:

ctrl+x启动, chroot /sysroot 改变目录即可执行命令。

进入系统后首先 mount-a看看有没有问题,发现无报错。再执行 fsck/ 发现不能执行。 vim /etc/fstab 发现该文件并没有写错。又没了头绪。后面尝试强制让Linux启动不进入救援模式,没有成功,然后看到这个启动内核日志就两行

想到尝试修改其启动的时候日志级别,让其日志显示更为详细。

于是再次进入引导页面,将 rhgb quiet 这一项删除,并增加 loglevel=7,也就是不以静默模式启动,打印详细日志。

并让其进入单用户模式。

Before

代码语言:javascript
复制
title Red Hat Enterprise Linux (2.6.32-431.el6.x86_64)
    root (hd0,0)
    kernel /vmlinuz-2.6.32-431.el6.x86_64 ro root=/dev/mapper/vg_geeklab-lv_root rd_NO_LUKS LANG=en_US.UTF-8 rd_LVM_LV=vg_geeklab/lv_swap rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rd_LVM_LV=vg_geeklab/lv_root rhgb quiet console=ttyS0
    initrd /initramfs-2.6.32-431.el6.x86_64.img

After

代码语言:javascript
复制
title Red Hat Enterprise Linux (2.6.32-431.el6.x86_64)
    root (hd0,0)
    kernel /vmlinuz-2.6.32-431.el6.x86_64 rw root=/dev/mapper/vg_geeklab-lv_root rd_NO_LUKS LANG=en_US.UTF-8 rd_LVM_LV=vg_geeklab/lv_swap rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rd_LVM_LV=vg_geeklab/lv_root console=ttyS0 loglevel=7  init=/sysroot/bin/sh
    initrd /initramfs-2.6.32-431.el6.x86_64.img

ctrl+x保持启动,发现日志打印了一堆 /ssd/ssd1、2、3...mount erro的报错,忘记截图了,都是我之前挂载的ssd,在黑暗中发现光了。

进入单用户模式,发现/etc/fstab文件可以编辑,惊喜,于是将之前写入的ssd挂载信息全部删除, reboot

系统正常了!!!

然后我再次使用之前挂载磁盘的脚本挂载了一次ssd,并多次检查文件有无写错, mount-a有无问题,发现均正常。然后我再次点击了重启按钮,发现系统正常进入了。脚本和操作都没有变过,这次无异常。

离大谱!!

然后我再次重启进入bios修改cpu超线程配置,以下配置(不同厂商主板可能不一样)

报错重启发现也正常启动。但发现下面的报错还在:

难受。原来纠结了我这么久的报错居然不是重点。

重点是打印出来的那个 mount error报错。

虽然这次最后还不知道为什么明明我挂载没有问题还是出现启动无法进入系统,但是经过这一次踩坑,对Linux的BIOS和grub算是熟悉了很多,以后有什么问题基本不怕了。挺开心的。

附挂载脚本:

代码语言:javascript
复制
#!/bin/bash
# Time: 2022-02-09
# Version:V1.0
dir=(`echo /ssd/ssd{0..23}`)
disk=(`echo nvme{0..23}n1`)
#disk=(nvme5n1)

for d in ${disk[*]}
do
  echo -----------Begin mount $d---------------
  parted /dev/$d mklabel gpt
  parted /dev/$d  mkpart primary 0% 100%
  sleep 5
  mkfs.ext4 /dev/${d}p1
  sleep 2
  uid=`blkid /dev/${d}p1 |awk '{print $2}'`
  num=`echo $d  |awk -F'n' '{print $2}' | awk -F'e' '{print $2}' `  
  echo "$uid /ssd/ssd$num       ext4    defaults        0 0" >>/etc/fstab
  mount -a
  if [ $? -eq 0 ];then
   echo "$d mounted ok.... "
  fi
done

参考:

  1. https://www.thegeekdiary.com/centos-rhel-6-how-to-change-the-verbosity-of-debug-logs-during-booting/#:\~:text=Removing%20the%20rhgb%20and%20the,to%20debug%20a%20boot%20failure.
  2. https://www.thegeekdiary.com/centos-rhel-6-how-to-change-the-verbosity-of-debug-logs-during-booting/
  3. https://blog.51cto.com/u_14056724/2312671
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-02-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Hadoop集群运维 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 记一次Linux踩坑
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档