grublinux引導
❶ 璇烽棶鎬庝箞鐢╣rub2鐩存帴寮曞紈in10錛屾湰浜篖inux鏂版墜
1銆侀栧厛鍦╒MWare鎴朧irtualBox涓鎵ц寀pdate-grub鍛戒護錛屽傛灉鏄鍙岀郴緇鎴栬呬笁緋葷粺錛岄偅涔堝皢鐪嬪埌GRUB浠ュ強鍏朵粬鎿嶄綔緋葷粺鍏ュ彛銆
❷ linux系統管理之grub引導
什麼是GRUB
GNU GRUB 是一個多重操作 系統 啟動管理器。GNU GRUB 是由GRUB(GRand Unified Bootloader) 派生而來。GRUB 最初由Erich Stefan Boleyn 設計和應用;
系統啟動引導管理器,是在計算機啟動後運行的第一個程序,他是用來負責載入、傳輸控制到操作系統的內核,一旦把內核掛載,系統引導管理器的任務就算完成退出,系統引導的其它部份,比如系統的初始化及啟動過程則完全由內核來控制完成;
Linux 中GRUB的配置文件
grub的配置文件位於/boot/grub/grub.conf其內容如下。
default=0 //默認啟動的內核或者說默認啟動的操作系統,0表示的是第一個內核或者操作系統,依次往後排(title所指定的那一項,第一個title是0,第二個是1,依次)
timeout=5 //默認的超時時間,這里定義的是5秒,如果5秒沒有選擇,默認啟動第一個內核或者說是第一個操作系統
splashimage=(hd0,0)/grub/splash.xpm.gz //指定grub的背景圖片,因為grub是系統開機後,運行系統所必須運行的第一個程序,所以,系統所自帶的文件系統還沒有被掛載,好在grub可以直接訪問磁碟文件,grub所識別的硬碟跟linux系統的不太一樣,grub認為,所有的磁碟都是hd的,而系統則不是。所以這里是(hd0,0),第一個0表示的是第一塊硬碟,第二個0表示的是第一個分區。如果要引用磁碟設備,要用括弧括起來,所以這里有一個括弧。
hiddenmenu //隱藏grub菜單,如果有這一項,我們將看不到grub的菜單,只能看到grub的背景圖片,然後上面出現了一個 please any key to enter the menu 下面是 Booting <default=0指定的,默認是第一個title的內容> in <timeout=N 超時時間設置>... 這樣子。具體的看下面的圖
![]( http://upload-images.jianshu.io/upload_images/4958474-d753926ca3df5492.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240 )
然後可以通過按任意鍵,進入grub的菜單。如果有多個內核的話,我們可以選擇啟動哪一個內核。下圖是grub的菜單
![]( http://upload-images.jianshu.io/upload_images/4958474-3b21dfedd7290e30.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240 )
下面的英文內容,相信大家也看得懂。我就不多說了。通過編輯這里的grub菜單,我們可以直接進入單用戶模式,然後修改密碼。忘記密碼的時候,可以試下這個方法。
title Red Hat Enterprise Linux Server (2.6.18-164.el5) //這就是一個標題,就是Grub菜單上所顯示的內容,title關鍵字後面的內核,可以隨便寫,為了方便識別,建議還是寫一些可以從字面意義看出是什麼操作系統或者內核的文字描述。
root (hd0,0) //把hd0,0設置為根目錄,方便訪問.設置文件訪問的起始點,這里設置的根,是grub的根。
kernel /vmlinuz-2.6.18-164.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet //指定內核文件,在內核後面跟的root,指的是操作系統的根目錄在哪兒. rhgb是redhat的一個小工具,顯示各種輸出的信息,包括硬體的初始化,quit表示是靜默模式,不輸出信息.啟動系統的時候會卡一下,然後出現redhat就是因為沒有顯示rhgb小程序的輸出信息.
initrd /initrd-2.6.18-164.el5.img //可以認為這是一個驅動程序,系統剛開機的時候,Grub第一個啟動,要掛載文件系統,就要從文件系統裡面讀取驅動,如果驅動在內核裡面還好,如果不在內核裡面了,那不就……所以,這個可以認為是一個驅動。其實,他是一個微小的linux系統,這個系統裡面,只包含了驅動程序,沒有其它文件。可以先把它重命令為.gz的,然後解壓,解壓後再用cpio解壓,就可以看到其內容了。目錄結構跟你的linux系統是一樣的,只不過沒有文件,只有驅動程序而已。
剛才說過,可以直接通過這里改密碼,這樣是很不安全的。也就是說,如果別人能接觸到我們的物理伺服器,他就可以直接更改我們系統的密碼,所以,我們可以給grub 加密 碼,加密碼的方法就是直接在grub.conf中指定,可以用關鍵字password 後面跟密碼來實現,但是這樣的密碼是明文的,也不安全,所以我們可以用password --md5 通過grub的md5加密工具來加密,然後寫到password --md5的後面。grub的md5加密工具是grub-md5-crypt ,直接使用這個命令,輸出密碼,然後會生成一段MD5加密後的值,寫到關鍵字後面就可以實現md5加密grub了。
寫的位置的不同,加密的效果也就不一樣,我們可以寫到一個title裡面,只對指定的內核或者說操作系統來加密,當啟動該內核或者系統的時候,會要求用戶輸入grub的密碼。當寫在所有的title外面的時候,編譯grub菜單的時候,會要求輸入密碼,這時候密碼先按p鍵輸入密碼,然後再按e鍵,才能編輯。
手動安裝GRUB
安裝grub有兩種方法可以使用。下面進入詳細的介紹,如果某些地方說的不太准確,希望大家能夠提出,TKS
第一
可以使用grub-install命令來進行安裝,具體方法是
grub-install --root-directory=/要安裝到哪個目錄 /要安裝的設備
例:我這里用 虛擬機 演示一下,新加了一塊磁碟,然後分區格式化(該操作不演示),然後掛載,然後用命令安裝,如下圖
x
注意:這里掛載點一定是boot目錄,可以不是/mnt,但最後掛載的目錄名字,一字叫boot,不然會出問題的。還有安裝的時候--root-directory=一定不要指定到boot目錄,要指定到boot所在的目錄,因為grub安裝的時候,會去找boot目錄,如果找不到,會報錯的。當我們把盤掛載到boot之後,可以認為,該盤的名字就叫boot,所以,它會在該盤內寫入bootloader,以引導系統,如果我們安裝的時候指定到了boot,那麼就是把bootloader的內容寫到了文件裡面,而不是硬碟的MBR。切記切記。我做了好多次都沒做出來,就是犯了這個錯。
安裝完成後,我們新建一個虛擬機,創建磁碟的時候,使用已有磁碟,找到我們安裝過grub的磁碟,然後使用之即可。開機之後,會驚喜的發現,出現了grub的提示符。
![]( http://upload-images.jianshu.io/upload_images/4958474-a6b446eee903d400.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240 )
第二種方法(有點兒麻煩):
首先把 /usr/share/grub/i386-redhat/里的所有文件,拷貝到grub目錄
注意:這里同上,一定要掛載到boot目錄下,無論boot目錄在哪
![]( http://upload-images.jianshu.io/upload_images/4958474-5bc61b8664d71e60.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240 )
然後開始grub的安裝,直接使用命令grub
![]( http://upload-images.jianshu.io/upload_images/4958474-83d9432c7ef95f52.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240 )
root (hd2,0) 表示grub要安裝到第三塊硬碟第1個分區上
setup (hd2) 指定要安裝的設備,設備為第二塊硬碟,安裝完成後quit命令退出就可以了,至於圖片,我就不上了,絕對是可以的。
❸ Linux與Windows 10用grub引導教程
去年暑假的時候,寫了一篇如何裝 Linux 和 Windows 10 雙系統的文章發在了上,我寫這篇文章的原因是當初裝雙系統確實是折騰了許久,網上也找不到一篇詳盡的教程。由於去年對於寫教程還不是熟練,而這一年多的使用過程也遇到了一些問題,所以就准備「Refactoring」這篇文章。
在教程正式開始之前,先花一點時間說明 EFI 分區的組成和作用。
首先,在你裝了 Windows 之後,Windows 在裝機過程中會將硬碟劃分出一個約 100m 大小的分區,稱為 EFI 分區這個分區就是起引導作用的。在資源管理器中是看不到的這個分區的,可以在磁碟管理中看到,管理則需要藉助 DG 工具 。便於說明,在裝好了 Linux 之後,我將 EFI 掛載至 boot 分區截圖:
可以看到,該分區包含 3 個文件夾(如果你沒有裝 Linux 的話,就只有兩個),分別是 Boot、Microsoft 和 Manjaro,其中 Boot 文件夾就是 UEFI 引導所必需的文件。
我們繼續打開 Microsoft/Boot 文件夾:
這些文件就是啟動 Windows 10 所必需的,包含了語言包、字體等,BCD 包含了 Windows 引導開始以後的信息。其中, bootmgfw.efi 是 Windows 默認引導文件 。
以上是採用 UEFI 啟動 Windows 10 的文件結構,也就是說,當你按下開機按鈕的時候,首先 UEFI 找到 EFI 分區的 Boot 文件夾,然後載入 bootx64.efi 文件,讀取文件信息,找到 EFI/Microsoft/Boot/bootmgfw.efi ,按照 bootmgfw.efi 的要求,載入所需的啟動信息,啟動 Windows 10。
在正式裝系統之前,我們還需要做一些准備工作:
這個功能的作用是在於關機的時候不完全斷電,類似將系統處於「休眠」狀態,這樣可以讓開機更加迅速。但這也就導致了只能使用 Windows 系統。
在默認情況下,UEFI 固件只會載入那些被簽名的引導程序。在缺少 Secure Boot 功能的傳統 PC 機上,惡意的後門程序可以載入自身,進而搖身一變偽裝成一個引導程序。這樣的話,BIOS 就會在啟動的時候載入後門程序,這樣它就可以躲過操作系統,把自己隱藏得很深。
但是不得不說,這對我們安裝 Linux 造成了很大的困擾,也是直接導致我們重啟到 Windows 10 後進不去 Linux 的原因。
首先我們要關閉這個功能:進入 BIOS 找到 Secure Boot,選擇 disabled,這樣就關閉了。當然,有些人進入 BIOS 會發現 Secure Boot 這個選項是灰色的(比如我的就是),這時你需要先給你的 BIOS 設一個密碼,然後就能關 Secure Boot 了。
所有的准備都已經完成,這時就可以准備刻錄 U 盤了,不推薦 UltraISO,經親測,軟碟通僅刻錄 Ubuntu 能成功,其它絕大多數發行版都會失敗。推薦「 Rufus 」和「 USBWriter 」,這兩個軟體都可以。
刻錄完成後,重啟按 f12 ,選擇從 USB 設備啟動,對於絕大多數發行版來說一路回車就行了,只需要注意一點: 在選擇掛載 boot 位置的時候,一定要掛載在 efi 分區 ,別的都不行。
重啟之後,不出意外的話,你會直接進入 Windows 10,不要擔心,這時 Linux 已經安裝成功了,我們只需要將引導文件替換一下。
先用 DG 打開 EFI 分區,你會看到多了一個文件夾,名稱取決於你安裝的是哪一個發行版。我安裝的是 Manjaro Linux,名稱就是 Manjaro,打開之後會發現裡面有一個名為 grubx64.efi 的文件,這就是啟動 Linux 的引導文件。和 Windows 10 的 bootmgfw.efi 類似,我們想要用 grubx64.efi 引導代替掉 bootmgfw.efi,這樣就可以用 GRUB 引導了。步驟:
至此,如果你安裝的是除 Arch 之外絕大多數發行版,那麼接下來就和你沒有啥關系了,你已經成功了,好好享受吧!
開機之後會發現進入 GRUB 的引導了,通常會包含至少三個選項(以 Manjaro 舉例):Manjaro、Manjaro 高級選項和 Windows Manager。這就代表你已經完美的解決了 Windows 和 Linux 雙系統引導的問題。
這一點是我安裝 Arch Llinux 的時候發現的,Arch Linux 安裝過程是手動安裝的,在編寫 GRUB 的時候會掃描不到 Windows Manager 所在的分區(當然可能不是所有人都會遇到),所以在 GRUB 界面可能會看不到 Windows Manager 選項,導致進不去 Windows 10,這里就需要手動編輯 GRUB 信息,我們打開 /boot/grub/grub.cfg 文件,發現裡面確實沒有 Windows 10 的啟動信息,在後面加上:
注意 :
這里的 $hints_string ,代表的是終端執行命令:
後的輸出;
而 $fs_uuid 代表的是:
的輸出。
然後保存。在終端執行命令: sudo grub-mkconfig -o /boot/grub/grub.cfg ,就 OK 了。
到此,Arch Linux 和 Windows 10 雙系統也配置完畢了。
在使用這一年多的時間,遇到了以下的幾個問題:
最後:祝使用愉快。
❹ linux瀹夎単rub鍛戒護grublinux寮曞
濡備綍浠巊rubrescue榪泈indows錛
濡備綍鍦ㄢ済rubrescue鈥濅腑榪涘叆windows鐨勫紩瀵箋
浣犲彲浠ュ皾璇:
1.
璁劇疆grub浣嶇疆grubrescue>setprefix=(hdX,Y)/boot/grub(hdX,Y)鍗/boot鎵鍦ㄥ垎鍖恆傚傛灉鏄鐙絝媌oot鍒嗗尯,鍒檚etprefix=(hdX,Y)/grub,
2.
鍔犺澆妯″潡grubrescue>insmodnormal
3.
榪涘叆寮曞艱彍鍗曠晫闈grubrescue>normal濡傛灉涓嶈兘姝e父寮曞艱繘鍏ョ郴緇,鍙浠ラ夋嫨寮曞奸」
grub鎬庝箞鍒犻櫎鏌愪釜緋葷粺寮曞礆紵
閫氬父鏉ヨ達紝鏈鍚庡畨瑁呯殑閭d釜緋葷粺鏄榛樿ゅ湪鍚鍔ㄨ彍鍗曠涓浣嶇殑錛屽傛灉浣犵殑grub鏄瀹夎呭湪MBR鐨勶紝涓旀病鏈夋洿鏀硅繃grub鑿滃崟鍚鍔ㄩ『搴忥紝閭d箞榪涘叆榛樿ょ殑fedora錛岀劧鍚庡皢鍙︿竴涓猣edora鎵澶勭殑鍒嗗尯鍒犻櫎錛堥噸鏂版牸寮忓寲錛夊氨鍙浠ヤ簡錛屽惁鍒欏氨瑕佺湅浣犵殑grub鏄鍦ㄥ摢涓猣edora鍒嗗尯灝變繚鐣欙紝鍒犻櫎鍙﹀栦竴涓銆
win10鎬庝箞寮曞紆buntu錛
鍐呭瑰氨鏄璁劇疆涓浜涘父瑙勯」浜嗭紝鏈鍚庡氨寮濮嬪畨瑁咃紝緇撴潫鍚庝細璁╀綘鎵嬪姩閫夋嫨restart銆
榪涘叆Windows10涔嬪悗錛屽畨瑁匛asyBCD錛岀劧鍚庢柊澧炰竴涓鍚鍔ㄩ」錛岄夋嫨Linux/Grub2錛屽惎鍔ㄤ綅緗閫夋嫨鍒氭墠/boot鎵鍦ㄧ殑浣嶇疆錛堝傛灉鏄涓閿呯錛屽垯鏄/鎵鍦ㄧ殑浣嶇疆錛夛紝淇濆瓨閫鍑猴紝閲嶅惎灝卞彲浠ョ湅鍒癠buntu鐨勫叆鍙d簡銆
Linux紿佺劧鍚鍔ㄤ笉浜嗕簡錛屽紑鏈哄彧鑳借繘鍒癵rub>閲岋紝鎬庝箞鍔炲晩錛熸ワ紵
鎶婂嚭閿欎俊鎮璐翠笂鏉ャ傝兘榪汫RUB涓嶈兘榪涚郴緇燂紝涓鑸璇存槑寮曞煎垎鍖烘湁鍙樺姩錛汫RUB閲屼篃鏈変簺鍛戒護鍙浠ョ敤錛岃瘯璇曠敤HELP榪欎釜鍛戒護鐪嬬湅錛
寰杞榪欐¢潪甯告棤鑰葷殑鐩楃敤浜嗙被UINUX緋葷粺鍚鍔ㄥ垎鍖猴紝浠ュ墠鐨勬俯鍒版繪槸鏍規湰娌℃湁BOOT鍒嗗尯鐨勶紝鐪嬫潵涓嬩竴涓鐩鏍囨槸瑕佹妸寰杞寮曚互涓哄偛鐨勬敞鍐岃〃鍙栨秷浜
kali鍗曠郴緇熸庝箞寮曞礆紵
鐩存帴瑁咃紝浣嗘槸鏈鍚庤呭湪Linux鍜學indows鐨勫垎鍖哄悗闈㈣屼笖涓嶅獎鍝嶅墠闈涓や釜緋葷粺鐨勫垎鍖恆
瑁呯殑鏃跺欎笉瑕佽呭紩瀵肩▼搴忥紙涓鑸灝辨槸grub2錛夛紝鐒跺悗瑁呭畬浜嗙洿鎺ヨ繘鐜版湁鐨刄buntu鐨刧rub閰嶇疆鏂囦歡閲屾坊鍔犲垰瑁呯殑Linux鐨勫紩瀵艱彍鍗曞氨鍙浠ヤ簡銆
❺ 🎂急急急!Linux的操作系統引導器是什麼它有哪幾種操作界面
一、GRUB簡介
GRUB(GRand Unified Bootloader簡稱「GRUB」)是一個來自GNU項目的多操作系統啟動程序。GRUB是多啟動規范的實現,它允許用戶可以在計算機內同時擁有多個操作系統,並在計算機啟動時選擇希望運行的操作系統。GRUB可用於選擇操作系統分區上的不同內核,也可用於向這些內核傳遞啟動參數。
二、GRUB的組成
grub分為三個部分
第一部分被放在MBR中前446位元組里(MBR共512位元組,中間54位元組存放磁碟分區信息,最後2位元組判斷MBR是否損壞),主板啟動時首先會讀取MBR里的內容,所以grub是系統內核啟動之前就啟動的。
第二部分放在MBR之後的扇區中,存放的是文件系統的驅動程序,可以在系統內啟動分區沒掛載的情況下讀取磁碟內里的指定內容
第三部分就是存在磁碟分區中的內容,裡面是grub的配置信息,內核文件,這里就是gurb的根分區
三、GRUB的功能
1、提供菜單,並提供互動式介面(e: 進入編輯模式 在內核後添加single,後按b就可以進入單用戶模式、c:進入命令行介面模式)
2、選擇要啟動的內核或系統(允許傳遞引導參數給內核,選擇界面可隱藏)
3、為編輯功能提供保護機制(選擇運行指定的內核得先輸入密碼、使用e命令得先輸入密碼)
四、 grub的兩種形式
1、圖形模式
系統啟動之前開始出現倒數秒數的時候,按esc可以進入grub界面(一般是隱藏的,會啟動默認的系統)選擇我們想要啟動的不同系統。
2、命令行模式
系統啟動前倒數秒數的時候按esc進入圖形界面,之後按c鍵會進入命令行模式。
grub的命令行介面 :
help:獲得幫助列表
root (hd#,#) 設置哪兒塊磁碟為根
kernel /path/to/kernel_file :設置本次啟動時用到的內核文件 vmlinuz(z表示壓縮的意思);額外還可以添加許多內核支持使用的cmdline參數
initrd /path/to/initrd_file : 設定為選定的內核提供額外文件的ramdisk;要和內核版本一樣
boot:引導啟動選定的內核
五、GRUB的配置文件: /boot/grub/grub.conf
配置項:支持命令行補全(tab)
default=#: //設定默認啟動的菜單項
timeout=#: //指定菜單項等待選項選擇的時長
splashimage=(hd#,#)/path/to/xpm_pic_file : //指明菜單背景圖片所在路徑(gimp 640*680)
hiddenmenu : //隱藏菜單
password [--md5] string : //菜單編輯認證
title TITLE : //定義菜單項「標題」
root (hd#,#): //grub查找stage2及kernel文件所在設備分區;為grub的「根」
kernel /path/to/vmlinuz_file [parameters]: //啟動內核並設置額外參數
initrd /path/to/initramfs_file: //內核匹配的ramfs文件
password [--md5] string : //啟動選定的內核或操作系統時進行認證 【grub-md5-crypt 生成密碼】
六、安裝GRUB命令
使用grub-install命令
# grub-install [--root-directory=DIR] DEVICE
--root-directory=指定的路徑必須是內核及initrd文件所在的分區的掛載點的父目錄,且此掛載點必須叫boot。