CentOS 7 啓動故障、密碼忘了怎麼辦?服務啓動怎麼優化?手把手教你解決!

前 言:

在解決問題前咱們先了解一下開機引導的過程:shell

CentOS 7 啓動故障、密碼忘了怎麼辦?服務啓動怎麼優化?手把手教你解決!

啓動故障主要出如今前三個步驟,開機自檢主要是檢查硬件是否損壞,主要是檢查CPU和內存, 因此若是是這一步驟出問題了咱們就須要更換硬件了。下面我開始從MBR開始講。bash

什麼是MBR?

一般,咱們將包含MBR引導代碼的扇區稱爲主引導扇區。因這一扇區中,引導代碼佔有絕大部分的空間,故而將習慣將該扇區稱爲MBR扇區(簡稱MBR)。因爲這一扇區承擔有不一樣於磁盤上其餘普通存儲空間的特殊管理職能,做爲管理整個磁盤空間的一個特殊空間,它不屬於磁盤上的任何分區,於是分區空間內的格式化命令不能清除主引導記錄的任何信息。主引導扇區由三個部分組成(共佔用512個字節):
1.主引導程序即主引導記錄(MBR)(佔446個字節)
可在FDISK程序中找到,它用於硬盤啓動時將系統控制轉給用戶指定的並在分區表中登記了的某個操做系統。
2.磁盤分區表項(DPT,Disk Partition Table)
由四個分區表項構成(每一個16個字節)。
負責說明磁盤上的分區狀況,其內容由磁盤介質及用戶在使用FDISK定義分區時決定。(具體內容略)
3.結束標誌(佔2個字節)
其值爲AA55,存儲時低位在前,高位在後,即看上去是55AA(十六進制)。ssh

修復MBR扇區故障:

故障緣由:

  • 病毒、等形成破壞
  • 不正確的分區操做、磁盤讀寫誤操做

故障現象:

  • 找不到引導程序,啓動中斷
  • 沒法加載操做系統,開機後黑屏

解決思路:

  • 應提早做好備份文件
  • 以安裝光盤引導進入急救模式
  • 從備份文件中恢復

實際操做:

1.在進行MBR引導扇區恢復以前,必定要保證在其它磁盤中有MBR引導扇區的備份,下面咱們先對MBR引導扇區進行備份。由於引導扇區是sda磁盤的第一個扇區,大小爲512字節,咱們只需將這個扇區的數據備份出來便可。ide

CentOS 7 啓動故障、密碼忘了怎麼辦?服務啓動怎麼優化?手把手教你解決!

2.備份好引導扇區後,咱們將引導扇區破壞來模擬引導扇區損壞的啓動故障,咱們只須要複製一些垃圾文件將引導扇區覆蓋便可,而後重啓你就會發現系統沒法正常啓動。工具

CentOS 7 啓動故障、密碼忘了怎麼辦?服務啓動怎麼優化?手把手教你解決!

CentOS 7 啓動故障、密碼忘了怎麼辦?服務啓動怎麼優化?手把手教你解決!

3.此時咱們就須要一個系統驅動盤,就是你用來裝系統的U盤驅動或光盤驅動都行。我用的是光盤鏡像,將它們插到你的設備上,而後重啓設備,在剛開啓時按下[ESC]鍵,在啓動菜單中選擇光盤啓動,而後按下面圖片依次進行選擇。優化

CentOS 7 啓動故障、密碼忘了怎麼辦?服務啓動怎麼優化?手把手教你解決!
CentOS 7 啓動故障、密碼忘了怎麼辦?服務啓動怎麼優化?手把手教你解決!
CentOS 7 啓動故障、密碼忘了怎麼辦?服務啓動怎麼優化?手把手教你解決!

4.進入後稍做等待,而後輸入「1」回車,再直接回車,進入到一個鏡像的shell終端模式。操作系統

CentOS 7 啓動故障、密碼忘了怎麼辦?服務啓動怎麼優化?手把手教你解決!

5.建立一個新目錄,而後將以前用來備份的磁盤sdb1掛載上去。3d

輸入:mkdir bak
輸入:mount /dev/sdb1 /bak/

CentOS 7 啓動故障、密碼忘了怎麼辦?服務啓動怎麼優化?手把手教你解決!

6.將sdb1中的備份文件sda.mbr.bak複製到sda的引導扇區中,而後重啓便可。rest

輸入:dd if=/bak/sda.mbr.bak of=/dev/sda
輸入:init 6

CentOS 7 啓動故障、密碼忘了怎麼辦?服務啓動怎麼優化?手把手教你解決!

7.啓動成功。code

CentOS 7 啓動故障、密碼忘了怎麼辦?服務啓動怎麼優化?手把手教你解決!

什麼是GRUB?

是一個來自GNU項目的多操做系統啓動程序。GRUB是多啓動規範的實現,它容許用戶能夠在計算機內同時擁有多個操做系統,並在計算機啓動時選擇但願運行的操做系統。GRUB可用於選擇操做系統分區上的不一樣內核,也可用於向這些內核傳遞啓動參數。

修復GRUB引導故障:

故障緣由:

  • MBR中的GRUB引導程序遭到破壞
  • grub.conf 文件丟失、引導配置有誤

故障現象:

  • 系統引導停滯,顯示「grub>」提示符

解決思路:

  • 嘗試手動輸入引導命令
  • 進入急救模式,重寫或者從備份中恢復grub.conf
  • 向MBR扇區中重建grub程序

實際操做:

1.首先我們須要將grub配置文件grub.cfg刪除,用來模擬grub損壞的啓動故障,而後重啓系統。

CentOS 7 啓動故障、密碼忘了怎麼辦?服務啓動怎麼優化?手把手教你解決!

2.步驟與恢復MBR引導扇區相同,咱們須要一個系統驅動盤,就是你用來裝系統的U盤驅動或光盤驅動都行。我用的是光盤鏡像,將它們插到你的設備上,而後重啓設備,在剛開啓時按下[ESC]鍵,在啓動菜單中選擇光盤啓動,而後按下面圖片依次進行選擇。

CentOS 7 啓動故障、密碼忘了怎麼辦?服務啓動怎麼優化?手把手教你解決!
CentOS 7 啓動故障、密碼忘了怎麼辦?服務啓動怎麼優化?手把手教你解決!
CentOS 7 啓動故障、密碼忘了怎麼辦?服務啓動怎麼優化?手把手教你解決!

3.進入後稍做等待,而後輸入「1」回車,再直接回車,進入到一個鏡像的shell終端模式。

CentOS 7 啓動故障、密碼忘了怎麼辦?服務啓動怎麼優化?手把手教你解決!

4.首先加載系統鏡像進入到bash環境,而後從新創建加載sda分區,最後從新構建grub菜單配置文件並退出bash環境。

輸入:chroot /mnt/sysimage/
輸入:grub2-install /dev/sda
輸入:grub2-mkconfig -o /boot/grub2/grub.cfg
輸入:exit

CentOS 7 啓動故障、密碼忘了怎麼辦?服務啓動怎麼優化?手把手教你解決!

5.重啓設備,稍做等待,啓動成功。

CentOS 7 啓動故障、密碼忘了怎麼辦?服務啓動怎麼優化?手把手教你解決!
CentOS 7 啓動故障、密碼忘了怎麼辦?服務啓動怎麼優化?手把手教你解決!

Root密碼重置:

1.當你忘記root的開機密碼了,首先我們用到的仍是光盤鏡像,步驟與上面的步驟相同,將它們插到你的設備上,而後重啓設備,在剛開啓時按下[ESC]鍵,在啓動菜單中選擇光盤啓動,而後按下面圖片依次進行選擇。

CentOS 7 啓動故障、密碼忘了怎麼辦?服務啓動怎麼優化?手把手教你解決!
CentOS 7 啓動故障、密碼忘了怎麼辦?服務啓動怎麼優化?手把手教你解決!
CentOS 7 啓動故障、密碼忘了怎麼辦?服務啓動怎麼優化?手把手教你解決!

2.進入後稍做等待,而後輸入「1」回車,再直接回車,進入到一個鏡像的shell終端模式。

CentOS 7 啓動故障、密碼忘了怎麼辦?服務啓動怎麼優化?手把手教你解決!

3.先加載系統鏡像進入到bash模式,直接用「passwd」命令重置密碼,再用「exit」命令退出bash模式,輸入「init 6」重啓直接用新密碼登陸便可。

CentOS 7 啓動故障、密碼忘了怎麼辦?服務啓動怎麼優化?手把手教你解決!

Systemd單元類型:

CentOS 7 啓動故障、密碼忘了怎麼辦?服務啓動怎麼優化?手把手教你解決!

運行級別所對應的Systemd目標:

CentOS 7 啓動故障、密碼忘了怎麼辦?服務啓動怎麼優化?手把手教你解決!

系統服務控制:

經常使用方式:

systemctl 控制類型 服務名稱

經常使用控制類型:

  • start:啓動
  • stop:中止
  • restart:從新啓動
  • reload:從新加載
  • status:查看服務狀態

Linux系統的運行級別:

查看運行級別:

  • runlevel命令:查看當前運行級別和切換前運行級別

用「runlevel」命令查看當前的運行級別和切換前運行級別,「5」表示當前的運行級別,「3」表示切換前的運行級別。
CentOS 7 啓動故障、密碼忘了怎麼辦?服務啓動怎麼優化?手把手教你解決!

  • systemctl工具:查看默認的運行級別
    輸入「systemctl get-default」命令,查看系統的默認運行級別,「graphical」表示圖形化界面。
    CentOS 7 啓動故障、密碼忘了怎麼辦?服務啓動怎麼優化?手把手教你解決!

臨時切換運行級別:

  • init命令:命令參數是運行級別所對應的數字

1.用「init 3」進入字符界面,「3」是字符界面的運行級別。
CentOS 7 啓動故障、密碼忘了怎麼辦?服務啓動怎麼優化?手把手教你解決!

2.進入字符界面輸入用戶名「root」和用戶密碼登陸,而後再用「init 5」命令進入圖形化界面。
CentOS 7 啓動故障、密碼忘了怎麼辦?服務啓動怎麼優化?手把手教你解決!

  • systemctl工具:命令參數是具體的target

1.輸入命令「systemctl isolate multi-user.target」進入字符界面,「multi-user」是字符界面的target。
CentOS 7 啓動故障、密碼忘了怎麼辦?服務啓動怎麼優化?手把手教你解決!

2.在字符界面輸入用戶名和密碼,登陸後再用命令「systemctl isolate graphical.target」命令進入圖形化界面。
CentOS 7 啓動故障、密碼忘了怎麼辦?服務啓動怎麼優化?手把手教你解決!

更改默認運行級別:

咱們將原來的默認運行級別「graphical」(圖形化界面)更改成「multi-user」字符界面,這裏其實就是建立一個「multi-user」的軟連接「default.target」,並將原來同名的「graphical」的軟連接刪除。這裏「-s」即便軟連接,「-f」是刪除軟連接同名連接。直接輸入命令「ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target」,而後查看默認運行級別已經修改爲功,當你下次啓動系統就會是字符界面了。
CentOS 7 啓動故障、密碼忘了怎麼辦?服務啓動怎麼優化?手把手教你解決!

系統服務管理工具:

ntsysv工具:

  • 提供一個交互式、可視化窗口
  • 能夠在字符終端運行
  • 便於集中管理多個服務

咱們直接輸入命令「ntsysv」就能進入服務管理界面,咱們能夠看到每一個服務前都有「[ * ] 」 或「[ * ]」,有「 * 」的表示開機自啓,沒有則不開機自啓,咱們能夠經過「空格鍵」來更改服務的自啓狀態,當咱們更改完畢只需按[tab]鍵來選擇肯定保存設置便可。
CentOS 7 啓動故障、密碼忘了怎麼辦?服務啓動怎麼優化?手把手教你解決!
CentOS 7 啓動故障、密碼忘了怎麼辦?服務啓動怎麼優化?手把手教你解決!

systemctl工具:

  • 不提供交互式、可視化窗口
  • 管理單個服務效率更高

1.咱們直接輸入命令「systemctl disable sshd.service」,就能直接關閉「sshd」服務的開機自啓,而後用命令「systemctl is-enabled sshd」查看一下「sshd」服務的自啓狀態,顯示「disabled」不能自啓。

CentOS 7 啓動故障、密碼忘了怎麼辦?服務啓動怎麼優化?手把手教你解決!

2.咱們再用「systemctl enable sshd.service」命令將「sshd」服務的開機自啓功能打開,而後查看顯示「enabled」開機自啓。

CentOS 7 啓動故障、密碼忘了怎麼辦?服務啓動怎麼優化?手把手教你解決!

相關文章
相關標籤/搜索