Linux系統修復

boot里面我們可以根據自己的需求去設置一些啟動選項,我們今天來了解一下Linux啟動流程,以及boot下的選項。

     wKiom1fXmpOgvkf1AAFXG-vVIDs288.png

    1. 加載BIOS的硬件信息,獲取第一個啟動設備。

    2. 讀取第一個啟動設備MBR的引導加載程序(grub)的啟動信息

    3. 加載核心操作系統的核心信息,核心開始解壓縮,并嘗試驅動所有的硬件設備。

    4. 核型執行init程序并獲取運行信息。

    5. Init執行/etc/rc.d/rc.sysinit文件。

    6. 啟動核心的外掛模塊(/etc/modprobe.conf)。

    7. Init執行運行的各個批處理文件(scripts).

    8. Init執行/etc/rc.d/rc.local.

    9. 執行/bin/login程序,等待用戶登錄。

    10. 登錄之后開始以Shell控制主機。

   POSTPower-On-Self-Test,加電自檢,是BIOS功能的一個主要部分。負責完成對CPU、主板、內存、硬盤子系統、顯示子系統、串并行接口、鍵盤、 CD-ROM光驅等硬件情況的檢測。

   ROM BIOS Basic Inputand Output System,保存著有關計算機系統最重要的基本輸入輸出程序,系統信息設置、開機加電自檢程序和系統啟動自舉程序等。

   RAM CMOS互補金屬氧化物半導體,保存各項參數的設定按次序查找引導設備,第一個有引導程序的設備為本次啟動設備bootloader: 引導加載器,引導程序

    Boot Loader:主要功能識別.加載操作系統中的核心文件,并提交到內存中運行,進而啟動對應的操作系統,每一種操作系統都有自己單獨的Boot Loader,只有使用自己的Boot            Loader才可以加載到自己的核心文件。Boot Loader另一個主要功能是提供菜單信息(可以向使用者提供不同的啟動項目,來加載不同的操作系統),并將啟動管理功能

          轉交給其他的加載程序。

   Linux:功能豐富,提供菜單,允許用戶選擇要啟動系統或不同的內核版本;把用戶選定的內核裝載到內存中的特定空間中,解壓、展開,并把系統控制權移交給內核

    stage1:運行boot Loader的程序與配置項加載分成三個階段(stage)來運行,MBR空間有限,因此在MBR中僅安裝Boot Loader的最小主程序,并沒有安裝Boot Loader的相關配置文件

    stage1_5:在MBR隨后的扇區中存放,主要用于與stage2所在分區的文件系統進行交互。

    stage2:通過Boot Loader加載所有配置文件及相關的環境參數信息,這些配置文件及相關的環境參數都存放于磁盤分區上的/boot目錄上。

    grub:最重要的一部分就是識別磁盤信息,grub對硬盤的識別是通過以下方式:

    (hd0,0)

     1.硬盤代號以小括號()括起來;

     2.硬盤以hd表示,后面會接一組數字,數字之間以逗號隔開;

     3.以搜尋到的順序來作為磁盤的編號,而非根據磁盤的排線編號(多硬盤情況下, 搜尋的次序是根據bios中設置的啟動順序,而非插槽編號);

     4.第一個搜尋到的磁盤編號為0,第二個為1,一次類推。

     5.每塊磁盤上的第一個分區編號為0,第二個分區為1,以此類推。

      #:因此(hd0,0)就表示第一塊磁盤上的第一個分區。

     default=0

         表示默認的啟動條目,假如同時裝有多個操作系統,0表示定義的第一個title系統,1表示定義的第二個title系統,以此類推

     timeout=5

         表示可供選擇的等待時間,如果超過5秒,則使用默認的啟動條目default定義的

     splashimage=(hd0,0)/grub/splash.xpm.gz

          定義啟動時的背景圖片信息

     hiddenmenu

         啟動時是否要顯示菜單,默認情況下是不顯示菜單信息,如果想要顯示菜單,可以將該配置注釋即可;

   注釋菜單:

    title:定義操作系統的名稱

    root :表示內核文件存放的位置,這里指定的是分區位置,而非根目錄。

    kernel:內核的名稱以及一些啟動時的核心參數,由于啟動過程中需要掛載根目錄,因此就需要指定根目錄所在的分區,rhgb表示色彩顯示,quiet表示靜默模式加載內核。

    initrd:指定用于輔助內核完成系統啟動的ramdisk文件路徑再次在內存緩存

     

   默認啟動級別:

     wKiom1fXu5TAfTjHAACSE2UUE-8455.png

       0:關閉所有服務;關機

       1:維護模式;單用戶模式,sigle模式,此級別可允許root用戶直接登錄而無需認證。

       2:維護模式;多用戶模式,需要用戶認證,會啟動網絡功能,但不支持使用NFS。

       3:正常級別:完全多用戶模式,文本界面。

       4:預留級別:

       5:正常級別:完全多用戶模式,圖形界面。

       6:關閉所有服務;重啟

      #:通常使用較多的默認級別為3或者5,服務器基本上默認使用3級別,即文本界面。

      #:查看當前運行的級別可以使用runlevel或者who -r

    wKiom1fXv4SirhdrAAANLaqb-50098.png

     #:禁用Ctrl+Alt+Delete重啟;(centos 6)

       1.cp -v /etc/init/control-alt-delete.conf /etc/init/control-alt-delete.override

       2.vim /etc/init/control-alt-delete.override

       3.將exec /sbin/shutdown -r now "Control-Alt-Delete pressed"改為exec /usr/bin/logger -p authpriv.notice -t init"ctrl-alt-del was pressed and ignored"

破壞及修復:

    stage1:破壞

        [root@localhost ~]# dd if=/dev/zero of=/dev/sda bs=1 count=446

        [root@localhost ~]# hexdump -Cv /dev/sda -n 446

    stage1:修復

    1.重啟并進入救援模式

   wKioL1fX49awI9ZPAAaPweiQpDs109.png

    2.選擇語言

   wKiom1fX49eAO2vXAAAgZ9F8xuY564.png

    3.設置網絡選擇NO

   wKioL1fX49fAhxldAAAQtj1BbWU326.png

    4.輸入continue

   wKiom1fX49jzcJ0oAAA4dlILxeU534.png

    5.打開shell終端,并切換至根目錄,chroot /mnt/sysimage/

   wKiom1fX49jCVy3vAAAt24xGrcM164.png

    6.錯誤輸出信息可以忽略,看到設設備信息即可。

   wKioL1fX49jiaqbPAABMH7Cz1YA450.png

   wKiom1fX49njaKodAAAeMC6y6iI013.png

    7.就此stage1已經修復完成,重啟即可完成。

 stage1_5:破壞

    dd if=/dev/zero of=/dev/sda bs=512 count=2 seek=1

 stage1_5:修復

    1.重啟系統

    2.光盤啟動,進入救援模式。

   wKiom1fX557i1Jp8AABbIdJfE8I313.png

    3.使用grub工具修復引導文件,修復完成,直接重啟即可。

 boot:破壞,直接刪除boot目錄

 boot:修復

    1.刪除boot目錄下全部文件并重啟

     [root@localhost ~]# rm -rf /boot/*

    2.重啟并進入救援模式

   wKiom1fX7V6yCnJPAAAOckqUR5A100.png

    3.進入根目錄,掛載鏡像

   wKioL1fX7V_D9MLBAAAczt0S0NI284.png

    4.重新安裝kernel

   wKiom1fX7V_iSKEWAAAS60MhvuQ563.png

    5.修復引導文件

   wKioL1fX7V-xsEYuAAAQOJECVzg863.png

    6.編輯/etc/grub.conf配置文件

   wKioL1fX7WCioHiNAAAwbP91_gk683.png

    7.修復完成,重啟即可。

 boot:破壞    

    [root@localhost ~]# rm -rf /boot/*

 fstab:破壞

    [root@localhost ~]# rm -rf /etc/fstab

 引導修復,fstab文件修復。

    1.重啟并進入救援模式。

    2.我們會發現系統檢測不到根目錄,因為我們把/etc/fstab刪除了

   wKioL1fX9nuinS0lAAArbI9sj64838.png

    3.查看邏輯卷,并激活邏輯卷,默認關閉狀態

   wKioL1fX9nyz31ECAAAaUugGEzw071.png

    4.掛載根目錄。

   wKiom1fX9nzzonHHAAAFe9tMKps663.png

    5.新建/etc/fstab并寫入掛載信息,重啟進入救援模式,讓系統自動檢測。

   wKioL1fX9nzjvJ4bAAAqG7z5LQM133.png

    6.這里我們發現系統已經檢測到了路徑/etc/sysimage

   wKiom1fX9n2BUsbhAAA6zxq8hLA435.png

    7.重新進入根目錄,掛載鏡像文件。

   wKioL1fX9n7iogc1AAAWXe5cEzY544.png

    8.重新安裝kernel,并修復引導文件

   wKiom1fX9n7xihH3AAApErgQoBY624.png

    9.編輯/etc/group引導文件

   wKiom1fX9n6Rzv4tAAAvObH63oQ324.png

    10.到這一步已經修復完成了,直接重啟即可正常進入系統。

原創文章,作者:鬧鐘哥,如若轉載,請注明出處:http://www.www58058.com/46282

(0)
鬧鐘哥鬧鐘哥
上一篇 2016-09-13 20:58
下一篇 2016-09-13 22:07

相關推薦

  • corosync+pacemaker+pcs 使用ansible配置高可用LAMP構架

    前言: 這篇博客的實驗主要是配置兩個節點基于corosync + pacemaker的高考用lamp, 是我搞得最痛苦的一次,并且結果還不穩定。主要問題是corosync 1.x + pacemaker 時,如果把pacemaker當成插件使用,嘗試很多次都不成功,后來把pacemaker當成半獨立的服務進行配置。 但是如此一來crm就沒辦法進行資源配置,只…

    Linux干貨 2016-01-27
  • 馬哥教育網絡班21期-第七周課程練習

    1、創建一個10G分區,并格式為ext4文件系統;     #fdisk /dev/sdb (n;p;1;+10G;w)     #partx -a -n 1 /dev/sdb     (1…

    Linux干貨 2016-08-22
  • 2016-11-4作業

    1、創建一個2G的文件系統,塊大小為2048byte,預留1%可用空間,文件系統ext4,卷標為TEST,要求此分區開機后自動掛載至/test目錄,且默認有acl掛載選項  mkfs.ext4 -b 2048  -L "TEST" -m 1 /dev/sdb6 2、寫一個腳本,完成如下功能: (1) 列出當前系統識別到…

    Linux干貨 2016-11-06
  • httpd服務歸納:網絡服務基礎篇

    一、網絡傳輸基礎     1. 套接字:兩類          1) Unix Sock: 一種本地文件系統          2) Socket: IP port (I…

    Linux干貨 2015-05-04
  • 利用varnish構建httpd緩存服務器

    varnish如何存儲緩存對象:     file: 單個文件;不支持持久機制;     malloc: 緩存在內存中;     persistent:基于文件的持久存儲;(此方式不建議使用) vcl:配置緩存系統的緩存機制;【線程中緩存功…

    Linux干貨 2016-06-20
  • yum –rpm前端工具詳解

     1、yum 介紹        YUM: Yellowdog Update Modifier, rpm的前端程序,用來解決軟件包相關依賴性,可以在多個庫之間定位軟件包,up2date的替代工具        &nbsp…

    Linux干貨 2016-08-24
欧美性久久久久