grub廣泛用于多系統(tǒng)、U盤引導(dǎo)辞州,這里我們探討windows環(huán)境下grub的安裝與使用怔锌。
**如果還有人在用xp系統(tǒng),在啟動項添加grub4dos十分方便变过,不必如此文這般麻煩**
前言:------------------------------------------------------------可略過------------------------------------------------
首先提一下硬盤的分區(qū)格式與與其對應(yīng)的引導(dǎo)方式:
傳統(tǒng)MBR分區(qū)特點:
1.最大支持2TB硬盤
2.最大支持4個分區(qū)(linux下識別為sdx1~4)
3.使用擴展分區(qū)再分邏輯分區(qū)可以突破4個分區(qū)的限制埃元,即可以分配3個主分區(qū)和一個擴展分區(qū),擴展分區(qū)再分配多個邏輯分區(qū)(在linux下第一個邏輯分區(qū)為sdx5)
針對MBR分區(qū)的缺點媚狰,更新一代的GPT分區(qū)有如下特點:
1.支持大容量硬盤以及更多的分區(qū)
2.相應(yīng)的對較早時間的操作系統(tǒng)支持并不是很友好
我們作為使用者簡單的看引導(dǎo)問題亚情,最直觀的表現(xiàn)進(jìn)bios看主板是否支持UEFI啟動,啟動情況通常又分以下兩種情況:(深了不敢說哈雏,要臉(/▽\))
1.較舊型號的主板不支持UEFI啟動以及主板開啟legacy啟動選項(多數(shù)主板的名稱)的楞件,我們可以采用bios+MBR硬盤進(jìn)行系統(tǒng)引導(dǎo)
2.使用”UEFI ONLY“或者“混合”啟動的,我們可以使用UEFI+GPT硬盤進(jìn)行系統(tǒng)引導(dǎo)
如何鑒別我們的系統(tǒng)硬盤采用何種分區(qū)方式裳瘪,我們以系統(tǒng)自帶的工具為例:
1.在windows系統(tǒng)下打開”磁盤管理“土浸,打開方式:(win7及以后,點擊左下角windows圖標(biāo))/windows鍵+r 輸入“diskmgmt.msc"彭羹;“我的電腦/計算機/此電腦”右鍵“管理”->左側(cè)找到“存儲”下的“磁盤管理”鼠標(biāo)左鍵單擊黄伊。
2.系統(tǒng)所在硬盤(如:磁盤 0)右鍵->屬性->卷->硬盤分區(qū)形式 ,GUID分區(qū)表(GPT) 或 主啟動記錄(MBR)
另:在”磁盤管理“中可見系統(tǒng)所在硬盤如果存在“EFI系統(tǒng)分區(qū)”則直接可以確定使用GPT分區(qū)
當(dāng)然也可使用第三方工具如aida64/everest派殷、diskgenius等
--------------------------------------------------------------------------------------------------------------------------
確定了系統(tǒng)啟動方式还最,我們可選擇用何種方式安裝grub;對于存在多硬盤的計算機而言我們也可以將grub安裝到其他硬盤然后通過切換啟動磁盤順序達(dá)到grub引導(dǎo)的目的毡惜。
以下內(nèi)容我們以主硬盤安裝分兩種情況說明:
一拓轻、使用windows的引導(dǎo)項添加grub4dos啟動
準(zhǔn)備工具:grub4dos
特點:不破壞windows默認(rèn)引導(dǎo)程序,方便后期刪改经伙;缺點是需要等待windows引導(dǎo)過程耗時長
步驟(以安裝到c盤為例):
1.使用管理員賬號啟動命令行提示符(開始 -> 輸入cmd->右鍵“以管理員身份運行”扶叉,其他方法也多次用到)
2.運行如下命令:
bcdedit /create /d "Grub For DOS" /application bootsector
后會出現(xiàn)標(biāo)識符如 {90e14995-d284-11de-a325-a4ab4deca1b7}
bcdedit /set {標(biāo)識符} device partition=C:
bcdedit /set {標(biāo)識符} path \grldr.mbr
bcdedit /displayorder {標(biāo)識符} /addlast
3.復(fù)制grub4dos中g(shù)rldr及grldr.mbr至C盤根目錄
4.使用記事本創(chuàng)建menu.lst文件(注意保存類型選擇所有文件而不是默認(rèn)的文本文件,否則擴展名自動添加txt)
示例(內(nèi)容不包括前后`):
```
timeout 5
default 0
title MyRetroarch-0.1
root=(hd0,1)
kernel /myretro/boot/vmlinuz
initrd /myretro/boot/initrfs.img
```
<注>:上面所述(hd0,1)表示計算機的第一塊磁盤的第二個分區(qū)E聊ぁ枣氧!
二、安裝grub2
工具:從grub官網(wǎng)http://ftp.gnu.org/gnu/grub/下載最新版grub-2.xx-for-windows.zip
特點:引導(dǎo)迅速垮刹,配置靈活达吞,比較上面一種情況不依賴于windows系統(tǒng)
作為一個實用主義者,這里只討論最基本的可用性的問題荒典,美化等方面不會涉及酪劫。
針對兩種分區(qū)類型分別說明
I吞鸭、mbr分區(qū)
**以下安裝過程會覆蓋掉原有的引導(dǎo)信息,故而安裝完成重啟系統(tǒng)后會直接使用新安裝的grub2進(jìn)行系統(tǒng)引導(dǎo)契耿,故而其配置需要謹(jǐn)慎,防止不能正常進(jìn)入系統(tǒng)螃征。**
win7之后的系統(tǒng)在全新安裝后默認(rèn)會分配一個叫做“系統(tǒng)保留”的分區(qū)作為引導(dǎo)分區(qū)搪桂,我們將grub2也安裝至此分區(qū)。
***特別提醒有一些計算機從低版本系統(tǒng)升級過來沒有該分區(qū)盯滚,可忽略掉下面分配盤符的步驟踢械。
準(zhǔn)備工作:為“系統(tǒng)保留”分區(qū)分配盤符(“磁盤管理”->“系統(tǒng)保留”分區(qū)上右鍵->“更改驅(qū)動器號和路徑”->添加),之后我d盤為例(注意其中文件為隱藏的系統(tǒng)文件魄藕,如需查看其中文件內(nèi)容需要“顯示隱藏文件“和去掉勾選“隱藏受保護(hù)的操作系統(tǒng)文件”)
步驟:
1.解壓縮grub-2.xx-for-windows.zip到c盤根目錄
2.以管理員權(quán)限打開命令提示符
3.輸入如下命令列出本地磁盤信息
wmic diskdrive list brief
可見我們要安裝的目標(biāo)通常為本地第一塊磁盤即為\\.\PHYSICALDRIVE0這條内列;以此方法安裝u盤啟動引導(dǎo)則需要注意在后續(xù)安裝過程中會用到,如我的移動磁盤為\\.\PHYSICALDRIVE2背率。
4.輸入如下三條命令
cd \
cd grub2-2.xx-for-windows //注意此處2.xx替換成grub版本號话瞧,可以用tab鍵直接補全
grub-install.exe --boot-directory=d: \\.\PHYSICALDRIVE0
說明一下:這里隱含了一條默認(rèn)參數(shù)--target=i386-pc;“--boot-directory=d:”這里的d為剛才我分配的“系統(tǒng)保留”分區(qū)的盤符寝姿,注意按照實際情況修改交排;另外可以選擇性添加--modules=""參數(shù)用來指定需要安裝的模塊,如--modules="ntfs ext2 part_msdos cpio"等等饵筑,非專業(yè)用戶推薦使用默認(rèn)的全部安裝埃篓。
5.打開“系統(tǒng)保留”分區(qū)下的grub文件夾,在其中創(chuàng)建一個名為grub.cfg的文本文件配置系統(tǒng)啟動文件(使用notepad注意擴展名問題)
示例(已驗證下面的win7條目與win10完全通用根资,注意不含`):
```
set timeout=5
set default=0
insmod part_msdos
insmod ntfs
insmod all_video
menuentry "Windows 7" {
search --file --set=root --no-floppy /Boot/zh-CN/bootmgr.exe.mui
chainloader +1
}
menuentry "MyRetroarch-0.1" {
search --file --set=root --no-floppy /myretro/boot/vmlinuz
linux /myretro/boot/vmlinuz
initrd /myretro/boot/initrfs.img
}
```
6.重啟測試是否正常引導(dǎo)架专,如因grub.cfg輸入有誤造成的不能引導(dǎo)可嘗試手動輸入命令引導(dǎo)系統(tǒng)。
set root=(hd0,msdos1)???????? //設(shè)置第一塊硬盤的mbr第一個分區(qū)(“系統(tǒng)保留”分區(qū)玄帕,grub2的第一個分區(qū)編號為1)為當(dāng)前分區(qū)部脚,與上面的search語句同樣意思
chainloader +1
boot
收尾工作:刪除“系統(tǒng)保留”分區(qū)的盤符(“磁盤管理”->“系統(tǒng)保留”分區(qū)上右鍵->“更改驅(qū)動器號和路徑”->點擊之前選擇分配的盤符,按刪除->是->是)裤纹;刪除解壓縮的grub-2.xx-for-windows文件夾睛低。
II. gpt分區(qū)
通常采用gpt分區(qū)安裝系統(tǒng)默認(rèn)會分一個efi分區(qū)用于安裝啟動文件,本質(zhì)上是一個fat32格式分區(qū)服傍。我們通過“磁盤管理”不能對其分配盤符钱雷,我們可以使用系統(tǒng)自帶的diskpart工具對其操作,或者可以借助第三方工具吹零。(第三方工具diskgenius操作:找到esp分區(qū)罩抗,右鍵->指派新的驅(qū)動器號(盤符);選擇相應(yīng)的盤符灿椅,確定)
使用diskpart為EFI分區(qū)分配盤符:
以管理員身份運行命令提示符套蒂,命令如下
a. 分配盤符
diskpart
list disk //查看當(dāng)前磁盤信息
select disk 0 //使用第一塊磁盤
list part //查看當(dāng)前磁盤的分區(qū)信息
EFI分區(qū)通常位于第二分區(qū)钞支,其類型為“系統(tǒng)”
select part 2
assign letter=f //此處我為其分配f盤
exit //退出
b. 取消分配盤符
diskpart
select disk 0
select part 2
remove letter=f
exit
下面以我的EFI分區(qū)為F盤為例,首先確保已經(jīng)為EFI分區(qū)分配盤符操刀,然后進(jìn)行的grub的安裝步驟:
1.解壓縮grub-2.xx-for-windows.zip到c盤根目錄
2.以管理員權(quán)限打開命令提示符
3.輸入如下命令列出本地磁盤信息
wmic diskdrive list brief
查看輸出確定安裝磁盤
4.輸入如下三條命令
cd \
cd grub2-2.xx-for-windows //注意此處2.xx替換成grub版本號
grub-install.exe --target=x86_64-efi --efi-directory=f: --boot-directory=f:/EFI \\.\PHYSICALDRIVE0 ???? //注意此處的f替換成相應(yīng)的efi分區(qū)盤符
執(zhí)行完這三條命令后會在f盤的EFI文件夾下生成grub文件夾
5.同上述mbr安裝過程一樣烁挟,在grub文件夾根目錄下創(chuàng)建grub.cfg文件。
一般用戶會存在打開分區(qū)有權(quán)限要求的問題(好像只有administrator賬戶不會有此提示)骨坑,百度一圈大部分都不是真正解決問題的方法撼嗓,我的理解是不用去找安全選項卡,因為efi分區(qū)本質(zhì)上是fat32格式欢唾,而fat32分區(qū)不支持安全選項且警,這里我分享的方法是使用命令行:(使用diskgenius操作更簡單,隨便找個地方創(chuàng)建文件礁遣,塞到相應(yīng)目錄)
1). 首先用管理員權(quán)限打開命令提示符斑芜,確保已經(jīng)給EFI分區(qū)分配盤符(以下以F盤為例)
2). 輸入命令:
f:
cd EFI\grub
notepad grub.cfg //這里如果grub.cfg文件存在則直接打開,如不存在會有提示是否創(chuàng)建
輸入內(nèi)容后默認(rèn)路徑正常保存退出即可
grub.cfg示例(已驗證下面的win7條目與win10完全通用祟霍,注意不含`):
```
set timeout=5
set default=0
insmod part_gpt
insmod ntfs
insmod all_video
menuentry 'Windows 10' {
search --file --no-floppy --set=root /EFI/Microsoft/Boot/bootmgfw.efi
chainloader (${root})/EFI/Microsoft/Boot/bootmgfw.efi
}
menuentry "MyRetroarch-0.1" {
search --file --set=root --no-floppy /myretro/boot/vmlinuz
linux /myretro/boot/vmlinuz
initrd /myretro/boot/initrfs.img
}
```
6.重啟杏头,進(jìn)入bios,更改啟動項順序?qū)rub置頂沸呐,啟動驗證是否正常運行
收尾工作就是在正常引導(dǎo)windows后刪除ESP分區(qū)的盤符大州,使用第三方工具也是如此。
BTW: 如果使用grub2做efi啟動U盤垂谢,grub-install的參數(shù)需要加上--removable厦画,此參數(shù)僅支持efi格式的安裝!!
--------------------------------------------------------------------------------------------------------------------------
以上就是我對windows環(huán)境下安裝與使用grub的心得體會,全部實際驗證過魂拦,安裝過程中碰到的一些小問題也分享了我的解決辦法,歡迎一起探討排嫌!