GRUB管理

對于運維人員來說,想要熟練掌握linux,那么久要對linux的啟動流程有一個詳細的了解,而今天我們就一起來學習一下linux啟動中最重要的一個階段——GRUB引導階段。

Linux啟動流程

GRUB管理

grup: GRand Unified Bootloader 

由上圖可知,grub屬于系統啟動過程中一個必須的階段。而這個階段又分為了三個小的階段,分別是stage1,stage1.5,stage2。

stage1: mbr 磁盤的前446字節

>這個內容被破壞會自動進入光盤啟動界面,因為機器認為沒有了硬盤啟動功能

stage1_5: mbr之后的扇區512字節后的內容,讓stage1中的bootloader 能識別stage2所在的分區上的文件系統 

>這個內容被破壞系統讀條會黑屏,不會自動出現光盤引導。因為1階段已經啟動,機器認為可以在硬盤啟動,但是讀入硬盤后無法通過1.5階段進入2階段

stage2:在磁盤的boot分區中(/boot/grub/grup.conf),

>只是grub.conf文件損壞,出現grub>提示符。grub目錄如果被誤刪,會出現error15,并且黑屏,無法啟動

grub的命令行接口

在系統啟動的內核選擇界面,可以選擇進入命令行接口。

GRUB管理
>解釋:
>e:進入編輯模式 編輯菜單 可通過這個模式進入單用戶

>a:修改內核參數 例如關閉selinux

GRUB管理

>c:進入grub命令行模式 交互式接口

grub的stage2配置文件

grub第二階段的是三個階段中唯一可以直接以可讀文件形式展現給我們的階段。它最重要的配置文件就是/boot/grub/grub.conf <– /etc/grub.conf(后面這個是軟連接)。如下圖:
GRUB管理

對配置文件的解釋:

注釋:

這個文件是由安裝向導anaconda生成的。對該文件進行修改后,不需要重復運行,因為或者文件是開機自動讀取的。注意:若你有一個boot目錄的獨立分區,這意味著所有的內核和偽根路徑都是相對于這個boot目錄的路徑來設置的。

這里的/代表的不是我們操作系統的根,因為root(hd0,0)表示的是指的我們的第一磁盤的第一分區,也就是boot所在分區,他們以boot為根(就算不寫root(hd0,0)也可以,因為默認就是這個)。因此可以寫成以下格式:
root (hd0,0) 
kernel /vmlinuz-version ro root=/dev/sda2
initrd /initrd-[generic-]version.img

但如果/boot不是一個獨立分區,而是在根這個分區中,則需要加上/boot的路徑,如:
kernel /boot/vmlinuz-version ro root=/dev/sda2
initrd /boot/initrd-[generic-]version.img

內容:

default=#: 設定默認啟動的菜單項;落單項(title)編號從0開始。因為可以配置多個內核,所以有多個系統可供選擇。 

timeout=#:指定菜單項等待選項選擇的時長 ,如果不寫,需要手動敲回車才能進入系統。

splashimage=(hd#,#)/PATH/XPM_FILE:菜單背景圖片文件路徑 ,這個是可以更改的。選擇內核時的背景圖片。這個是可以更改的,但是有格式要求。

hiddenmenu:隱藏菜單 ,寫了這個就不會出現自動出現系統選擇界面,而需要敲任意鍵才會出現。

password [–md5] STRING: 啟動菜單編輯認證 。可以在這個項目增加密碼,這樣可以讓用戶只有輸入密碼才能進入內核編輯界面,而且可以對密碼進行加密。

title TITLE:定義菜單項“標題”, 可出現多次 ,這個比較隨意。
root (hd#,#):hd#: 磁盤編號,用數字表示;從0開始編號 #: 分區編號,用數字表示; 從0開始編號 (hd0,0)表示根在 第一塊硬盤,第一個分區 查找stage2及kernel文件所在設備分區

kernel /PATH/TO/VMLINUZ_FILE [PARAMETERS]:啟動的內核 。在起后面有很多內容都是內核參數,都是內核中的默認功能,可以進行修改或關閉。后面有一項rhgb是開啟啟動動畫(轉圈圈那個-.-),開啟的話會不顯示啟動的各種字符的過程,不利于排錯,建議刪除關閉。有一項是quit默認隱藏內核啟動過程,可以刪除讓其關閉??梢杂胏at /proc/cmdline來查看開啟了那些內核參數。在/grub.conf文件中也可以看到。
ro root=UUID=a6c8e0e3-2fa0-4e9f-bd90-4 指定根的目錄。是內核的一個參數

initrd /PATH/TO/INITRAMFS_FILE: 內核匹配的ramfs文件 

password [–md5|–encrypted ] STRING: 啟動選定的內核或操作 系統時進行認證 在這個條目增加密碼

grub的安裝和修復命令

grub是一個命令,有著自己的語法結構,如下圖:
GRUB管理

通過grub.conf文件為linux加密

為進入編輯模式進行加密

通過編輯模式可以進入單用戶模式,直接修改root口令,因此可以通過對進入單用戶模式加密,從而增強linux的安全性。
GRUB管理
進入到系統選擇畫面,可以看到已經沒有了常用的e選項,只剩下了p選項
GRUB管理
輸入p后需要輸入密碼才能進入編輯模式,而這個密碼就是我們在grub.conf文件中寫入哪個密碼。

為加載linux系統進行加密

對于是否讓系統啟動,我們也可以有權進行管理。通過下圖的方法,我們可以對系統啟動進行密碼保護,更加加強了linux的保密性。
GRUB管理
這個加載在救援模式之后,系統啟動之前
GRUB管理

利用加密算法設置口令

上面兩個密碼的設置都是明文,如果別人在開機后查看grub.conf文件是可以看到的。因此可以同過加密算法來設置口令。

例如:通過md5加密

進入vim的命令模式輸入 grub-md5-crypt
password –md5 加密口令
GRUB管理

例如:通過sha算法加密

進入vim的命令模式輸入grub-crypt 輸入兩邊口令自動加密,并將加密結果寫入 password –encrypted 加密口令
GRUB管理
>如果上面的口令全部忘記,可以通過救援模式,直接修改文件即可。
因此可以看出,只要物理能接觸服務器或者主機,所有的保密將不復存在。

修改背景菜單圖片

對于我們的linux內核選擇界面的背景圖片,我們也可以自己進行設置,將圖片jpg,png格式都可以。具體方法如下:

將圖片在linux中進行處理,使用工具convert。包為ImageMagick。

格式處理:convert -resize 640×480 -colors 14 picturename.jpg  picturename.xpm
GRUB管理
進行壓縮:gzip picturename.xpm

移動到/boot/grub目錄: mv picturename.xpm.gz  /boot/grub

修改配置文件,指定路徑 splashimage=(hd0,0)/grub/picturename.xpm.gz

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

(1)
OscaoChaserOscaoChaser
上一篇 2017-09-02
下一篇 2017-09-02

相關推薦

  • N22-妙手-第七周博客作業第四題:RAID各級別的特性

    什么是RAID RAID的全稱是Redundant Array of Independent Disks – 獨立磁盤冗余陣列?;舅枷胧菍⒍鄠€相對便宜的硬盤組合成為一個硬盤陣列,使其在性能上達到或超過一塊價格昂貴、容量巨大的硬盤。RAID通常被用在服務器上,使用完全相同的硬盤組成一個邏輯扇區,因此操作系統會把其當做一塊硬盤。RAID分為不同的等…

    Linux干貨 2016-09-27
  • 第九周

    1、寫一個腳本,判斷當前系統上所有用戶的shell是否為可登錄shell(即用戶的shell不是/sbin/nologin);分別這兩類用戶的個數;通過字符串比較來實現; #!/bin/bash for i in `cut -d':' -f7 /etc/passwd`;do &n…

    Linux干貨 2016-09-26
  • 使用fail2ban防止暴力破解ssh及vsftpd密碼

    此文介紹一個linux下通過監控日志防止密碼被暴力破解的軟件-fail2ban。fail2ban支持常用的服務,如sshd, apache, qmail, proftpd, sasl, asterisk等的密碼驗證保護,當發現暴力破解的跡像時,可以通過iptables, tcp-wrapper, shorewall等方式阻止此IP的訪問。 python安裝 …

    Linux干貨 2015-03-04
  • 硬盤基礎知識及 MBR、GPT分區格式

    一,硬盤知識     硬盤接口類型:         ? 并行:             IDE: 133MB/s &n…

    Linux干貨 2016-09-19
  • N22-妙手-第五周博客作業

    1、顯示/boot/grub/grub.conf中以至少一個空白字符開頭的行; [root@localhost grub]# grep "^[[:space:]]\+" /boot/grub/grub.conf 2、顯示/etc/rc.d/rc.sysinit文件中以#開頭,后面跟至少一個空白字符,…

    Linux干貨 2016-09-19
  • 人志建,則無敵—if、case練習

    馬哥21期網絡班-9周博客作業 1、寫一個腳本,判斷當前系統上所有用戶的shell是否為可登錄shell(即用戶的shell不是/sbin/nologin);分別這兩類用戶的個數;通過字符串比較來實現; #!/bin/bash for i in `cut -d: -f7 /etc/passwd`;&…

    Linux干貨 2016-09-05
欧美性久久久久