Linux下的故障分析

2021-09-12 14:02:57 字數 2516 閱讀 1726

1.處理linux系統故障的思路:

(1)重視報錯提示資訊;

(2) 查閱日誌檔案(一般為/var/log/messages)

(3)分析定位問題

(4)解決問題

2.忘記root密碼:

rhel6 及以前版本:

(1)重啟系統至grub引導介面,按esc鍵;

(2)游標定位到核心選項,按e 鍵進入編輯模式;

(3)找到kernel那行,末尾新增single或1,進入單使用者模式;

(4)按enter和b鍵,引導進入單使用者

(5)修改密碼,修改完畢重啟即可

rhel 7 : 採用grub2 為啟動器時,,將無法通過單使用者模式重置root密碼,重置密碼主要有rd.break和init兩種方法。

init 方法:

(1)重啟系統,並在grub2 啟動顯屏時,按e鍵進入編輯模式;

(2)在linux16/linux/linuxefi所在引數行尾新增以下內容:init=/bin/sh

(3)按ctrl+x啟動到shell。

(4)掛載檔案系統為可寫模式:mount -o remount,rw /

(5)修改密碼

(6)如果之前系統啟用了selinux,必須執行以下命令,否則將無法正常啟動系統:

touch /.autorelabel

(7)執行命令exec /sbin/init來正常啟動,或者用命令exec /sbin/reboot重啟。

rd.break方法:

(1)啟動的時候,在啟動介面,相應啟動項,核心名稱上按「e」;

(2)進入後,找到linux16開頭的地方,按「end」鍵到最後,輸入rd.break,按ctrl+x進入;

(3)進去後輸入命令mount,發現根為/sysroot/,並且不能寫,只有ro=readonly許可權;

mount -o remount,rw /sysroot/,重新掛載,之後mount,發現有了r,w許可權;

(4)chroot /sysroot/ 改變根;

①echo redhat|passwd --stdin root 修改root密碼為redhat,或者輸入passwd,互動修改;

②還有就是先cp乙份,然後修改/etc/shadow檔案

(5)touch /.autorelabel 這句是為了selinux生效

(6)ctrl+d 退出

(7)然後reboot

3.linux系統無法啟動

導致系統無法啟動的可能原因有:

1)檔案配置不當,比如/etc/inittab、/etc/fstab等檔案配置錯誤或丟失;

檔案丟失,插入光碟,救援模式

2)非法關機,導致root檔案破壞,即根分割槽被破壞;

fsck修復檔案系統

3)核心崩潰,無法啟動;

4)系統引導問題;

5)硬體故障;

4.grub檔案損壞或丟失

修復grub:

grub配置檔案丟失:

開機後會直接進入grub介面,顯示為grub>:

grub>insmod xfs

grub>set root=(hd0,1)

grub>initrd16 /initramfs-.***xx.img

修復完成後即可進入系統

grub>boot

重建配置檔案,也可以使用》替代-o

grub2-mkconfig -o /boot/grub2/grub.cfg

5.修改mbr

備份mbr:

#dd if=/dev/sda of=/root/mbr.bak count=1 bs=512

破壞bootloader:

#dd if=/dev/zero of=/dev/sda count=1 bs=200

這裡邊block size只要小於等於446即可。

修復方式:

1、借助其他系統掛載磁碟修復。

修復方式同光碟修復類似,也是使用grub2-install命令。

2、借助安裝光碟修復。

1).裝入光碟,在光碟引導介面選擇troubleshooting:

2).選擇進入救援模式:

3).按回車鍵繼續:

4).進入磁碟掛載選擇模式:

磁碟將會被掛載至/mnt/sysimage/下

1- 1. continue 以rw方式掛載分割槽。

2- 2. read only 以ro方式掛載分割槽。

3- 3. skip 跳過,將來自己手工掛載磁碟。

5).選擇continue,稍等片刻,提示已經掛載完成。

6).此時進入救援模式的命令列:

7).使用grub2-install命令重建bootloader:

#grub2-install --root-directory=/mnt/sysimage /dev/sda

顯示無錯誤,使用sync寫入硬碟,reboot重啟系統。

8).重啟後無錯誤,grub正常執行:

使用備份還原:

dd if=/root/mbr.bak of=/dev/sda count=512 bs=1

Linux故障分析

了解linux的引導流程 補充 程序 init 執行中的一段程式 系統中區分程序使用id 一般是隨機的,不固定 init 1 為id 0 核心排程器,獲取cpu時間,進行程序的切換 根據運 況分類 執行狀態,等待狀態,僵死狀態 命令 man ps ps el tty 虛擬終端 字元型介面 ctrl ...

Linux故障分析

了解linux的引導流程 補充 程序 init 執行中的一段程式 系統中區分程序使用id 一般是隨機的,不固定 init 1 為id 0 核心排程器,獲取cpu時間,進行程序的切換 根據運 況分類 執行狀態,等待狀態,僵死狀態 命令 man ps ps el tty 虛擬終端 字元型介面 ctrl ...

Linux故障分析 使用者管理

了解linux的引導流程 補充 程序 init 執行中的一段程式 系統中區分程序使用id 一般是隨機的,不固定 init 1 為id 0 核心排程器,獲取cpu時間,進行程序的切換 根據運 況分類 執行狀態,等待狀態,僵死狀態 命令 man ps ps el tty 虛擬終端 字元型介面 ctrl ...