天天看點

Linux 技巧之 Grub 超實用技巧1. 簡單介紹2. grub 技巧之基礎應用3. grub 技巧之折疊選項4. grub 技巧之改動password5. grub 技巧之找回系統

什麼是 GRUB?GRUB 全名Grand Unified Boot Loader,它是一個引導裝入器 -- 它負責裝入核心并引導 Linux 系統。GRUB 還能夠引導其他作業系統,如 FreeBSD、NetBSD、OpenBSD、GNU HURD 、DOS以及 Windows。雖然引導作業系統看上去是件平庸且瑣碎的任務,但它實際上非常重要。

假設引導裝入器不能非常好地完畢工作或者不具有彈性。

那麼就可能鎖住系統。而無法引導計算機。另外,好的引導裝入器能夠給您靈活性。讓您能夠在計算機上安裝多個

作業系統,而不必處理不必要的麻煩。

現在。較新電腦上裝的都是grub2。而grub2 使用的配置檔案是  /boot/grub/grub.cfg。打開後我們能夠找到這樣一句:

set default="0"   這一選項是用來選擇預設系統的。0 即第一個,假設你有5個選項,他們分别相應 /boot/grub/grub.cfg 檔案裡的:

menuentry 'Debian GNU/Linux, with Linux 3.2.51-trace' --class debian --class gnu-linux --class gnu --class os {                     --- 0

...

}

menuentry 'Debian GNU/Linux, with Linux 3.2.51-trace (recovery mode)' --class debian --class gnu-linux --class gnu --class os {     --- 1

menuentry 'Debian GNU/Linux, with Linux 3.2.0-4-amd64' --class debian --class gnu-linux --class gnu --class os {                    --- 2

menuentry 'Debian GNU/Linux, with Linux 3.2.0-4-amd64 (recovery mode)' --class debian --class gnu-linux --class gnu --class os {    --- 3

... 

menuentry "Windows 7 (loader) (on /dev/sda1)" --class windows --class os {  --- 4

是以,你僅僅須要依據自己選擇第幾個核心就能夠! 比方我想要我的win 7 作為預設系統,我能夠将menuentry "Windows 7  ... 這一段 移到menuentry 'Debian GNU/Linux, with Linux 3.2.5 ... 之前,也能夠直接将set default="0" 中的0 改為4!

set timeout=5  這一選項用來設定grub 選項等待時間,假設是5 就是5秒内不選擇,就載入光标所在選項!

一台電腦裝的系統多了或者變異的核心多了。可能你的GRUB 選項會變成這樣:

Linux 技巧之 Grub 超實用技巧1. 簡單介紹2. grub 技巧之基礎應用3. grub 技巧之折疊選項4. grub 技巧之改動password5. grub 技巧之找回系統

選擇一個你想進入的核心都得上下翻頁翻半天。那麼怎麼處理這個問題?有效的管理這些個選項呢?關于這個,Ubuntu上的grub 或者能夠給我們一個非常好的提示,對,假設你使用過 Ubuntu ,在你編譯核心以後,一個系統上的核心會被折疊。比方說我的還有一台筆記本上的grub 會是這樣:

*   Ubuntu, with Linux 3.2.0-61-generic-pae

*   Previous Linux versions

*   Windows 8 (loader)

光标移動到“Previous Linux versions” 選項上,進入後,grub才會展示出其它一些核心選項:

*   Ubuntu, with Linux 3.12.13-rt4

*   Ubuntu, with Linux 3.12.13-rt4 (recovery mode)

*   Ubuntu, with Linux 3.12.13-ftrace

*   Ubuntu, with Linux 3.12.13-ftrace (recovery mode)

*   Ubuntu, with Linux 3.4.24-test

*   Ubuntu, with Linux 3.4.24-test (recovery mode)

*   Ubuntu, with Linux 3.2.0-51-generic-pae

*   Ubuntu, with Linux 3.2.0-51-generic-pae (recovery mode)

那麼我們怎麼自己完畢這個動作,打開ubuntu 的/boot/grub/grub.cfg 後我明确了,原來這僅僅是grub的一個二級菜單功能 “ submenu "Previous Linux versions" { ... } ”,是以我的筆記本能夠這麼玩:

$ sudo vim /boot/grub/grub.cfg

menuentry 'Debian GNU/Linux, with Linux 3.12.9-gcov-rt13' --class debian --class gnu-linux --class gnu --class os 

submenu "Previous Debian versions" {

menuentry 'Debian GNU/Linux, with Linux 3.12.9-gcov-rt13 (recovery mode)' --class debian --class gnu-linux --class gnu --class os 

menuentry 'Debian GNU/Linux, with Linux 3.12.9-testing-rt13' --class debian --class gnu-linux --class gnu --class os 

menuentry 'Debian GNU/Linux, with Linux 3.12.9-testing-rt13 (recovery mode)' --class debian --class gnu-linux --class gnu --class os 

menuentry 'Debian GNU/Linux, with Linux 3.10.17-trace-rt12' --class debian --class gnu-linux --class gnu --class os 

menuentry 'Debian GNU/Linux, with Linux 3.10.17-trace-rt12 (recovery mode)' --class debian --class gnu-linux --class gnu --class os 

menuentry 'Debian GNU/Linux, with Linux 3.9.11-trace' --class debian --class gnu-linux --class gnu --class os

menuentry "Windows 7 (loader) (on /dev/sda1)" --class windows --class os 

menuentry "elementary OS, with Linux 3.2.0-51-generic (on /dev/sda10)" --class gnu-linux --class gnu --class os 

submenu "Previous elementary OS versions" {

menuentry "elementary OS, with Linux 3.2.0-51-generic (recovery mode) (on /dev/sda10)" --class gnu-linux --class gnu --class os 

menuentry "Ubuntu (on /dev/sda8)" --class gnu-linux --class gnu --class os 

submenu "Previous Ubuntu versions" {

menuentry "Ubuntu。Linux 3.11.0-18-generic (on /dev/sda8)" --class gnu-linux --class gnu --class os 

menuentry "Ubuntu,Linux 3.11.0-18-generic (恢複模式) (on /dev/sda8)" --class gnu-linux --class gnu --class os 

menuentry "Ubuntu,Linux 3.11.0-13-generic (on /dev/sda8)" --class gnu-linux --class gnu --class os 

menuentry "Ubuntu。Linux 3.11.0-13-generic (恢複模式) (on /dev/sda8)" --class gnu-linux --class gnu --class os 

于是忽,我的機器如今啟動是這種:

Linux 技巧之 Grub 超實用技巧1. 簡單介紹2. grub 技巧之基礎應用3. grub 技巧之折疊選項4. grub 技巧之改動password5. grub 技巧之找回系統

是不是清新很多?

你認為你使用 Linux 系統安全麼? 你有了password就安全了麼?來試試GRUB 的強大吧!

。!

(1). 系統啟動。進入grub 選擇界面!如上面的圖檔所看到的

(2). 在一個選項之上按 e 鍵進入grub 編輯界面!(沒事,大膽嘗試,不會永久儲存的。就算儲存了不對的東西,不是還有recovery mode 嘛!。!)

(3). 比方我目前的編輯界面顯示的内容是這種:

recordfail

    gfxmode $linux_gfx_mode

    insmod gzio

    insmod part_msdos

    insmod ext2

    set root='(hd0,msdos8)'

    search --no-floppy --fs-uuid --set=root c81eebc3-ed49-4661-be49-eadeb0de4696

    linux   /boot/vmlinuz-3.2.0-61-generic-pae root=UUID=c81eebc3-ed49-4661-be49-eadeb0de4696 ro   quiet splash $vt_handoff

    initrd  /boot/initrd.img-3.2.0-61-generic-pae

我們須要改動的是上面我使用顔色标記的行,我們将 ro 改為rw 。後面的内容全删除!加入上 init=/bin/bash

也就是說,改完之後是這種:

 linux   /boot/vmlinuz-3.2.0-61-generic-pae root=UUID=c81eebc3-ed49-4661-be49-eadeb0de4696 rw init=/bin/bash

這時候,我們按Ctrx+X 或者F10 儲存并進入。我們會發現經過一段時間載入後,我們沒有不論什麼password确獲得了root 權限!!

那麼這時候系統還安全麼???我們能夠載入不論什麼分區,然後擷取不論什麼你想保密的内容!啦啦啦~~~

可是。我在這介紹這方法不是讓你去整人的!

!它能夠用在非常實用的方面: 丢失password能夠用此方法改動password。系統崩潰能夠使用此方法将關鍵檔案拷貝走!

等等~~

有時候。我們會安裝多個系統。比方上面照片中。我的一個筆記本上安裝了4個系統。當中會将一個系統下的grub 作為電腦的載入程式!

比方說我的電腦上Debian 的GRUB 被我用做電腦的預設載入程式了!

可是某天我在 Ubuntu 上編譯了一個核心,并使用 update-grub2 更新了grub, 可是系統啟動,你會發現你的 update 并沒有生效,你還須要到 Debian 下再使用 update-grub2 後。這個在 Ubuntu 下編譯的核心才會在系統啟動菜單中出現!

還有種情況。比方我的電腦上僅僅有Debian 和 win8 兩個系統,可是某一天我的 win 8 崩潰了于是我重裝了系統,啟動後發現。我僅僅能進入windows 了,再也引導不了Debian 了。由于Windows 的引導程式還不能引導 Linux!

本文轉自mfrbuaa部落格園部落格,原文連結:http://www.cnblogs.com/mfrbuaa/p/5117887.html,如需轉載請自行聯系原作者

繼續閱讀