|NO.Z.00003|——————————|ManageMent|——|Linux&系統管理.V03|
阿新 • • 發佈:2022-03-23
一、Grub 的配置檔案:在 grub 中分割槽的表示方法
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart ——W.S.Landor
分割槽 | Linux中裝置檔名 | Grub中裝置檔名 | |
第一塊SCSI硬碟 | 第一個主分割槽 | /dev/sda1 | hd(0,0) |
第二個主分割槽 | /dev/sda2 | hd(0,1) | |
擴充套件分割槽 | /dev/sda3 | hd(0,2) | |
第一個邏輯分割槽 | /dev/sda5 | hd(0,4) | |
第二塊SCSI硬碟 | 第一個主分割槽 | /dev/sdb1 | hd(1,0) |
第二個主分割槽 | .dev.sdb2 | hd(1,2) | |
擴充套件分割槽 | /dev/sdb3 | hd(1,2) | |
第一個邏輯 | /dev/sdb5 | hd(1,4) |
二、grub 的配置檔案
### --- grub 的配置檔案 ### --- 根下的檔案;前面定義了主目錄,這些檔案就位於哪個主目錄之下 [root@server21 ~]# vi /boot/grub/grub.conf #boot=/dev/sda default=0 // 預設啟動第一個作業系統 timeout=5 // 5秒會讓你選擇進入那個系統,若是寫成-1會一直等待;需要回車才可以執行;遠端是不可以執行操作的。0時間太短。 hiddenmenu ~~~ 以上為 grub 整體設定 title CentOS (2.6.32-279.el6.i686) root (hd0,0) kernel /vmlinuz-2.6.32-279.el6.i686 root=UUID=b9a7a1a8-767f-4a87-8a2b-a535edb362c9 rd_NO_LUKS KEYBOARDTYPE=pc KEYTABLE=us rd_NO_MD crashkernel=auto LANG=zh_CN.UTF-8 rd_NO_LVM rd_NO_DM rhgb quiet ~~~ 以上 4 行為一行,只是內容過多的自動換行 initrd /initramfs-2.6.32-279.el6.i686.img default=0 ~~~ 預設啟動第一個系統。也就是如果在等待時間結束後,使用者沒有選擇進入哪一個系統, ~~~ 那麼系統會預設進入第一個系統。如果有多系統並存,那麼每個系統都會有自己的 title 欄位, ~~~ 如果想要預設進入第二個系統,這裡就可以設為 default=1。 timeout=5 ~~~ 等待時間,預設是 5 秒。也就是進入系統時,如果 5 秒內使用者沒有按下任意鍵, ~~~ 那麼系統會進入 default 欄位定義的系統。當然可以手工修改這個等待時間, ~~~ 如果 timeout=0 則不會等待直接進入系統,timeout=-1 則是一直等待使用者輸入, ~~~ 而不會自動進入系統。 splashimage=(hd0,0)/grub/splash.xpm.gz // 背景影象 ~~~ 這裡是指定 grub 啟動時的背景影象檔案的儲存位置的。 ~~~ 記得 CentOS 6.x 啟動時後臺的藍色影象吧,就是這個檔案的作用哦。不過這個檔案具體在哪裡啊? ~~~ 已經說過了 hd(0,0)代表第一個硬碟的第一個分割槽, ~~~ 而超哥的系統安裝時/boot 分割槽就是第一個分割槽, ~~~ 所以這個背景影象的實際位置就是/boot/grub/splash.xpm.gz。 hiddenmenu // 背景影象隱藏起來了。 ~~~ 隱藏選單。啟動時預設只能看到讀秒,而不能看到選單,如果想要看到選單需要按任意鍵。 ~~~ 如果註釋了這句話,那麼啟動時就能直接看到選單了。 ~~~ 以上就是 grub 的整體設定,下面我們介紹 CentOS 系統的啟動設定: title CentOS (2.6.32-279.el6.i686) // 這裡系統什麼,在啟動的時候,就會顯示什麼 ~~~ title 就是標題的意思,也就是說在 title 後面寫入的是什麼,那麼系統啟動時在 grub 的啟 ~~~ 動選單中看到的就是什麼。 root (hd0,0) // 主目錄的意思 ~~~ 是指啟動程式的儲存分割槽。這裡要注意啊,這個 root 並不是管理員哦。 ~~~ 在我的系統中,/boot分割槽是獨立劃分的, ~~~ 而且裝置檔名為/dev/sda1,所以在 grub 中,就被描述為 hd(0,0)。 kernel /vmlinuz-2.6.32-279.el6.i686 root=UUID=b9a7a1a8-767f-4a87-8a2b-a535edb362c9 rd_NO_LUKS KEYBOARDTYPE=pc KEYTABLE=us rd_NO_MD crashkernel=auto LANG=zh_CN.UTF-8 rd_NO_LVM rd_NO_DM rhgbquiet
### --- grub 的配置檔案 [root@server21 ~]# vi /boot/grub/grub.conf #boot=/dev/sda default=0 // 預設啟動第一個作業系統 timeout=5 // 5秒會讓你選擇進入那個系統,若是寫成-1會一直等待;需要回車才可以執行;遠端是不可以執行操作的。0時間太短。 hiddenmenu ~~~ 以上為 grub 整體設定 title CentOS (2.6.32-279.el6.i686) root (hd0,0) kernel /vmlinuz-2.6.32-279.el6.i686 root=UUID=b9a7a1a8-767f-4a87-8a2b-a535edb362c9 rd_NO_LUKS KEYBOARDTYPE=pc KEYTABLE=us rd_NO_MD crashkernel=auto LANG=zh_CN.UTF-8 rd_NO_LVM rd_NO_DM rhgb quiet ~~~ 以上 4 行為一行,只是內容過多的自動換行 initrd /initramfs-2.6.32-279.el6.i686.img default=0 ~~~ 預設啟動第一個系統。也就是如果在等待時間結束後,使用者沒有選擇進入哪一個系統, ~~~ 那麼系統會預設進入第一個系統。如果有多系統並存, ~~~ 那麼每個系統都會有自己的 title 欄位,如果想要預設進入第二個系統, ~~~ 這裡就可以設為 default=1。 timeout=5 ~~~ 等待時間,預設是 5 秒。也就是進入系統時,如果 5 秒內使用者沒有按下任意鍵, ~~~ 那麼系統會進入 default 欄位定義的系統。當然可以手工修改這個等待時間, ~~~ 如果 timeout=0 則不會等待直接進入系統,timeout=-1 則是一直等待使用者輸入, ~~~ 而不會自動進入系統。 splashimage=(hd0,0)/grub/splash.xpm.gz // 背景影象 ~~~ 這裡是指定 grub 啟動時的背景影象檔案的儲存位置的。 ~~~ 記得 CentOS 6.x 啟動時後臺的藍色影象吧,就是這個檔案的作用哦。 ~~~ 不過這個檔案具體在哪裡啊?已經說過了 hd(0,0)代表第一個硬碟的第一個分割槽, ~~~ 而超哥的系統安裝時/boot 分割槽就是第一個分割槽, ~~~ 所以這個背景影象的實際位置就是/boot/grub/splash.xpm.gz。 hiddenmenu // 背景影象隱藏起來了。 ~~~ 隱藏選單。啟動時預設只能看到讀秒,而不能看到選單,如果想要看到選單需要按任意鍵。 ~~~ 如果註釋了這句話,那麼啟動時就能直接看到選單了。 ~~~ 以上就是 grub 的整體設定,下面我們介紹 CentOS 系統的啟動設定: ~~~ title CentOS (2.6.32-279.el6.i686) // 這裡系統什麼,在啟動的時候,就會顯示什麼 ~~~ title 就是標題的意思,也就是說在 title 後面寫入的是什麼, ~~~ 那麼系統啟動時在 grub 的啟動選單中看到的就是什麼。 root (hd0,0) // 主目錄的意思 ~~~ 是指啟動程式的儲存分割槽。這裡要注意啊,這個 root 並不是管理員哦。 ~~~ 在我的系統中,/boot分割槽是獨立劃分的,而且裝置檔名為/dev/sda1,所以在 grub 中, ~~~ 就被描述為 hd(0,0)。 kernel /vmlinuz-2.6.32-279.el6.i686 root=UUID=b9a7a1a8-767f-4a87-8a2b-a535edb362c9 rd_NO_LUKS KEYBOARDTYPE=pc KEYTABLE=us rd_NO_MD crashkernel=auto LANG=zh_CN.UTF-8 rd_NO_LVM rd_NO_DM rhgbquiet #根下的檔案;前面定義了主目錄,這些檔案就位於哪個主目錄之下 ~~~ /vmlinuz-2.6.32-279.el6.i686:指定了核心檔案的位置,這裡的/是指/boot 分割槽。 ~~~ ro:啟動時以只讀方式掛載根檔案系統,這是為了不讓啟動過程影響磁碟內的檔案系統。 ~~~ root=UUID=b9a7a1a8-767f-4a87-8a2b-a535edb362c9:指定根檔案系統的所在位置。 ~~~ 這裡和以前的 Linux 版本不太一樣了,不再是通過分割槽的裝置檔名或卷標號 ~~~ 來指定,而是通過分割槽的 UUID 來進行指定。那麼如何查詢分割槽的 UUID 號呢? ~~~ 方法有很多種,最簡單的辦法就是查詢/etc/fstab 檔案,命令如下: [root@server21 ~]# cat /etc/fstab | grep "/ " UUID=abf5e308-010f-4335-bb61-1c1e773452fa / ext4 defaults 1 1 ~~~ 可以看到“/”分割槽的 UUID 和 kernel 行中的 UUID 是匹配的。注意一下,grep 後的“/ ”,在/後是有空格的。 ### --- rd_NO_LUKS:禁用 LUKS,LUKS 用於給磁碟加密。 // 啟動過程中的禁用,為了加速啟動過程。 ~~~ rd_NO_MD:禁用軟 RAID。 ~~~ rd_NO_DM:禁用硬 RAID。 ~~~ rd_NO_LVM:禁用 LVM。以上禁用都只是在啟動過程中禁用,是為了加速系統啟動的。 ~~~ KEYBOARDTYPE=pc KEYTABLE=us:鍵盤型別。 ~~~ crashkernel=auto:自動為 crashkernel 預留記憶體。 ~~~ LANG=zh_CN.UTF-8:語言環境 ~~~ rhgb:(redhat graphics boot)用圖片來代替啟動過程中的文字資訊。 ~~~ 啟動完成之後可以使用 dmesg 命令來檢視這些文字資訊。 ~~~ quiet:隱藏啟動資訊,只顯示重要資訊。 ~~~ initrd /initramfs-2.6.32-279.el6.i686.img: ~~~ 指定了 initramfs 記憶體檔案系統映象檔案的所在位置。
三、grub 加密
### --- grub 加密
[root@server21 ~]# grub-md5-crypt
Password: 123456
Retype password: 123456
~~~ 輸入兩次密碼
$1$tA48J1$tIXJQjAn3zSuQf4F5cJSs/
~~~ 生成加密密碼字串
~~~ 這樣就可以生成加密密碼字串,這個字串是採用 md5 加密的,
~~~ 就是你的密碼經 md5 編碼之後的。我們會利用這個加密密碼字串來加密 grub 配置檔案。
### --- grub 選單整體加密
~~~ 如果只是加密單個啟動選單,grub 的編輯模式是不能鎖定的,
~~~ 還是可以按“e”鍵進入編輯模式。
~~~ 而且進入編輯模式後,是可以刪除 password 欄位的,
~~~ 再按“b”(boot 啟動)鍵就可以不用密碼直接進入系統。這時就需要給 grub 選單整體加密了,整體加密後,
~~~ 如果想進入 grub 編輯介面必須輸入正確的密碼。
~~~ 加密方法其實只是把 password 欄位換個位置而已,具體方法如下:
[root@server21 ~]# vim /boot/grub/grub.conf
default=0
timeout=5
password --md5 $1$tA48J1$tIXJQjAn3zSuQf4F5cJSs/
~~~ password 選項放在整體設定處。
splashimage=(hd0,0)/grub/splash.xpm.gz
~~~ 如果只是加密單個啟動選單,grub 的編輯模式是不能鎖定的,
~~~ 還是可以按“e”鍵進入編輯模式。
~~~ 而且進入編輯模式後,是可以刪除 password 欄位的,
~~~ 再按“b”(boot 啟動)鍵就可以不用密碼直接進入系統。這時就需要給 grub 選單整體加密了,
~~~ 整體加密後,如果想進入 grub 編輯介面必須輸入正確的密碼。
~~~ 加密方法其實只是把 password 欄位換個位置而已,具體方法如下:
[root@server21 ~]# vim /boot/grub/grub.conf
default=0
timeout=5
password --md5 $1$tA48J1$tIXJQjAn3zSuQf4F5cJSs/
~~~ password 選項放在整體設定處。
splashimage=(hd0,0)/grub/splash.xpm.gz
### --- 重啟
[root@server21 ~]# reboot
### --- 預設是e鍵,現在變成p鍵
~~~ 但是這樣加密,啟動 CentOS 時,是不需要密碼就能正常啟動的。
~~~ 那我如果既需要 grub 的整體加密,又需要系統啟動時輸入正確的密碼。那應該怎麼做呢?
~~~ 很簡單,方法如下:
default=0
timeout=5
password --md5 $1$tA48J1$tIXJQjAn3zSuQf4F5cJSs/
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.32-279.el6.i686)
lock // 此操作不可以配置;在 title 欄位,加入 lock。代表鎖死,如果不輸入正確的 grub 密碼也不能啟動
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart ——W.S.Landor