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 ...