Linux之核心管理及故障排錯
一、Centos6啟動流程:
- 加電自檢PSOT
- 引導載入器BootLoader
- MBR(GRUB第一階段)||(GRUB第1.5階段)(GRUB第2階段)
- 載入核心(vmlinuz、initramfs)
- mount /,啟動第一個程式/etc/inittab
- etc/rc.d/rc.sysinit---->>/etc/rcX.d/K*/S*
- /etc/rc.local
- mingetty login,windows
1、POST Power-On-Self-Test:加電自檢,是BIOS功能的一個主要部分。負責完成對CPU、主機板、記憶體、硬碟子系統、顯示子系統等硬體情況的檢測。 BIOS:Basic Input and Output System,儲存著有關計算機系統最重要的基本輸入輸出程式,系統資訊設定、開機加電自檢程式和系統啟動自舉程式等。2、BootLoader
超級守護程序;配合chkconfig來使用
二、Centos7啟動流程
- post
- mbr
- grub2
- systemd init
- initrd.target所有單元,包括掛載/etc/fstab
- 從initramfs根檔案系統切換到磁碟根目錄
- systemd執行/etc/systemd/system目錄下的配置
- systemd 執行預設target 配置,配置檔案/etc/systemd/system/default.target
- systemd 執行sysinit.target 初始化系統及basic.target 準備作業系統
- systemd 啟動multi-user.target 下的本機與伺服器服務
- systemd 執行multi-user.target 下的/etc/rc.d/rc.local
- systemd 執行multi-user.target 下的getty.target及登入服務
- systemd 執行graphical 需要的服務
由於Centos7啟動流程較為複雜,不再做深究systemd 系統啟動和伺服器守護程序管理器,負責在系統啟動或執行時,激 活系統資源,伺服器程序和其它程序 Unit 表示不同型別的systemd物件; /usr/lib/systemd/system:每個服務最主要的啟動指令碼設定,類似於之前的/etc/init.d/ /run/systemd/system:系統執行過程中所產生的服務指令碼,比上面目錄優先執行 /etc/systemd/system:管理員建立的執行指令碼,類似於/etc/rc.d/rcN.d/Sxx類的功能,比上面目錄優先執行 其中unit型別中.service(用於定義系統服務)和.target(用於模擬實現執行級別)很重要; 管理工具: systemctl: 命令:systemctl COMMAND name.service 啟動:service name start ==> systemctl start name.service 停止:service name stop ==> systemctl stop name.service 重啟:service name restart ==> systemctl restart name.service 狀態:service name status ==> systemctl status name.service chkconfig: chkconfig命令的對應關係: 設定某服務開機自啟: chkconfig name on ==> systemctl enable name.service 設定某服務開機禁止啟動: chkconfig name off ==> systemctl disable name.service 切換至緊急救援模式: systemctl rescue 切換至emergency模式: systemctl emergency 暫時更新自認為常用的,後期碰見再修改。
centos6常見故障: 實驗:破解root口令 開機進選單項按a,輸入1/s/S/signal臨時進入命令列模式執行passwd命令即可。 實驗: /etc/inittab 預設模式改為6,恢復 開機進選單項按a,輸入5臨時進入圖形模式再修改/etc/inittab檔案即可。 實驗:刪除vmlinuz 檔案,恢復之(啟動頁面出現error錯誤) 1)cp /mnt/isolinux/vmlinuz /mnt/sysimage/boot/vmlinuz-`uname -r` 2)chroot /mnt/sysimage; mount /dev/sr0 /mnt ; rpm -ivh /Packages-kernel-3..... 實驗:grub.conf配置檔案刪除,恢復之 grub> kernel /vmlinuz-2...... root=/dev/sda initrd /initramfs-2...... boot 實驗:刪除grub1 1.5 2階段恢復 有無備份,有備份直接拷貝446位元組主分割槽表(scp) 無備份,grub-install /dev/sda(boot分割槽位置)安裝或ssh上傳相同檔案 實驗:centos6邏輯捲上刪除/etc/fstab 和/boot 分割槽,恢復 1)啟用邏輯卷組 vgchange -ay 2)安裝vmlinuz和initramfs檔案; 3)安裝grub檔案和配置grub.conf檔案 實驗:centos6 rm -rf /sbin/init scp上傳相同檔案即可。 實驗:centos6 自制linux 1)準備一塊新的硬碟,分割槽(/和boot),格式化 2)把需要的檔案拷到新硬盤裡 新增boot下的核心和驅動檔案以及grub.conf和grub 3)新增/root下各種配置 4)/bin下新增命令指令碼centos7常見故障: 實驗:破解grub2口令 啟動時任意鍵暫停啟動;按e鍵進入編輯模式;將游標移動linux16開始的行,改為rw init=/sysroot/bin/sh ;按ctrl-x啟動;chroot /sysroot;passwd root;touch /.autorelabel;exit;reboot 實驗:grub.cfg配置檔案刪除,恢復之 grub2-mkconfig > /boot/grub2/grub.cfg 實驗:刪除grub1 1.5 2階段恢復 grub2-install /dev/sda(boot分割槽位置) 實驗:centos7 刪除/boot,恢復 grub2-install /dev/sda(boot分割槽位置);grub-mkconfig > /boot/grub2/grub.cfg