错误提示没了_ESC错误排查-系统启动篇
# ECS從入門到精通(錯(cuò)誤排查)
# Linux啟動(dòng)與登錄問(wèn)題
Linux 啟動(dòng)與登錄問(wèn)題是 ECS 的高頻問(wèn)題,而往往處理不及時(shí)會(huì)直接影響到 用戶業(yè)務(wù)的正??沙掷m(xù)運(yùn)行,因此也變成了我們處理問(wèn)題優(yōu)先級(jí)的重中之重。在云環(huán)境上影響 ECS 啟動(dòng)與登錄的因素非常多,鏡像、管控、虛擬化、底層 硬件、系統(tǒng)與文件異常等等,本文僅從系統(tǒng)與文件本身角度,在大量處理經(jīng)驗(yàn) 的基礎(chǔ)上,歸納總結(jié)了一些可能會(huì)引起系統(tǒng)啟動(dòng)與登錄問(wèn)題的排查點(diǎn),并給出 幾個(gè)比較常見的典型案例來(lái)具體展示和說(shuō)明。
## 系統(tǒng)啟動(dòng)異常
### 1.部分 CentOS 系統(tǒng)啟動(dòng)黑屏,無(wú)異常報(bào)錯(cuò)的場(chǎng)景,可以 fsck 一下系統(tǒng)盤。
### 2.根分區(qū)空間滿,以及 inode 數(shù)量耗盡。
### 3.升級(jí)內(nèi)核或者從老的共享實(shí)例遷移到獨(dú)享規(guī)格導(dǎo)致的啟動(dòng)異常。
#### 3.1 手動(dòng)注入驅(qū)動(dòng) (mkinitrd virtio 相關(guān)驅(qū)動(dòng) )。
#### 3.2 修改 grub 的啟動(dòng)順序,優(yōu)先嘗試使用老內(nèi)核啟動(dòng)。
#### 3.3 /boot 目錄下面內(nèi)核的關(guān)聯(lián)文件是否全(下面僅為 demo,不同系統(tǒng)內(nèi)核版
本文件不一致,部分內(nèi)核版本 boot 下的 i386 目錄也是有用的)。
#### 3.4 /boot/grub/device.map 里面的 hda 改成 vda。
### 4.fstab/grub 中的 uuid 不對(duì),可以直接修改為 /dev/vda1 這種形式嘗試。
? 數(shù)據(jù)盤分區(qū)異常加載起不來(lái)的場(chǎng)景,可以去注釋 fstab 所有的行,添加類似下面
的啟動(dòng)項(xiàng)嘗試,也適用于系統(tǒng)盤快照創(chuàng)建云盤掛載后,uuid 一致導(dǎo)致的啟動(dòng)異
常,改成非 UUID 的掛載即可。
### 5.根目錄權(quán)限 777(部分目錄 777)也會(huì)導(dǎo)致啟動(dòng)異常,或者 ssh 登陸異常。
可嘗試使用以下鏈接修復(fù):
Linux誤操作777之后的恢復(fù)方法-阿里云開發(fā)者社區(qū)
### 6.常見的關(guān)鍵目錄缺失,有的是軟鏈,也可以看看對(duì)應(yīng)目錄下面的文件數(shù)量(文件 數(shù)量要跟同內(nèi)核版本或者相差不大的版本對(duì)比),簡(jiǎn)單判斷。
如果參數(shù)設(shè)置不當(dāng),是會(huì)導(dǎo)致啟動(dòng)異常的,如 /etc/sysctl.conf 以及檢查 rc.local
的配置,profile 的檢查。
### 8. CentOS 的 selinux 需要關(guān)閉。
## root 登錄異常
1. /etc/passwd /etc/shadow ( 用戶名 root polikt dbus 等關(guān)鍵用戶存在與否,文件為空,格式(dos2unix)。
2. /etc/pam.d 目錄下是否有為空的文件及參數(shù)設(shè)置是否正常,如常見的 sys-tem-auth passwd。
3. /etc/pam.d 下面所有文件里面涉及的 so 文件,看看文件是否存在,是否為空 /usr/lib64/security。
4. 查 /etc /lib64 /bin /sbin /usr/bin /usr/sbin 等目錄有沒(méi)有 size 為 0 的文件。
5. /etc/profile /etc/profile.d( 打 印 列 表 ) /etc/bashrc /root/.bash_profile /root/. bashrc 等涉及登陸環(huán)境設(shè)的文件是否異常。
6. 注意內(nèi)核版本,是否存在新老內(nèi)核,多更換幾個(gè)內(nèi)核試下。
7. 系統(tǒng)日志也是一個(gè)比較重要的檢查項(xiàng)(后面會(huì)介紹無(wú)法登陸怎么檢查)。
8. Ubuntu 12.04 登陸異常 在 /etc/login.defs 里面配置了錯(cuò)誤的 ERASECHAR 導(dǎo)致,恢復(fù)默認(rèn) 0177 即可。
9. 輸入 root 后直接 login 失敗三連,日志如下。
找個(gè)同內(nèi)核版本的機(jī)器對(duì)比發(fā)現(xiàn)沒(méi)有 /etc/pam.d/login。
? rpm 包校驗(yàn)一下,確認(rèn) login 文件沒(méi)了,手動(dòng)創(chuàng)建一個(gè),內(nèi)容拷貝過(guò)來(lái),好了。
10. /etc/ssh/sshd_config 相關(guān)參數(shù)如 LoginGraceTime/Allowusers/Permit-RootLogin。
11. 問(wèn)題不好確認(rèn)的時(shí)候,可以將 shadow 密碼字段清空,看看登陸是否正常,可以判斷是否到密碼驗(yàn)證階了。
? 之前有過(guò)一篇關(guān)于 ssh 問(wèn)題排查的文檔,可參考:
? 一個(gè)有意思的SSH登陸案例-阿里云開發(fā)者社區(qū)
### 系統(tǒng)登陸不進(jìn)去了,不掛盤的情況下怎么操作?
上面的檢查點(diǎn)很多是需要切換到另外的系統(tǒng)環(huán)境下去做檢查,比如掛載 LiveCD 或者 chroot 切換;但對(duì)于使用 ECS 的用戶來(lái)說(shuō),阿里云暫還未提供實(shí)例掛載 ISO 鏡像的功能,那么如何進(jìn)行上面的操作呢?可以借助阿里云新推出的卸載系統(tǒng)盤功能,可以 把系統(tǒng)盤卸載掉,作為數(shù)據(jù)盤掛載到一個(gè)新的機(jī)器,這樣就可以執(zhí)行上面的檢查了。
詳見:卸載或掛載系統(tǒng)盤_云盤_塊存儲(chǔ)_云服務(wù)器 ECS-阿里云
###場(chǎng)景覆蓋:
Linux 系統(tǒng)常見問(wèn)題診斷覆蓋以下場(chǎng)景:
Linux 系統(tǒng)常見啟動(dòng)問(wèn)題修復(fù)覆蓋以下場(chǎng)景:
## grub.conf 文件內(nèi)容被清空了怎么辦
簡(jiǎn)介:/boot/grub/grub.conf 被清空,系統(tǒng)啟動(dòng)就進(jìn)入 grub 狀態(tài)(CentOS 6.8)。
1.find /boot/grub/stage1。
? 顯示為(hd0,0)。
2. 確認(rèn)一下內(nèi)核的具體版本
ls -l /boot 去看。
3. 手動(dòng)設(shè)置 grub,具體步驟。
如果沒(méi)有報(bào)錯(cuò)的話,即可成功啟動(dòng),進(jìn)入到系統(tǒng)內(nèi)部后需要繼續(xù)支持。
4. mount -e remount,rw / 重新掛載分區(qū)為讀寫。
5. service network restart。
如果提示 eth0 eth1 失敗,ifconfig 看不到網(wǎng)卡的話
6. lsmod |grep net。
看下 virtio_net 這個(gè)驅(qū)動(dòng)有沒(méi)有,如果沒(méi)有的話(網(wǎng)卡報(bào)錯(cuò)基本都不會(huì)有)。
7. insmod /lib/modules/2.6.32-696.3.2.el6.x86_64/kernel/drivers/net/virtio_net.ko。
8. 重啟網(wǎng)絡(luò)服務(wù),嗨 ~ 網(wǎng)通了。
9. 登陸 ssh,找個(gè)同版本系統(tǒng)的 grub.conf拷貝一份過(guò)來(lái),不然重啟之后又進(jìn)grub 了。
參考 系統(tǒng)診斷小技巧(8):如何修復(fù)grub損壞-阿里云開發(fā)者社區(qū)
## 巧妙利用 strace 查找丟失的文件
問(wèn)題描述:客戶反饋系統(tǒng)無(wú)法遠(yuǎn)程登陸,實(shí)際系統(tǒng)啟動(dòng)本身就有問(wèn)題。
根據(jù)報(bào)錯(cuò)信息來(lái)看,是系統(tǒng)內(nèi)讀取 user 有問(wèn)題,需要掛盤查看。
1.掛盤后 chroot 如下 ihave no name,這里本身就是有問(wèn)題了,說(shuō)明系統(tǒng)內(nèi)缺少了什么文件導(dǎo)致異常。
2.strace 跟蹤一下 chroot 的過(guò)程,看下丟失的文件。
3.查看對(duì)應(yīng)文件的關(guān)系(測(cè)試機(jī)補(bǔ)圖)。
4.確認(rèn)系統(tǒng)上丟了最終的 libnss_files-2.12.so,嘗試拷貝一個(gè)。
5.此時(shí)已經(jīng)可以上網(wǎng)了,去拷貝一個(gè)同版本的文件試試吧。
## 小心 PAM 不讓你登錄
問(wèn)題描述:
ssh 可以登陸,管理終端無(wú)法登陸 root,提示 login in...
先通過(guò) ssh 方式登錄系統(tǒng),查看登錄日志是否有異常。
似乎是 login 驗(yàn)證模塊的問(wèn)題進(jìn)一步查看對(duì)應(yīng)的配置文件 /etc/pam.d/login。
其中一行的作用為禁止本地登錄,可以將其注釋掉即可。
```
auth required pam_succeed_if.so user != root quiet
總結(jié)
以上是生活随笔為你收集整理的错误提示没了_ESC错误排查-系统启动篇的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 实现 连续15签到记录_MySQL和Re
- 下一篇: 2022-2028年中国煤制天然气市场投