服务热线:13121395187

  • 优惠活动
  • 云技术
    • 云服务器运维
    • 云数据库技术
    • 云存储技术
    • 云安全服务
    • 云网络服务
    • 木马病毒查杀
    • 渗透测试服务
    • 服务器迁移服务
    • 高并发业务保障服务
    • 数据库运维/专家服务
  • 云慧采
    • 云服务器
    • 云数据库
    • 云存储
    • 云安全
    • 网络与CDN
    • 视频服务
    • 大数据
    • 物联网
    • 人工智能
    • 开发与运维
    • 企业应用
  • 云代理
    • 阿里云
    • 华为云
    • 腾讯云
  • 客户案例
  • 优惠活动
  • 云技术
    • 云服务器运维
    • 云数据库技术
    • 云存储技术
    • 云安全服务
    • 云网络服务
    • 木马病毒查杀
    • 渗透测试服务
    • 服务器迁移服务
    • 高并发业务保障服务
    • 数据库运维/专家服务
  • 云慧采
    • 云服务器
    • 云数据库
    • 云存储
    • 云安全
    • 网络与CDN
    • 视频服务
    • 大数据
    • 物联网
    • 人工智能
    • 开发与运维
    • 企业应用
  • 云代理
    • 阿里云
    • 华为云
    • 腾讯云
  • 客户案例

Linux系统启动与登录故障排查

系统启动异常:

1,部分centos启动黑屏,无异常报错的场景,可以fsck一下系统盘

2,根分区空间满,以及inode耗尽

3,升级内核或者从老的共享实例迁移到独享规格导致的启动异常
3.1 手动注入驱动 (mkinitrd virtio相关驱动 )
3.2 修改grub 的启动顺序,优先尝试使用老内核启动
3.3 boot目录下面内核的关联文件是否全(下面仅为demo,不同系统内核版本文件不一致,部分内核版本boot下的i386目录也是有用的)

config-4.9.0-7-amd64 
initrd.img-4.9.0-7-amd64  
System.map-4.9.0-7-amd64 
vmlinuz-4.9.0-7-amd64

3.4 /boot/grub/device.map里面的hda改成vda

4,fstab/grub中的 uuid不对,可以直接修改为/dev/vda1这种形式尝试
数据盘分区异常加载起不来的场景,可以去注释ftab所有的行,添加类似下面的启动项尝试,也适用用系统盘快照创建云盘挂载后,uuid一致导致的启动异常,改成非UUID的挂载即可

/dev/vda1 / ext4 defaults 1 1

5,根目录777(部分目录777)也会导致启动异常,或者ssh登陆异常

6,常见的关键目录缺失,有的是软链,也可以看看对应目录下面的文件数量(文件数量要跟同内核版本或者相差不大的版本对比),简单判断

/bin  /sbin /lib  /lib32 /lib64 /etc /boot /usr/bin /usr/sbin /usr/lib /usr/lib64等目录或文件缺失
for i in /bin  /sbin /lib  /lib32 /lib64 /etc /boot /usr/bin /usr/sbin /usr/lib /usr/lib64 ;do ls -l $i |wc -l ;done

7,影响启动的参数
如果参数设置不当,是会导致启动异常的,如/etc/sysctl.conf以及检查rc.local的配置,profile的检查

vm.nr_hugepages 
vm.min_free_kbytes

8,centos的需要selinux需要关闭,走

# cat /etc/selinux/config   
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled 把这一行改成disabled
# SELINUXTYPE= can take one of three values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected.
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

实战案例1–grub修复
背景信息:/boot/grub/grub.conf被误操作清空,系统启动就进入grub状态(centos 6.8)

1,find /boot/grub/stage1
显示为 (hd0,0)
2,确认一下内核的具体版本ls -l /boot去看
image

3,手动设置grub,具体步骤
grub> root (hd0,0) #是说跟分区在第一块硬盘的第1个分区 实际对于前面的find出来的那个文件
grub> kernel /boot/vmlinuz-2.6.32-696.3.2.el6.x86_64 ro root=/dev/vda1 #指明内核路径和根分区,注意ro是只读
grub> initrd /boot/initramfs-2.6.32-696.3.2.el6.x86_64.img #指明initramfs路径启动系统加载驱动
grub> boot #启动上面指定的系统,如果是reboot就等于重启整个系统了,刚才的设置就失效了
如果没有报错的话,即可成功启动,进入到系统内部后需要继续执行下面的操作
4,mount -e remount,rw / 重新挂载分区为读写
5,service network restart
如果提示eth0 eth1失败,ifconfig看不到网卡的话
6,lsmod |grep net
看下virtio_net 这个驱动有没有,如果没有的话(网卡报错基本都不会有)
7,

insmod /lib/modules/2.6.32-696.3.2.el6.x86_64/kernel/drivers/net/virtio_net.ko


8, 重启网络服务,嗨~网通了
9,登陆ssh,找个同版本系统的grub.conf, 拷贝一份过来,不然重启之后又进grub了

实战案例2–文件丢失类异常处理

背景信息:客户反馈系统无法远程登陆,实际系统启动本身就有问题
image

根据报错信息来看,是系统内读取user有问题,需要挂盘查看
1,挂盘后chroot如下 ihave no name,这里本身就是有问题了,说明系统内缺少了什么文件导致异常
image

2,strace跟踪一下chroot的过程,看下丢失的文件

strace -F -ff -t -tt -s 256 -o ch.out chroot /mnt
grep -i "no such" ch.out.pid |grep "so"

image

3,查看对应文件的关系(测试机补图)
image

4,确认系统上丢了最终的libnss_files-2.12.so,尝试拷贝一个

ifconfig eth1 ip netmask mask
route add default gw gwip

image

5,此时已经可以上网了,去拷贝一个同版本的文件试试吧

root登录异常类:

1,/etc/passwd /etc/shadow (用户名 root polikt dbus等关键用户存在与否,文件为空,格式乱(dos2unix)

2,/etc/pam.d 目录下是否有为空的文件及参数设置是否正常,如常见的 system-auth passwd

3,/etc/pam.d 下面所有文件里面涉及的so文件,看看文件是否存在,是否为空 /usr/lib64/security

4,查/etc /lib64 /bin /sbin /usr/bin /usr/sbin等目录有没有size为0的文件

5,/etc/profile /etc/profile.d(打印列表) /etc/bashrc /root/.bash_profile /root/.bashrc 等涉及登陆环境设置的文件是否异常

6,注意内核版本,是否存在新老内核,多更换几个内核试下

7,系统日志也是一个比较重要的检查项(后面介绍下无法登陆怎么检查)

9,ubuntu1204登陆异常 在/etc/login.defs 里面配置了错误的ERASECHAR导致,恢复默认0177即可

configuration error - cannot parse erasechar value

10,输入root后直接login失败三连,日志如下
找个同内核版本的机器对比发现没有/etc/pam.d/login 有一个login.defs
rpm包校验一下,确认login没了,手动创建一个,内容拷贝过来,好了

[root@iZbp1cabe6lyx26ikmjie2Z pam.d]# rpm -V util-linux
missing   c /etc/pam.d/login
[root@iZbp1cabe6lyx26ikmjie2Z pam.d]# rpm -ql util-linux|egrep -vi "gz|mo|share"
/etc/mtab
/etc/pam.d/chfn
/etc/pam.d/chsh
/etc/pam.d/login
/etc/pam.d/runuser
/etc/pam.d/runuser-l
/etc/pam.d/su
/etc/pam.d/su-l

12,/etc/ssh/sshd_config 相关参数如 LoginGraceTime/Allowusers/PermitRootLogin

13,问题不好确认的时候,可以将shadow密码字段清空,看看登陆是否正常,可以判断是否到密码验证阶段了

实战案例3–ssh可以登陆root,但是管理终端无法登陆root用户
ssh可以登陆,管理终端无法登陆root,
提示 login in…

cat /var/log/secure
Jun  2 09:26:48 iZbp1begsz1x269nxhtip4Z login: FAILED LOGIN 1 FROM tty1 FOR root, Authentication failure

看日志是login验证模块的问题,检查相关模块的设置

# cat /etc/pam.d/login 
#%PAM-1.0
auth required pam_succeed_if.so user != root quiet
auth [user_unknown=ignore success=ok ignore=ignore default=bad] pam_securetty.so
auth       substack     system-auth
auth       include      postlogin
account    required     pam_nologin.so
account    include      system-auth
password   include      system-auth
# pam_selinux.so close should be the first session rule
session    required     pam_selinux.so close
session    required     pam_loginuid.so
session    optional     pam_console.so
# pam_selinux.so open should only be followed by sessions to be executed in the user context
session    required     pam_selinux.so open
session    required     pam_namespace.so
session    optional     pam_keyinit.so force revoke
session    include      system-auth
session    include      postlogin
-session   optional     pam_ck_connector.so

这一行比较关键

auth required pam_succeed_if.so user != root quiet

禁止本地登陆了,注释掉即可

实战案例4–centos 登陆“卡住”

背景:登陆卡住,需要ctrl +c 才能进去,如图
image

如果一直等的话,会提示
image

原因:
/etc/profile 里面有 source /etc/profile 引起死循环,注释即可
image

系统登陆不进去了,不挂盘的情况下怎么操作?

阿里云新推出的卸载系统盘功能,可以把系统盘卸载掉,作为数据盘挂载到一个新的机器,这样就可以执行上面的检查了
详见:云服务器ECS卸载和挂载系统盘

场景覆盖:
Linux系统常见问题诊断服务覆盖以下场景:
image
Linux系统常见启动问题修复覆盖以下场景:
image

以上内容对您有帮助吗?如有问题,可联系在线工程师为您提供技术支持

Yes  No
相关内容
  • 高并发场景下的Linux系统调优
  • centos/Red Hat/Ubuntu关闭和开启iptables/firewalld防火墙
  • Linux常用内核网络参数及修改方法
  • Linux服务器CLOSE_WAIT连接过多
  • Linux服务器FIN_WAIT2状态的TCP链接过多
  • Linux系统日志报“Time wait bucket table overflow”错误
产品
  • 云服务大礼包 ¥9,999.00 ¥99.00
  • SSL证书5折起(DV,OV,EV,多域名,通配符,免费SSL证书安装配置) ¥2.00 ¥1.00
  • 漏洞扫描服务 ¥0.00 – ¥1,000.00
  • 阿里云云安全中心(服务器安全防护漏洞自动修复木马病毒查杀) ¥270.00 – ¥1,148.00
  • 阿里云web应用防火墙(WAF)防CC防SQL注入防网页篡改木马后门 ¥149.00 – ¥227,920.00
Linux系统运维
  • Linux系统启动与登录故障排查
  • 高并发场景下的Linux系统调优
  • centos/Red Hat/Ubuntu关闭和开启iptables/firewalld防火墙
  • Linux常用内核网络参数及修改方法
  • Linux服务器CLOSE_WAIT连接过多
  • Linux服务器FIN_WAIT2状态的TCP链接过多
View All 13  
热门内容
  • 阿里云混合云解决方案
  • 网站运维服务都包含哪些?
  • 三级等保测评咨询实施服务
  • 数据库上云迁移方案
  • 性能测试/压力测试指标参考标准
服务分类
  • 物联网技术
  • 云服务器运维
  • 网站运维
  • 云数据库技术
  • 云存储技术
  • 云安全服务
  • 云网络服务
  • 大数据和人工智能
  • CDN与边缘计算
  • 弹性计算
  • 优惠活动
  • 云架构设计优化
  • 迁云实施服务
  • 容灾备份服务
  • 云上护航
  • Linux系统运维
  • 解决方案咨询与实施
  • 视频云技术
  • 混合云与专有云
  • 企业应用
专题
AnalyticDB CDN技术 ClickHouse数据库 Elasticsearch OceanBase PolarDB PostgreSQL数据库 SD-WAN serverless SSL证书 web应用防火墙 云堡垒机 云存储网关 云数据库MongoDB 云数据库RDSmysql 云数据库redis 云服务器 云防火墙 全局流量管理 全球加速 号码隐私保护 多模数据库Lindorm 安全加固 实人认证 容器服务 对象存储OSS 弹性伸缩 性能测试 数据仓库 数据库备份DBS 数据库审计 数据库自治服务DAS 数据湖 文件存储NAS 日志服务 服务网格 混合云存储 物联网安全 等保测评 表格存储Tablestore 运维技术 钉钉宜搭 阿里云优惠
  • 阿里云代理商
  • 腾讯云代理商
  • 华为云代理商
  • 等保测评
  • 数据库备份
  • 堡垒机
  • 阿里云邮箱
  • 华为云服务
  • APM
  • serverless
  • SD-WAN
  • PolarDB
  • 阿里云数据仓库
  • 数据湖
  • 阿里云服务器
  • 腾讯云服务器
  • 华为云服务器
  • 混合云
  • 阿里云混合云
  • SSL证书
  • CDN
  • kafka
  • OCR
  • 阿里云代理
  • 腾讯云代理
  • 华为云代理
  • CDN加速
  • 安全加固
  • 云原生技术
  • 云原生
  • © 2020 云技术|云慧采. All Rights Reserved 服务电话13121395187