EFI系統(tǒng)分區(qū),即 EFI system partition,簡寫為 ESP。ESP 是一個(gè) FAT16 或 FAT32 格式的物理分區(qū),但是其分區(qū)標(biāo)識(shí)是 EF (十六進(jìn)制) 而非常規(guī)的 0E 或 0C,因此,該分區(qū)在 Windows 操作系統(tǒng)下一般是不可見的。支持 EFI 模式的電腦需要從 ESP 啟動(dòng)系統(tǒng),EFI 固件可從 ESP 加載 EFI 啟動(dòng)程序或者應(yīng)用。
一般情況下,大家僅僅是為了應(yīng)和 EFI 規(guī)范而不得不劃分這樣一個(gè)分區(qū),而且也只把它當(dāng)作一個(gè) EFI 啟動(dòng)程序和 EFI 應(yīng)用程序的存儲(chǔ)空間。因此,許多資料都推薦只劃分一百多M空間給 ESP,這也使得該分區(qū)除了遵循 EFI 規(guī)范以及存儲(chǔ) EFI 啟動(dòng)文件之外沒有太大用處。然而,我認(rèn)為 ESP 可以有更多更好的用法。既然 ESP 是必要的,何不物盡其用?
首先,看下 ESP 本身的特點(diǎn),以及由此帶來的好處。
大容量的 ESP
與常識(shí)相反,我使用大容量的 ESP。我一般會(huì)劃分一個(gè) 20G 或 32G 的 ESP,并且,不管系統(tǒng)是否支持 EFI(事實(shí)上我現(xiàn)在用的這臺(tái)機(jī)器根本不支持 EFI),我都會(huì)在主硬盤上劃分這么一個(gè) ESP。
訪問 ESP
在 Linux 等系統(tǒng)下,ESP 和普通的 FAT 分區(qū)沒什么兩樣,可以使用相同的方式進(jìn)行掛載(使用 vfat 分區(qū)類型)??梢园?ESP 的掛載寫到 /etc/fstab 里。我一般把 ESP 掛載為 /boot。
在 Windows 下,ESP 一般是不可見的,使用 Windows 自己的磁盤管理器無法為 ESP 分配盤符,因此需要借助一些工具或方法。如果是 PE 系統(tǒng),或是 Win 7 以下版本的 Windows,可以使用 BOOTICE 的分區(qū)管理功能,給 ESP 分配一個(gè)盤符。另外,無憂論壇上有人寫了一個(gè) MountESP 程序,可以用來掛載 ESP 并為之分配盤符。然而,在 Win 7 以上版本的 Windows 中,那些工具雖然可以成功給 ESP 分配盤符,但在資源管理器中看不到。
其實(shí),不借助其它工具,使用 MKLINK 命令就可以掛載 ESP。假設(shè) ESP 位于第一塊硬盤的第一個(gè)分區(qū),以管理員身份打開 CMD,運(yùn)行以下命令:
運(yùn)行成功之后,C:\ESP 就是指向 ESP 的一個(gè)符號(hào)鏈接,欲訪問 ESP,訪問 C:\ESP 即可。這個(gè)方法在 Windows 上其實(shí)是通用的,Win 7 以下版本也可以用,只是在 Win 7 以下版本并沒有 MKLINK 命令,需要自行下載 junction 這個(gè)程序來代替 mklink。
引導(dǎo)管理程序
對(duì)于 EFI 系統(tǒng)來說,系統(tǒng)的引導(dǎo)文件會(huì)安裝到 ESP。Windows 會(huì)在 ESP 建立 EFI 目錄并把引導(dǎo)文件復(fù)制到這里。Linux 則有多種選擇方案,我一般選擇 Grub2,也使用過 rEFIt。
而對(duì)于非 EFI 系統(tǒng),主引導(dǎo)記錄(MBR)我一般會(huì)使用 GRUB4DOS 或 NT6.X MBR,并把 GRUB4DOS (包括 grub.mbr, grub.exe, grldr, menu.lst)安裝到 ESP,并且,附加上 SISO 模塊(可以在無憂論壇里找到它)。還可以從 Win 8.1 復(fù)制 bootmgr 及 boot 目錄到 ESP,并使用 BOOTICE 來管理 MBR 和 BCD。
不管系統(tǒng)是否是 EFI 的,我一般都會(huì)在 ESP 里安裝 GRUB4DOS。GRUB4DOS 并不支持 EFI,但沒關(guān)系,我們可以借用 GRUB 2 EFI 來引導(dǎo) GRUB4DOS,給 GRUB 2 加個(gè)菜單就可以了,類似這樣:
menuentry "GRUB4DOS" {insmod part_msdosinsmod fatset root=(hd0,1)linux /grub.exe}
以后我打算嘗試下Clover,這樣,不管是否是 EFI 系統(tǒng),我都可以用同樣一個(gè)引導(dǎo)管理程序。
在 ESP 里安裝非日常用操作系統(tǒng)
當(dāng)然,你不會(huì)想在 ESP 里安裝日常所用的操作系統(tǒng),我們可以挑選那些小巧便攜的一些操作系統(tǒng)放到 ESP 里以備不時(shí)之需。許多系統(tǒng)可以借助某些引導(dǎo)管理程序以 ISO 鏡像的方式直接啟動(dòng),比如,SliTaz Linux, Ubuntu 等,很多 Win PE 系統(tǒng)也可借由 GRUB4DOS 從 ISO 直接啟動(dòng)。
GRUB 2 可以使用 loopback 模塊啟動(dòng)一些 ISO 鏡像,假設(shè) ESP 是第一塊硬盤的第一個(gè)分區(qū),下面是一些 Grub 2 的菜單例子:
### GRUB 2 菜單文件: /boot/grub/grub.cfgmenuentry "Ubuntu Live" {set ISO=/OS/Ubuntu/ubuntu.isoloopback loop (hd0,1)$ISO### 如果是32位的Ubuntu,應(yīng)將下面的 vmlinuz.efi 改為 vmlinuzlinux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=$ISO noprompt noejectinitrd (loop)/casper/initrd.lz}menuentry "SliTaz" {set ISO=/OS/SliTaz/slitaz-cooking.isoloopback loop (hd0,1)$ISOlinux (loop)/boot/bzImage root=/dev/nullinitrd (loop)/boot/rootfs.gz}menuentry "Fedora Live" {set ISO=/OS/Fedora/fedora.isoloopback loop (hd0,1)$ISOlinux (loop)/EFI/boot/vmlinuz0 root=live:$ISO rootfstype=auto ro liveimg quiet rhgb rd.luks=0 rd.md=0initrd (loop)/EFI/boot/initrd0.img}menuentry "Knoppix Live ISO" {set ISO=/OS/Knoppix/knoppix.isoloopback loop (hd0,1)$ISOlinux (loop)/boot/isolinux/linux bootfrom=/dev/sda1$ISO acpi=off keyboard=us language-usinitrd (loop)/boot/isolinux/minirt.gz}
相對(duì)來說,我對(duì) GRUB4DOS 更熟悉一些,而且 GRUB4DOS 可以啟動(dòng)更多種類的鏡像文件。如果你的系統(tǒng)是 EFI 啟動(dòng)的,你可以安裝 GRUB 2 EFI 并借由它來引導(dǎo) GRUB4DOS,前面已經(jīng)說過。GRUB4DOS 的菜單文件是 menu.lst,以下是一些例子:
iftitle [find --set-root --devices=h /bootmgr && call set R=%@root^%] BOOTMGR of Windows VISTA/WIN7/WIN2008 on %R%chainloader %bootmgr%/bootmgr
iftitle [find --set-root --devices=h /OS/Ubuntu/ubuntu.iso && call set R=%@root^%] Ubuntu LiveCDset F=/OS/Ubuntu/ubuntu.isomap %F% (0xff) || map --mem-top %F% (0xff)map --hookkernel (0xff)/casper/vmlinuz boot=casper iso-scan/filename=%F% ro quiet splashinitrd (0xff)/casper/initrd.lz
title SliTaz ISOset F=/OS/SliTaz/slitaz.isofind --set-root --ignore-floppies --ignore-cd %F%map %F% (0xff) || map --mem-top %F% (0xff)map --hookchainloader (0xff)
title Win8.1 RamOSset F=/OS/Win8/usm8.1ramos.isofind --set-root --ignore-floppies --ignore-cd %F%map %F% (0xff) || map --mem-top %F% (0xff)map --hookchainloader (0xff)
title 0PE LiveISOset F=/OS/0PE/0PE.isofind --set-root --ignore-floppies --ignore-cd %F%map %F% (0xff) || map --mem-top %F% (0xff)map --hookchainloader (0xff)
更高級(jí)點(diǎn),還可以利用 Win7 以上版本的差分 VHD 及 GRUB4DOS 的 dd 命令做一鍵恢復(fù)。
系統(tǒng)維護(hù)工具、PETOOLS、腳本文件
上面所述的操作系統(tǒng)本身只能提供有限的工具,為便于系統(tǒng)維護(hù),我把各種系統(tǒng)維護(hù)工具、PETOOLS等都放在了 ESP 里,這樣,從 ESP 啟動(dòng) PE 系統(tǒng)后就可以調(diào)用它們。這些工具包括:磁盤工具、分區(qū)工具、鏡像/備份工具、輔助安裝工具、硬件檢測(cè)工具、系統(tǒng)清理、恢復(fù)工具,等等。
還有,我把自己寫的一些維護(hù)用的腳本也放在了這里。
操作系統(tǒng)鏡像、備份及驅(qū)動(dòng)
我很過分,我把這些東西也都塞到 ESP 里。如果日常使用的系統(tǒng)壞了,沒關(guān)系,從 ESP 啟動(dòng)一個(gè)系統(tǒng),或安裝新系統(tǒng),或進(jìn)行恢復(fù),都可以,對(duì)其它分區(qū)進(jìn)行調(diào)整也可以,只要 ESP 沒壞,其它系統(tǒng)都?jí)牧艘矝]關(guān)系。
現(xiàn)在,你應(yīng)該可以理解我為什么弄那么大容量的 ESP 了吧?
請(qǐng)不要把 ESP 與微軟的 MSR 分區(qū)混淆,那個(gè) MSR 分區(qū)并沒有存在的必要。
你準(zhǔn)備怎樣使用 ESP 呢?
–
聯(lián)系客服