前 言:
在解決問題前我們先了解一下開機引導的過程:
啓動故障主要出現在前三個步驟,開機自檢主要是檢查硬件是否損壞,主要是檢查CPU和內存, 所以如果是這一步驟出問題了我們就需要更換硬件了。下面我開始從MBR開始講。
什麼是MBR?
通常,我們將包含MBR引導代碼的扇區稱爲主引導扇區。因這一扇區中,引導代碼佔有絕大部分的空間,故而將習慣將該扇區稱爲MBR扇區(簡稱MBR)。由於這一扇區承擔有不同於磁盤上其他普通存儲空間的特殊管理職能,作爲管理整個磁盤空間的一個特殊空間,它不屬於磁盤上的任何分區,因而分區空間內的格式化命令不能清除主引導記錄的任何信息。主引導扇區由三個部分組成(共佔用512個字節):
1.主引導程序即主引導記錄(MBR)(佔446個字節)
可在FDISK程序中找到,它用於硬盤啓動時將系統控制轉給用戶指定的並在分區表中登記了的某個操作系統。
2.磁盤分區表項(DPT,Disk Partition Table)
由四個分區表項構成(每個16個字節)。
負責說明磁盤上的分區情況,其內容由磁盤介質及用戶在使用FDISK定義分區時決定。(具體內容略)
3.結束標誌(佔2個字節)
其值爲AA55,存儲時低位在前,高位在後,即看上去是55AA(十六進制)。
修復MBR扇區故障:
故障原因:
- 病毒、等造成破壞
- 不正確的分區操作、磁盤讀寫誤操作
故障現象:
- 找不到引導程序,啓動中斷
- 無法加載操作系統,開機後黑屏
解決思路:
- 應提前作好備份文件
- 以安裝光盤引導進入急救模式
- 從備份文件中恢復
實際操作:
1.在進行MBR引導扇區恢復之前,一定要保證在其它磁盤中有MBR引導扇區的備份,下面我們先對MBR引導扇區進行備份。因爲引導扇區是sda磁盤的第一個扇區,大小爲512字節,我們只需將這個扇區的數據備份出來即可。
2.備份好引導扇區後,我們將引導扇區破壞來模擬引導扇區損壞的啓動故障,我們只需要複製一些垃圾文件將引導扇區覆蓋即可,然後重啓你就會發現系統無法正常啓動。
3.此時我們就需要一個系統驅動盤,就是你用來裝系統的U盤驅動或光盤驅動都行。我用的是光盤鏡像,將它們插到你的設備上,然後重啓設備,在剛開啓時按下[ESC]鍵,在啓動菜單中選擇光盤啓動,然後按下面圖片依次進行選擇。
4.進入後稍作等待,然後輸入“1”回車,再直接回車,進入到一個鏡像的shell終端模式。
5.創建一個新目錄,然後將之前用來備份的磁盤sdb1掛載上去。
輸入:mkdir bak
輸入:mount /dev/sdb1 /bak/
6.將sdb1中的備份文件sda.mbr.bak複製到sda的引導扇區中,然後重啓即可。
輸入:dd if=/bak/sda.mbr.bak of=/dev/sda
輸入:init 6
7.啓動成功。
什麼是GRUB?
是一個來自GNU項目的多操作系統啓動程序。GRUB是多啓動規範的實現,它允許用戶可以在計算機內同時擁有多個操作系統,並在計算機啓動時選擇希望運行的操作系統。GRUB可用於選擇操作系統分區上的不同內核,也可用於向這些內核傳遞啓動參數。
修復GRUB引導故障:
故障原因:
- MBR中的GRUB引導程序遭到破壞
- grub.conf 文件丟失、引導配置有誤
故障現象:
- 系統引導停滯,顯示“grub>”提示符
解決思路:
- 嘗試手動輸入引導命令
- 進入急救模式,重寫或者從備份中恢復grub.conf
- 向MBR扇區中重建grub程序
實際操作:
1.首先咱們需要將grub配置文件grub.cfg刪除,用來模擬grub損壞的啓動故障,然後重啓系統。
2.步驟與恢復MBR引導扇區相同,我們需要一個系統驅動盤,就是你用來裝系統的U盤驅動或光盤驅動都行。我用的是光盤鏡像,將它們插到你的設備上,然後重啓設備,在剛開啓時按下[ESC]鍵,在啓動菜單中選擇光盤啓動,然後按下面圖片依次進行選擇。
3.進入後稍作等待,然後輸入“1”回車,再直接回車,進入到一個鏡像的shell終端模式。
4.首先加載系統鏡像進入到bash環境,然後重新建立加載sda分區,最後重新構建grub菜單配置文件並退出bash環境。
輸入:chroot /mnt/sysimage/
輸入:grub2-install /dev/sda
輸入:grub2-mkconfig -o /boot/grub2/grub.cfg
輸入:exit
5.重啓設備,稍作等待,啓動成功。
Root密碼重置:
1.當你忘記root的開機密碼了,首先咱們用到的還是光盤鏡像,步驟與上面的步驟相同,將它們插到你的設備上,然後重啓設備,在剛開啓時按下[ESC]鍵,在啓動菜單中選擇光盤啓動,然後按下面圖片依次進行選擇。
2.進入後稍作等待,然後輸入“1”回車,再直接回車,進入到一個鏡像的shell終端模式。
3.先加載系統鏡像進入到bash模式,直接用“passwd”命令重置密碼,再用“exit”命令退出bash模式,輸入“init 6”重啓直接用新密碼登錄即可。
Systemd單元類型:
運行級別所對應的Systemd目標:
系統服務控制:
常用方式:
systemctl 控制類型 服務名稱
常用控制類型:
- start:啓動
- stop:停止
- restart:重新啓動
- reload:重新加載
- status:查看服務狀態
Linux系統的運行級別:
查看運行級別:
- runlevel命令:查看當前運行級別和切換前運行級別
用“runlevel”命令查看當前的運行級別和切換前運行級別,“5”表示當前的運行級別,“3”表示切換前的運行級別。
- systemctl工具:查看默認的運行級別
輸入“systemctl get-default”命令,查看系統的默認運行級別,“graphical”表示圖形化界面。
臨時切換運行級別:
- init命令:命令參數是運行級別所對應的數字
1.用“init 3”進入字符界面,“3”是字符界面的運行級別。
2.進入字符界面輸入用戶名“root”和用戶密碼登錄,然後再用“init 5”命令進入圖形化界面。
- systemctl工具:命令參數是具體的target
1.輸入命令“systemctl isolate multi-user.target”進入字符界面,“multi-user”是字符界面的target。
2.在字符界面輸入用戶名和密碼,登錄後再用命令“systemctl isolate graphical.target”命令進入圖形化界面。
更改默認運行級別:
我們將原來的默認運行級別“graphical”(圖形化界面)更改爲“multi-user”字符界面,這裏其實就是創建一個“multi-user”的軟鏈接“default.target”,並將原來同名的“graphical”的軟鏈接刪除。這裏“-s”即使軟鏈接,“-f”是刪除軟鏈接同名鏈接。直接輸入命令“ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target”,然後查看默認運行級別已經修改成功,當你下次啓動系統就會是字符界面了。
系統服務管理工具:
ntsysv工具:
- 提供一個交互式、可視化窗口
- 可以在字符終端運行
- 便於集中管理多個服務
我們直接輸入命令“ntsysv”就能進入服務管理界面,我們可以看到每個服務前都有“[ * ] ” 或“[ * ]”,有“ * ”的表示開機自啓,沒有則不開機自啓,我們可以通過“空格鍵”來更改服務的自啓狀態,當我們更改完畢只需按[tab]鍵來選擇確定保存設置即可。
systemctl工具:
- 不提供交互式、可視化窗口
- 管理單個服務效率更高
1.我們直接輸入命令“systemctl disable sshd.service”,就能直接關閉“sshd”服務的開機自啓,然後用命令“systemctl is-enabled sshd”查看一下“sshd”服務的自啓狀態,顯示“disabled”不能自啓。
2.我們再用“systemctl enable sshd.service”命令將“sshd”服務的開機自啓功能打開,然後查看顯示“enabled”開機自啓。