首頁 > 軟體

Linux常見系統故障排除

2020-06-16 17:57:09

Linux常見系統故障的排除:
1 確定問題的故障特徵
2 重現故障
3 使用工具收集進一步資訊確定故障根源
4 排除不可能的原因
5 定位故障:
從簡單問題入手
一次只嚐試一種方式

遵循的基本原則:備份原檔案
盡可能借助於工具

可能出現的故障:
1 管理員密碼忘記
2 系統無法正常啟動
grub 損壞(MBR損壞,grub組態檔丟失)
系統初始化故障(某檔案系統無法正常掛載,驅動問題等)
由rc.sysinit導致 只要進入grub編輯模式 emergency 不會載入rc.sysinit指令碼
某些服務故障
使用者無法登陸(使用者對應的shell損壞,mingetty)
3 命令無法執行
4 編譯過程無法繼續(開發環境缺少基本元件)

例子: 將MBR損壞.
先將MBR 備份  dd if=/dev/sda of=/root/mbr.backup count=1 bs=512
損壞:dd if=/dev/sda/zero 0f=/dev/sda count=1 bs=200
sync
shutdown -r now

MBR損壞解決辦法:
1 借助於別的主機修復
2 使用緊急救援模式
a、boot.iso  只提供引導介面    所以同時要提供安裝環境才行
b、使用完整的系統安裝盤 (完好的系統光碟)
輸入命令boot:linux rescue
根檔案系統會被掛載到/mnt/sysimage下 可能以唯讀方式掛載 要重新掛載改為讀寫方式

因為參照的檔案系統沒有rc.syinit 而rc.sysinit有udevs用來建立裝置檔案 所以要手動建立裝置檔案 mknod

成功進入緊急模式後  使用grub 命令
findhd(0,0)/  再tab補全    若發現vimlinuz 和initrd檔案 表示在該盤
root hd(0,0)
setup hd(0)
exit
sync
reboot

grub組態檔丟失:
grub> root (hd0,0)
grub> kernel /vmlinuz-version ro root=/dev/vo10/root/ rhgb quiet
grub> initrd /initrd-version  一定要與核心版本匹配
gurb>boot
手動建立grub.conf
default=0
timeout=10
title RHEL 5.8
root (hd0,0)
kernel /vmlinuz-version ro root=/dev/vo10/root quiet
initrd /

先將/boot/grub 移走 mv /boot/grub/grub.conf /root/
sync
shutdown -r now

kernel panic:核心恐慌

其他故障:
把預設級別設定為0或6 -->進入單使用者模式,編輯inittab檔案

刪了/etc/rc.d/rc3.d,執行到3級別時就會報錯.  -->進入單使用者模式修復

某個服務故障導致無法啟動 -->啟動系統時敲I鍵,啟動互動式模式,選擇不啟動sendmail服務即可

rc.d/rc.local指令碼出現語法錯誤或者邏輯錯誤 -->進入單使用者模式,單使用者模式不啟動
rc.local開機必啟動,常用來在裡面新增一些指令碼,讓開機後執行

/bin/bash被刪除了-->進入緊急救援模式(掛載光碟)-->輸入命令boot:linux rescue
-->ls /mnt/sysimg  真正的根在該目錄下
-->ls /dev 發現有個hdc
-->mkdir /media  不能直接掛載到/mnt下 因為/mnt/sysimg
-->mout /dev/hdc /media  沒有cdrom hdc就像當於cdrom
--> cd /media
-->ls
-->cd /server
-->ls | grep bash
-->rpm -ivh --replacepkgs bash-version  這個是裝在當前的小系統了 不行
-->rpm -ivh --replacepkgs --root /mnt/sysimg bash-version  指定
chroot /mnt/sysimg

mingetty被刪除了-->進入單使用者模式 單使用者模式不用mingetty,但也不啟動網路功能,要手動開啟網路功能,從伺服器下載mingetty

本文永久更新連結地址http://www.linuxidc.com/Linux/2015-07/120375.htm


IT145.com E-mail:sddin#qq.com