Linux-系統啟動的基本過程 以及相關破環修復實驗。

這章簡單描述下系統的啟動流程,主要以破環修復實驗為主:

系統啟動基本過程:

      Linux系統啟動過程大致按照如下步驟進行(這是一個簡述):
        第一階段:BIOS啟動引導階段;
                        在該過程中實現硬件的初始化以及查找啟動介質;
                        從MBR中裝載啟動引導管理器(GRUB)并運行該啟動引導管理
         第二階段:GRUB啟動引導階段;
                        裝載stage1
                        裝載stage1.5
                        裝載stage2
                        讀取/boot/grub.conf文件并顯示啟動菜單;
                        裝載所選的kernel和initrd文件到內存中
         

        第三階段:內核階段:
                        運行內核啟動參數;
                        解壓initrd文件并掛載initd文件系統,裝載必須的驅動;
                        掛載根文件系統
        

         第四階段:Sys V init初始化階段:
                        啟動/sbin/init程序;
                        運行rc.sysinit腳本,設置系統環境,啟動swap分區,檢查和掛載文件系統;
                        讀取/etc/inittab文件,運行在/et/rc.d/rc(N).d中定義的不同運行級別的服務初始化腳本;
                        打開字符終端1-6號控制臺/打開圖形顯示管理的7號控制臺



同時在上述過程中各階段所需要讀取的文件和操作的對象:

BIOS啟動引導階段                          GRUB啟動引導階段                    內核階段                            /init/sysinit階段



None                                         /boot/grub/grub.conf              /boot/vmlinuz-<version>       /etc/rc.d/rc.sysinit
                                                 /boot/grub/stage1_5                /boot/initrd-<version>           /etc/inittab
                                                 /boot/grub/stage2                                                                 /etc/rc.d/rc<#>.d
                                                                                                                                              /etc/rc.d/init.d/*



實驗一:如果開機啟動時發現某服務出錯導致無法啟動,進行排錯?

            步驟:1、開機啟動讀秒后按esc鍵,進入GUN GRUB 窗口,按a進行內核參數修改。

                         Linux-系統啟動的基本過程 以及相關破環修復實驗。

                        Linux-系統啟動的基本過程 以及相關破環修復實驗。

                   2、chkconfig –list testsrv 查看服務所有模式下的啟動狀態

                3、mount -o remount,rw / 用讀寫方式重新掛載/
                4、chkconfig testsrv off 關閉服務,不制定級別,默認2,3,4,5級別下服務關閉
                5、chkconfig –level 1 testsrv off
                6、ls /etc/rc5.d/*tsetsrv* 查看是5模式下,文件是K或S開頭的,
                7、重新啟動


實驗二:dd if=/dev/zero of=/dev/sda bs=1 count=446,破環MBR第一個分 區 前446字節(bootloader),修復?

                    

                步驟:1、開機進入救援模式,按下面步驟,打開一個shell。

                      Linux-系統啟動的基本過程 以及相關破環修復實驗。

                      Linux-系統啟動的基本過程 以及相關破環修復實驗。

 

                          Linux-系統啟動的基本過程 以及相關破環修復實驗。


                         Linux-系統啟動的基本過程 以及相關破環修復實驗。


                         Linux-系統啟動的基本過程 以及相關破環修復實驗。


                         Linux-系統啟動的基本過程 以及相關破環修復實驗。

 

                         Linux-系統啟動的基本過程 以及相關破環修復實驗。

                      

                         Linux-系統啟動的基本過程 以及相關破環修復實驗。


                         

                   2、按照下圖,進行操作,

                        Linux-系統啟動的基本過程 以及相關破環修復實驗。    

                 3 、exit,退出重啟.


 

實驗三:刪除/boot/grub下的所有文件,保留grub.conf和splash.xpm.gz這兩個文件;即stage_2階段被破環?

                   重啟時的界面如下圖:

                        Linux-系統啟動的基本過程 以及相關破環修復實驗。

                

               修復方法和實驗二的過程一樣:
                       1、進入救援模式,開啟一個shell
                       2、chroot /mnt/sysimage
                       3、 grub-install /dev/sda
                       4、sync; exit ;退出重啟

實驗四:編輯/boot/grub/grub.conf文件,設置進入單用戶模式口令,不讓其他用戶隨便進入單用戶
                   模式,進行某些危險操作?
                    a 、 1、 vim /boot/grub/grub.conf
                            2、在hiddenmenu這一行的上面插入:
                                  password (輸入密碼)
                   b、也可以對密碼進行加密;
                         用 grub-md5-crypt 命令對密碼進行加密,
                        password –md5 加密后口令
                   c、md5加密算法不安全,已被破解,可以用 grub-crypt 命令生成更安全的加密口令;
                                password –encrypted 生成的加密口令

                   d、如果 password –encrypted 生成的加密口令,放在 title這一行的下面,則變成開機啟動 時的密碼;

                         輸入對應密碼才能啟動。

實驗五:/etc/grub/grub.conf文件里,initrd 與kernel這兩行的順序不能顛倒,如果順序反了,如何修復?

                  啟動時報錯的界面如下圖:

                               Linux-系統啟動的基本過程 以及相關破環修復實驗。

                 

                修復步驟如下圖:

                       1、重啟,按e進入編輯命令模式

                              Linux-系統啟動的基本過程 以及相關破環修復實驗。

                    

                              Linux-系統啟動的基本過程 以及相關破環修復實驗。

            

                              Linux-系統啟動的基本過程 以及相關破環修復實驗。

                              

                              Linux-系統啟動的基本過程 以及相關破環修復實驗。

             

                              Linux-系統啟動的基本過程 以及相關破環修復實驗。

                         2、 啟動完成后,再 修改/boot/grub/grub.conf文件;

                               把initrd 與kernel行的位置換一下,kernel一定在initrd行的前面;然后保存退出。

實驗六: 刪除/etc/fstab 和/boot ,并恢復?重啟后界面如下圖:

                        Linux-系統啟動的基本過程 以及相關破環修復實驗。   

                   

               

                      步驟:1、重啟,在讀進度條界面快速按esc鍵,選擇下圖中救援模式:

       

                                  Linux-系統啟動的基本過程 以及相關破環修復實驗。


                 

                              2,下圖發現,找不到系統的分區了,要先修復/etc/fsatb,讓系統識別分區。

                                         Linux-系統啟動的基本過程 以及相關破環修復實驗。

 

                         

                         3、通過下圖中的操作找出/boot和”/”分區,并修復/etc/fstab文件:

                                          Linux-系統啟動的基本過程 以及相關破環修復實驗。

                         

                                          Linux-系統啟動的基本過程 以及相關破環修復實驗。

                      4、修復完/etc/fstab 文件,保存退出,重新啟動,再次進入救援模式,可以看到,這時候,系統找到根分區了,并且被掛載到/mnt/sysimage下;

                            可以進行chroot   /mnt/sysimage 切根操作了。如下圖:

                                          Linux-系統啟動的基本過程 以及相關破環修復實驗。

              

                         

                           5、先切換根,掛載光盤,發現光盤下有vmlinuz內核文件,移動內核文件到/boot,操作如下圖:

                                         Linux-系統啟動的基本過程 以及相關破環修復實驗。

      

                          

                          6、創建根文件系統
                                  #mkinitrd /boot/initramfs-`uname -r` `uname -r
                          7、安裝grub

                                   #grub-install /dev/sda

                         

                          8、/boot/grub下缺少grub.conf文件。手動編輯一下,下圖中注釋可以不寫。

                                       Linux-系統啟動的基本過程 以及相關破環修復實驗。

 

                       注意:如果上述實驗步驟8,grub.conf文件寫錯了,重啟時會出現下圖的界面:

                                        Linux-系統啟動的基本過程 以及相關破環修復實驗。

                         

                              這里也可以直接寫grub.conf文件,然后重新加載boot,就不需要再重新進救援模式重新修改grub.conf文件了;節省大量時間。

                              等機器重啟后,再把grub.conf文件修改好。操作如下圖:

                                        Linux-系統啟動的基本過程 以及相關破環修復實驗。

                  

              


















原創文章,作者:shenjialong,如若轉載,請注明出處:http://www.www58058.com/79676

(0)
shenjialongshenjialong
上一篇 2017-07-10 08:45
下一篇 2017-07-10 19:13

相關推薦

  • LVM2 ( Blog4 )

    LV基本應用,擴展及縮減實現

    Linux干貨 2017-11-27
  • MySQL常用字符函數

    MySQL常用字符函數簡介 CONCAT(S1,S2…Sn) 連接S1,S2…Sn為一個字符串 concat函數,把傳入的參數連接成為一個字符串。 例如: 把“aaa”、“bbb”、”ccc”3個字符串連接成一個字符串,“aaabbbccc”.另外任何與NULL進行連接的結果都將是NULL. >SELEC…

    Linux干貨 2017-05-01
  • 第二周作業

    1、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。 目錄管理類的命令: mkdir, rmdir mkdir:make directories mkdir [OPTION]… DIRECTORY… -p: 自動按需創建父目錄; -v: verbose,顯示詳細過程; -m MODE:直接給定權限; 注意:路徑…

    Linux干貨 2018-01-17
  • 105-MHA

    一.MHA簡介 1.1.簡介         MHA(Master HA ) 是一款開源的 MySQL高可用程序,它為MYSQL 主從復制架構提供了automating master failover 主節點自動遷移功能.MHA在監控到master節點故障時候,會自動提升擁有的數據最近進于主節點的其他從節點為主節點,

    2016-11-27
  • 磁盤管理的相關知識

    1.設備文件:關聯至一個設備驅動程序,進而與之相對應設備文件通信 2.設備號碼:     主設備號:major number 標識文件類型     次設別號:minor number  同一類型下不同設備 3磁盤組成結構: .    &nb…

    Linux干貨 2016-08-30
  • Java輸入輸出流

    1.什么是IO       Java中I/O操作主要是指使用Java進行輸入,輸出操作. Java所有的I/O機制都是基于數據流進行輸入輸出,這些數據流表示了字符或者字節數據的流動序列。Java的I/O流提供了讀寫數據的標準方法。任何Java中表示數據源的對象都會提供以數據流的方式讀寫它的數據的方法。 &nb…

    Linux干貨 2015-04-10
欧美性久久久久