運(yùn)維常見故障及排查方法,值得學(xué)習(xí)收藏!
1、Linux 系統(tǒng)無法啟動(dòng) 原因1 排查方法: 系統(tǒng)配置/etc/fstab錯(cuò)誤或丟失而無法啟動(dòng),當(dāng)啟動(dòng)的時(shí)候,出現(xiàn)starting system logger 后停止了。 解決方法: 想辦法恢復(fù) /etc/fstab 文件,利用 Linux rescue 修復(fù)模式登錄系統(tǒng),從而獲取掛載點(diǎn)和分區(qū)信息,重構(gòu) /etc/fstab 文件。 原因2: 非法關(guān)機(jī),導(dǎo)致 root 文件系統(tǒng)破壞,也就是 Linux 根分區(qū)破壞,系統(tǒng)無法正常啟動(dòng)。 排查方法: Linux下普遍采用的是 ext3/ext4 文件系統(tǒng),ext3/ext4 是一個(gè)具有日志記錄功能的日志文件系統(tǒng),可以進(jìn)行簡(jiǎn)單的容錯(cuò)和恢復(fù),但是在一個(gè)高負(fù)荷讀寫的 ext3 文件系統(tǒng)下,如果突然發(fā)生掉電,就很有可能發(fā)生文件系統(tǒng)內(nèi)部結(jié)構(gòu)不一致,導(dǎo)致文件系統(tǒng)破壞。 Linux 在啟動(dòng)時(shí)會(huì)自動(dòng)去分析和檢查系統(tǒng)分區(qū),如果發(fā)現(xiàn)文件系統(tǒng)有簡(jiǎn)單的錯(cuò)誤,會(huì)自動(dòng)修復(fù),如果文件系統(tǒng)破壞比較嚴(yán)重,系統(tǒng)無法完成修復(fù)時(shí),系統(tǒng)就會(huì)自動(dòng)進(jìn)入單用戶模式下或者出現(xiàn)一個(gè)交互界面,提示用戶介入手動(dòng)修復(fù),現(xiàn)象類似下面所示: checking root filesyste /dev/sdb5 contains a file system with errors, check forced /dev/sdb5: Unattached inode 68338812 /dev/sdb5:UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY (i.e., without -a or -p options) FAILED /contains a file system with errors check forced an eror occurred during the file system check *dropping you to a shell;the system will reboot when you leave the shell Press enter for maintenance (or type Control-D to continue): give root password for maintenance 從這個(gè)錯(cuò)誤可以看出,系統(tǒng)根分區(qū)文件系統(tǒng)出現(xiàn)了問題,系統(tǒng)在啟動(dòng)時(shí)無法自動(dòng)修復(fù),然后進(jìn)入到了一個(gè)交互界面,提示用戶進(jìn)行系統(tǒng)修復(fù)。這個(gè)問題發(fā)生的機(jī)率很高,引起這個(gè)問題的主要原因就是系統(tǒng)突然掉電,引起文件系統(tǒng)結(jié)構(gòu)不一致。一般情況下解決此問題的辦法是采用fsck命令,進(jìn)行強(qiáng)制修復(fù)。 解決方法: 需要注意的是,在執(zhí)行 fsck 的時(shí)候,一定要先卸載要修復(fù)的分區(qū),然后再執(zhí)行修復(fù)操作! 原因3: 顯示 error: file '/vmlinuz' not found 解決方法: - 使用可啟動(dòng)修復(fù)介質(zhì)啟動(dòng)系統(tǒng),并掛載系統(tǒng)磁盤的 /boot 分區(qū); - 從安裝介質(zhì)或系統(tǒng)備份中提取 vmlinuz 內(nèi)核文件,復(fù)制到 /boot 分區(qū); - 更新引導(dǎo)配置(grub.cfg),將 menuentry 塊中的 linux 行指向vmlinuz內(nèi)核文件; - 重啟系統(tǒng),在引導(dǎo)菜單選擇更新后的菜單項(xiàng)啟動(dòng)系統(tǒng)。 2、initrd/initramfs:初始化 RAM 磁盤,包含啟動(dòng)時(shí)需要的模塊和驅(qū)動(dòng) 顯示 error: file '/initrd.img' not found 解決方法: ● 參考內(nèi)核文件丟失的解決步驟a,掛載 /boot 分區(qū)和獲取 initrd.img 文件; ● 將 initrd.img 文件復(fù)制到 /boot 分區(qū); ● 更新 grub.cfg,找到 initrd 相關(guān)行,將其指向新文件; ● 重啟系統(tǒng),啟動(dòng)更新后的菜單項(xiàng)。 原因4: 硬件故障,比如主板、電源、硬盤等出現(xiàn)問題,導(dǎo)致 Linux 無法啟動(dòng)。 解決方法:一般來說由硬件造成的故障,只需更換硬件設(shè)備即可解決。 2、Linux系統(tǒng)網(wǎng)絡(luò)故障 1 排查1:檢查網(wǎng)絡(luò)硬件 檢查網(wǎng)絡(luò)故障,首先要排除網(wǎng)絡(luò)硬件設(shè)備是否存在問題。比如網(wǎng)卡,網(wǎng)線,路由器,交換機(jī)等設(shè)備是否正常。 這些是網(wǎng)絡(luò)正常運(yùn)行的基本條件,如果發(fā)現(xiàn)某些設(shè)備出現(xiàn)故障,只需更換硬件即可解決問題。 2 排查2:檢查網(wǎng)卡是否正常工作 解決方法:如果發(fā)現(xiàn)問題網(wǎng)卡,我們可以使用 ethtool 工具查看問題網(wǎng)卡的具體狀態(tài)信息(注意:Speed / Link deteced 等字段 ) 接下來就要檢查網(wǎng)卡的軟件設(shè)定,比如IP是否配置,配置是否正確,確保IP的配置和局域網(wǎng)其它計(jì)算機(jī)配置沒有沖突。 3 排查3:檢查局域網(wǎng)內(nèi)主機(jī)能否互連 檢查網(wǎng)絡(luò)之間的連通是否存在故障,可以先通過ping命令測(cè)試局域網(wǎng)主機(jī)之間的連通性,然后ping網(wǎng)關(guān),檢測(cè)主機(jī)到網(wǎng)關(guān)的通信是否正常。 4 排查4:檢查系統(tǒng)路由表信息是否正確 解決方法:刪除192段的缺省路由,然后增加10段的缺省路由即可: 此時(shí)外界就可以通過ssh服務(wù)遠(yuǎn)程連接到 Linux 系統(tǒng)了。 5 排查5:檢查DNS解析 /etc/host.conf 文件指定系統(tǒng)如何解析主機(jī)名,Linux 通過域名解析庫來獲得主機(jī)名對(duì)應(yīng)的 IP 地址。 nsswitch.conf 文件每行的配置都以一個(gè)關(guān)鍵字開頭,后跟冒號(hào): 緊接著是空白,然后是一系列方法的列表。例如這段信息: 表示系統(tǒng)首先查詢主機(jī)庫文件,如果沒有找到對(duì)應(yīng)的解析,接著會(huì)去DNS配置文件指定的 DNS 服務(wù)器進(jìn)行解析。 清楚了Linux下域名解析的原理和過程,我們就可以根據(jù)這兩個(gè)文件的設(shè)定,確定解析的順序,從而判斷出域名解析可能出現(xiàn)的問題。 6 排查6:檢查相關(guān)服務(wù)是否開啟 在一個(gè)應(yīng)用出現(xiàn)故障時(shí),必須要檢測(cè)服務(wù)本身。比如服務(wù)是否開啟,配置是否正確等。 3 MBR扇區(qū)故障 故障現(xiàn)象: 1、找不到引導(dǎo)程序,啟動(dòng)中斷 2、無法加載操作系統(tǒng),開機(jī)后黑屏 故障原因: 1、病毒、木馬等造成的破壞 2、錯(cuò)誤的分區(qū)操作,磁盤讀寫錯(cuò)誤操作 解決辦法: 1 備份MBR扇區(qū)數(shù)據(jù) ● 備份MBR扇區(qū)數(shù)據(jù)。 2 模擬MBR扇區(qū)被破壞的故障 重啟計(jì)算機(jī),當(dāng)出現(xiàn)“Operating system not found”的提示信息,表示無法找到可用的操作系統(tǒng),此時(shí)硬盤已經(jīng)損壞,如果沒有光盤引導(dǎo),則系統(tǒng)一直處于如下狀態(tài),因此無法啟動(dòng)主機(jī)。 3 進(jìn)入急救模式來修復(fù)MBR扇區(qū)故障 ● 先關(guān)閉計(jì)算機(jī)-->虛擬機(jī)-->電源-->打開電源時(shí)進(jìn)入固件(F)-->選擇Boot-->將光盤放在第一位 ● 選擇進(jìn)入急救模式[Rescue installed system] ● [choose a language]選擇English-->確認(rèn) ● [Keyboard type]選擇us-->確認(rèn) ● [Unsupported Hardware Detected]選擇OK ● [Satup Networking]選擇No ● [Rescue]選擇Skip ● 選擇Shell Start shell-->選擇Ok ● 查看/dev/sdb硬盤和/dev/sda硬盤,能看到sdb1分區(qū),看不到sda設(shè)備,因?yàn)閟da設(shè)備的MBR被破壞 ● 將之前拷貝的文件重新寫回來 2、重啟計(jì)算機(jī),發(fā)現(xiàn)可以正常啟動(dòng)計(jì)算機(jī),說明修復(fù)了MBR扇區(qū)故障。 4 GRUB 引導(dǎo)故障 故障現(xiàn)象: 系統(tǒng)引導(dǎo)停滯,顯示“grub>”提示符 故障原因: 有時(shí) Linux 啟動(dòng)后會(huì)直接進(jìn)入GRUB命令行界面(只有“grub>”提示符),此時(shí)很多用戶就選擇了重新安裝GRUB甚至重新安裝系統(tǒng)。其實(shí)一般而言此故障的原因最常見的有兩個(gè): 一是GRUB配置文件中選項(xiàng)設(shè)置錯(cuò)誤; 二是GRUB配置文件丟失。 若是第一種情況,則一般顯示error: you need to load the kernel first: 引導(dǎo)配置錯(cuò)誤,內(nèi)核文件沒有被正確加載,提示先加載內(nèi)核。 解決辦法: ● 啟動(dòng)系統(tǒng)修復(fù)介質(zhì),備份/boot分區(qū)文件; ●檢查/boot/grub2/grub.cfg文件,找到menuentry塊中l(wèi)inux和initrd行,確保它們正確指向vmlinuz和initrd.img文件; ● 重啟系統(tǒng),進(jìn)入BIOS將引導(dǎo)選項(xiàng)設(shè)置為啟動(dòng)磁盤,保存后重啟; ● 啟動(dòng)grescue grub>提示符,運(yùn)行: set prefix= (root) ′ /boot/grub2 ′configfile(prefix)/grub.cfg boot 命令以修復(fù)并重新加載grub配置,然后啟動(dòng)系統(tǒng)。 若是第二種情況,GRUB rescue> : 當(dāng)GRUB引導(dǎo)加載程序文件丟失或磁盤無法訪問時(shí),會(huì)結(jié)束在rescue提示符。 ● 啟動(dòng)系統(tǒng)安裝或修復(fù)介質(zhì),備份數(shù)據(jù)并檢查文件系統(tǒng)。使用fsck修復(fù)或使用娛樂用光盤工具修復(fù)磁盤問題; ● 引導(dǎo)進(jìn)入安裝系統(tǒng),運(yùn)行g(shù)rub2-install /dev/sda將GRUB重新安裝至系統(tǒng)磁盤MBR; ● 修改BIOS啟動(dòng)選項(xiàng)為從系統(tǒng)磁盤啟動(dòng)。重啟系統(tǒng),現(xiàn)GRUB菜單應(yīng)可正常顯示,啟動(dòng)系統(tǒng); ● 如果仍無法啟動(dòng),可能需要重新安裝系統(tǒng)或更換硬件。 5 忘記 Linux root 密碼 很多人經(jīng)常會(huì)忘記Linux系統(tǒng)的root密碼,而著急選擇重新安裝系統(tǒng),這里為大家整理了兩個(gè)更加直接的解決方法: 1 1、進(jìn)入急救模式重設(shè)root用戶密碼 進(jìn)入急救模式,加載系統(tǒng)鏡像,切換到系統(tǒng)根環(huán)境進(jìn)行重置root密碼: ● 打開電源時(shí)進(jìn)入固件,將開機(jī)啟動(dòng)項(xiàng)boot中的CD-ROM調(diào)到第一項(xiàng); ● 進(jìn)入急救模式: ● 重啟進(jìn)入登入界面后輸入剛才設(shè)置的密碼即可 2 2、進(jìn)入單用戶模式進(jìn)行修改root密碼: 以Redhat linux為基準(zhǔn),操作步驟如下: ● 重啟系統(tǒng),待linux系統(tǒng)啟動(dòng)到grub引導(dǎo)菜單時(shí),找到當(dāng)前系統(tǒng)引導(dǎo)選項(xiàng)(可以按方向鍵展開隱藏的菜單,單處理器只有一個(gè)引導(dǎo)項(xiàng),多處理器有3個(gè)或3個(gè)以上引導(dǎo)項(xiàng),一般默認(rèn)選項(xiàng)就是系統(tǒng)當(dāng)前引導(dǎo)選項(xiàng)); ● 通過方向鍵將光標(biāo)放到當(dāng)前系統(tǒng)引導(dǎo)項(xiàng)上,然后按鍵盤字母“e”,進(jìn)入編輯狀態(tài)。 ● 然后通過上下鍵,選中帶有kernel指令的一行,繼續(xù)按鍵盤字母“e”,編輯該行,在行末尾加個(gè)空格,然后添加single,類似與這樣:kernel /vmlinuz-2.6.18-8.el5 ro root=LABEL=/ rhgb quiet single ● 修改完成,按回車鍵,返回到剛才的界面。 ● 最后按鍵盤“b”,系統(tǒng)開始引導(dǎo)。這樣系統(tǒng)就啟動(dòng)到了單用戶模式下,這里的單用戶和windows下的安全模式類似,在單用戶模式下,只是啟動(dòng)最基本的系統(tǒng),網(wǎng)絡(luò)以及應(yīng)用服務(wù)均不啟動(dòng)。 單用戶模式啟動(dòng)完畢,系統(tǒng)會(huì)自動(dòng)進(jìn)入到命令行狀態(tài)下,類似與“sh-3.1#”,然后直接執(zhí)行passwd,回車,系統(tǒng)會(huì)提示輸入新的root密碼兩次,最后會(huì)看到修改密碼成功的提示,這樣就完成了root密碼的修改。 如果需要正常啟動(dòng)系統(tǒng),現(xiàn)在只需輸入“init 3”,就進(jìn)入了多用戶模式。用root用戶重新登錄系統(tǒng),看看設(shè)置的新密碼是否生效。 6 Read-only file system 錯(cuò)誤解決 故障現(xiàn)象: 涉及到修改/保存條目等需要寫磁盤操作的命令都無法使用(如tar、cp、mv、rm、chmod、chown、wget下載等指令),總是提示Read-only file system,也就是說系統(tǒng)是只讀的,什么也寫不了。 故障原因: 1、文件系統(tǒng)損壞; 2、磁盤問題,磁盤又壞道; 3、fstab文件配置錯(cuò)誤,如分區(qū)格式錯(cuò)誤錯(cuò)誤(將ntfs寫成了fat)、配置指令拼寫錯(cuò)誤等。 排查網(wǎng)站程序,看報(bào)錯(cuò)信息和服務(wù)日志錯(cuò)誤,以及系統(tǒng)日志,來定位問題所在。 解決辦法: ● 如果能夠確認(rèn)數(shù)據(jù)和系統(tǒng)的文件沒有被損壞,修復(fù)fstab文件配置后只要重新R/W加載或reboot就能夠恢復(fù)正常。 以讀寫方式重新掛載文件系統(tǒng) ● 如果是文件系統(tǒng)有問題,那就需要在umount狀態(tài)下執(zhí)行fsck命令來檢查文件系統(tǒng)并修復(fù)文件系統(tǒng)中的錯(cuò)誤。 ● 如果僅僅是想將數(shù)據(jù)備份出來而且機(jī)器又在身邊的話,你可以用live-cd從光盤啟動(dòng)系統(tǒng),然后直接備份。當(dāng)然此時(shí)你也可以修改硬盤中的配置文件,如/etc/fstab。[root@localhost /]#umount /dev/sdb5[root@localhost /]#fsck .ext3 -y /dev/sdb5e2fsck 1.39 (29-May-2006)/ contains a file system with errors, check forced.Pass 1: Checking inodes, blocks, and sizesPass 2: Checking directory structurePass 3: Checking directory connectivityPass 4: Checking reference countsInode 6833812 ref count is 2, should be 1. Fix? yesUnattached inode 6833812Connect to /lost+found? yesInode 6833812 ref count is 2, should be 1. Fix? yesPass 5: Checking group summary informationBlock bitmap differences: -(519--529) -9273Fix? yes…… ……/: * FILE SYSTEM WAS MODIFIED **/: 19/128520 files (15.8% non-contiguous), 46034/514048 blocks
# route delete default# route add default gw 10.10.1.254
order hosts,bind
hosts: files dns
# telnet 192.168.60.133 22 SSH-2.0-OpenSSH_4.3
sh-4.2# chroot /mnt/sysimage#重設(shè)root用戶密碼bash-4.2# passwd rootbash-4.2# exit //退出鏡像回到系統(tǒng)sh-4.2# reboot //重啟系統(tǒng)(注意重啟后要進(jìn)入固件將Hard-drive調(diào)至第一項(xiàng))
mount -o rw,remount /system
nohup fsck -y /dev/VolGroup00/LogVol00 > /dev/shm/fscklog & # 檢查好后重啟 reboot