GNU GRUB(GRand Unified Bootloader)是一個免費的開源項目,為用戶提供了一個易於安裝和配置的引導加載程序軟件,用於引導安裝在一個或多個系統上的單個或多個操作系統個人電腦或筆記本電腦。
主要功能包括支持實際內存管理,國際化支持,可移植性,跨平台安裝支持,緊湊型核心映像,支持動態加載到核心映像,以及面向對象的框架。
該程序已經在廣泛的GNU / Linux系統上使用了許多年,允許用戶輕鬆快速地在安裝在計算機的多個磁盤驅動器之一上的多個操作系統之間切換。
它支持廣泛的操作系統,包括GNU / Linux,BSD,Solaris以及Microsoft Windows。此外,它可以安裝在主引導記錄(MBR),GUID分區表(GPT)和統一可擴展固件接口(UEFI)上。
該軟件由不同的實用程序組成,包括grub-setup,grub-install,grub-mkconfig和update-grub。標準的GRUB安裝將要求用戶僅使用具有某些選項的grub-install命令以及grub-mkconfig命令。
其默認配置文件通常位於/boot/grub/grub.cfg下,但編輯其設置的最佳方法是使用任何文本編輯器打開/ etc / defaults / grub文件,並運行update-grub命令,作為root(系統管理員)。
隨著計算機技術的進步和基於BIOS的系統的消失,GNU GRUB引導加載程序試圖跟上它們,但是它被緩慢地被現代更簡單的引導加載程序所取代,如Syslinux,Gummiboot,rEFInd,rEFIt,以及為UEFI系統專門設計的許多其他設備
總而言之,GNU GRUB是下一代GRand Unified Bootloader,由95%的GNU / Linux操作系統採用。它可以輕鬆地安裝在現有的Linux / UNIX操作系統上,替換當前的引導加載程序。
此版本中的新功能:
- 新增/改進的文件系統和磁盤支持:
- Big-endian UFS1。
- 實驗64位ext2支持。
- 非512字節扇區設備的各種修復。
- LUKS磁盤使用的新的'proc'文件系統框架。
- 修復DM-RAID分區處理。
- 新的“nativedisk”命令可以從固件切換到本地磁盤驅動器。
- 壓縮HFS +。
- DragonFly BSD標籤。
- CBFS(coreboot)。
- 正確處理分區LVM。
- 盡可能使用LVM UUID。
- GPT PReP。
- 新的“進度”模塊,在閱讀文件時顯示進度信息。
- ZFS功能支持。
- 支持ZFS LZ4。
- 支持XFS V5格式。
- 支持LVM RAID1。
- 新的/改進的終端和視頻支持:
- 單色文本(在GRUB Legacy中匹配“hercules”)。
- 使用系統揚聲器的摩爾斯碼輸出。
- `spkmodem'輸出(使用系統揚聲器的簡單數據協議)。
- 處理日語特別鍵。
- coreboot framebuffer。
- 在ARC上串行。
- 本機vt100處理grub-emu,替代使用curses庫。
- 用於終端窗口定位,主題背景圖像處理和滾動條填充的新gfxmenu選項,加上“item_pixmap_style”和“highlight_overlay”。
- 支持多種圖像類型(調色和灰度)。
- 啟動協議改進:
- 在非Apple平台上支持Apple FAT二進製文件。
- 改善FreeDOS直接加載支持兼容性。
- 在所有x86平台上啟用“linux16”,而不只是BIOS。
- 新的TrueCrypt ISO加載器。
- multiboot2 boot-services EFI規範。
- multiboot2 EFI內存映射規範。
- multiboot2 full-file specication。
- 新的/改進的網絡支持:
- 包含默認界面屬性的新變量`net_default_ *'。
- 如有必要,自動加載`http'和`tftp'模塊。
- 提高TFTP的魯棒性。
- 在GRUB Legacy配置文件中解析'nd'磁盤名稱。
- 發出IPv4和IPv6的單獨DNS查詢。
- 支持IPv6路由器通告配置默認路由器。
- 新的變量net__next_server包含來自BOOTP回复的下一個服務器。
- Coreboot改進:
- CBFS支持磁盤映像(環回)和閃存。
- 能夠從閃存或磁盤啟動另一個有效載荷
- Coreboot framebuffer
- CBMEMC支持(日誌記錄和檢查日誌)
- 檢查coreboot時間戳的命令(`coreboot_boottime')。
- 檢查coreboot表(`lscoreboot')的命令。
- 新建目標default_payload.elf。
- 增加最大核心大小。
- 用於TSC校準的pmtimer。
- 在EFI平台上新建“efifwsetup”和“lsefi”命令。
- 在支持CMOS的平台上新建“cmosdump”和“cmosset”命令。
- 用於PCI平台的新命令`pcidump'。
- 改進ACPI暫停實現中的操作碼解析。
- 使用TSC作為i386-ieee1275上的可能時間源。
- 將PowerPC grub-mkrescue實現與普通的一樣。
- 在i386-ieee1275,sparc64,bootinfo機器(如pSeries和mips-arc)上支持grub-mkrescue。
- 使grub-mkrescue更好地支持CD上的Apple Intel Mac。
- 在EFI上啟用GRUB Legacy配置文件解析
- 支持停止Loongson 2E。
- ARM U-Boot和EFI端口。
- 在實用程序中重新組織與平台相關的代碼,以避免#ifdef亂碼。
- AROS和Haiku支持用戶空間實用程序。
- Xen PV端口。
- 修復EFI堆棧對齊。
- ARM64 EFI端口。
- 在Linux上,如果可能,請從sysfs讀取分區起始偏移量。
- 新的grub-macbless實用程序,更好地與grub安裝中的Mac固件集成。
- 支持Yeeloong 3A。
- 添加`cpuid --pae'選項以檢測x86上的物理地址擴展名。
- 支持USB調試加密狗。
- 在所有平台上支持* -emu(以前只有i386 / x86_64工作)。
- 在Windows上支持* -emu。
- 新建平台“無”僅構建用戶級實用程序。如果不支持目標CPU,則這是默認值。
- 支持在powerpc上啟動小端Linux內核。
- 使用Oracle sun4v vnet設備支持網絡引導。
- 將SAS磁盤添加到IEEE 1275 Open Firmware設備列表。
- 支持缺少用於TSC校準的PIT的Hyper-V Gen2平台。
- ARM64上的新的Xen加載程序。
- 尊重EFI上塊設備IO緩衝區的對齊要求。
- 安全性:
- 添加可選設備,以強制核心映像從磁盤讀取的所有文件都具有有效的分離的數字簽名。
- 性能:
- 避免在許多地方進行昂貴的分工。
- 新的引導時間分析框架(`./configure --enable-boot-time')。
- 並行初始化USB端口。
- 新的'testspeed'命令來測試文件讀取速度。
- 通過以更緊湊的格式存儲中間結果來加速gfxterm。
- Lazy LVM / mdraid掃描。
- 磁盤提示。
- 腳本:
- 新的“eval”和“tr”命令。
- 在不包含命令的腳本上,grub-script-check失敗。
- 安裝和其他實用程序改進:
- 添加選項以在安裝或映像創建時壓縮文件。
- 使用grub-reboot不再需要設置“GRUB_DEFAULT = saved”。
- 支持探測EFI系統分區(需要os-prober> = 1.58)。
- grub-mount處理到目錄的符號鏈接。
- 使用grub-mkconfig的“GRUB_DISABLE_SUBMENU”配置密鑰支持禁用子菜單。
- 本地mingw支持。
- 可以在Windows下的EFI上安裝。
- 使用新的“timeout_style”環境變量和grub-mkconfig的“GRUB_TIMEOUT_STYLE”配置密鑰重組超時處理。在隱藏的超時期間按下的菜單熱鍵現在立即啟動相應的菜單項。
- 新的`file'命令和grub-file實用程序來檢查文件類型。
- 新建syslinux配置文件解析器。
- 將菜單項目類設置為由os-prober返回的主操作系統名稱,以顯示操作系統特定的圖標。
- 在Linux x86上檢測grub-install中的EFI字大小,並自動選擇正確的平台(x86_64-efi或i386-efi)進行安裝。需要Linux內核4.0或更高版本。
- 構建系統:
- 使用Texinfo> = 5.1修復文檔構建。
- 更強大和文檔化的交叉編譯支持。
- 部分cl ang支持某些平台(實驗)。
- 部分mingw64 x86_64-efi編譯支持(高度實驗性)。
- 部分mingw32 i386-(已經存在i386-pc除外)編譯支持(高度實驗性)。
- 在Windows上支持grub-mkpasswd。
- 消除使用AutoGen。這允許對構建系統進行一些性能改進。
- 刪除可變長度數組。
- OpenBSD編譯和工具支持(NetBSD和FreeBSD已被支持)。
- 使用FreeType> = 2.5.1修復構建。
- 使gentpl.py與Python 3兼容。它至少需要Python 2.6。
- modinfo.sh現在包含構建信息。
- 添加了許多新的測試來提高穩健性。
- 目標是現在沒有libgcc構建的。必要的內置函數被直接重新實現。這消除了對構建系統上目標特定運行時的需求。
- emu libusb支持被刪除(被破壞,未被保護)。
- powerpc64le編譯支持。
- 在生成可重複構建的GRUB映像時使用固定時間戳。
- 在構建時驗證模塊僅包含支持的重定位,並且其結構與引導時間模塊加載程序所期望的匹配。
- 不要在powerpc-ieee1275上使用字體。
新增/改進的平台支持:
嘗試TSC(時間戳計數器)校準的多種方法 - PIT,pmtimer,EFI Stall。如果一切都失敗,請使用硬編碼頻率800MHz。
將UEFI持久內存映射到E820持久內存
修正不一致的使用`GRUB_CRYPTODISK_ENABLE'和`GRUB_ENABLE_CRYPTODISK';後者現在一直使用。
grub-install,grub-mknetdir,grub-mkrescue和grub-mkstandalone在C中重寫。他們現在應該在支持非Unix的環境中工作。
刪除嵌套函數的所有用途; GRUB不再需要可執行堆棧。
版本2.00 / 2.02 Beta 2中的新功能
- 新增/改進的文件系統和磁盤支持:
- Big-endian UFS1。
- 實驗64位ext2支持。
- 非512字節扇區設備的各種修復。
- LUKS磁盤使用的新的'proc'文件系統框架。
- 修復DM-RAID分區處理。
- 新的“nativedisk”命令可以從固件切換到本地磁盤驅動器。
- 壓縮HFS +。
- DragonFly BSD標籤。
- CBFS(coreboot)。
- 正確處理分區LVM。
- 盡可能使用LVM UUID。
- GPT PReP。
- 新的“進度”模塊,在閱讀文件時顯示進度信息。
- ZFS功能支持。
- 支持ZFS LZ4。
- 新的/改進的終端和視頻支持:
- 單色文本(在GRUB Legacy中匹配“hercules”)。
- 使用系統揚聲器的摩爾斯碼輸出。
- `spkmodem'輸出(使用系統揚聲器的簡單數據協議)。
- 處理日語特別鍵。
- coreboot framebuffer。
- 在ARC上串行。
- 本機vt100處理grub-emu,替代使用curses庫。
- 用於終端窗口定位,主題背景圖像處理和滾動條填充的新gfxmenu選項,加上“item_pixmap_style”和“highlight_overlay”。
- 支持多種圖像類型(調色和灰度)。
- 啟動協議改進:
- 在非Apple平台上支持Apple FAT二進製文件。
- 改善FreeDOS直接加載支持兼容性。
- 在所有x86平台上啟用“linux16”,而不只是BIOS。
- 新的TrueCrypt ISO加載器。
- multiboot2 boot-services EFI規範。
- multiboot2 EFI內存映射規範。
- multiboot2 full-file specication。
- 新的/改進的網絡支持:
- 包含默認界面屬性的新變量`net_default_ *'。
- 如有必要,自動加載`http'和`tftp'模塊。
- 提高TFTP的魯棒性。
- 在GRUB Legacy配置文件中解析'nd'磁盤名稱。
- 發出IPv4和IPv6的單獨DNS查詢。
- Coreboot改進:
- CBFS支持磁盤映像(環回)和閃存。
- 能夠從閃存或磁盤啟動另一個有效載荷
- Coreboot framebuffer
- CBMEMC支持(日誌記錄和檢查日誌)
- 檢查coreboot時間戳的命令(`coreboot_boottime')。
- 檢查coreboot表(`lscoreboot')的命令。
- 新建目標default_payload.elf。
- 增加最大核心大小。
- 在EFI平台上新建“efifwsetup”和“lsefi”命令。
- 在支持CMOS的平台上新建“cmosdump”和“cmosset”命令。
- 用於PCI平台的新命令`pcidump'。
- 改進ACPI暫停實現中的操作碼解析。
- 使用TSC作為i386-ieee1275上的可能時間源。
- 將PowerPC grub-mkrescue實現與普通的一樣。
- 在i386-ieee1275,sparc64,bootinfo機器(如pSeries和mips-arc)上支持grub-mkrescue。
- 使grub-mkrescue更好地支持CD上的Apple Intel Mac。
- 在EFI上啟用GRUB Legacy配置文件解析
- 支持停止Loongson 2E。
- ARM U-Boot和EFI端口。
- 在實用程序中重新組織與平台相關的代碼,以避免#ifdef亂碼。
- AROS和Haiku支持用戶空間實用程序。
- Xen PV端口。
- 修復EFI堆棧對齊。
- ARM64 EFI端口。
- 在Linux上,如果可能,請從sysfs讀取分區起始偏移量。
- 新的grub-macbless實用程序,更好地與grub安裝中的Mac固件集成。
- 支持Yeeloong 3A。
- 添加`cpuid --pae'選項以檢測x86上的物理地址擴展名。
- 支持USB調試加密狗。
- 在所有平台上支持* -emu(以前只有i386 / x86_64工作)。
- 在Windows上支持* -emu。
- 安全性:
- 添加可選設備,以強制核心映像從磁盤讀取的所有文件都具有有效的分離的數字簽名。
- 性能:
- 避免在許多地方進行昂貴的分工。
- 新的引導時間分析框架(`./configure --enable-boot-time')。
- 並行初始化USB端口。
- 新的'testspeed'命令來測試文件讀取速度。
- 通過以更緊湊的格式存儲中間結果來加速gfxterm。
- Lazy LVM / mdraid掃描。
- 磁盤提示。
- 腳本:
- 新的“eval”和“tr”命令。
- 在不包含命令的腳本上,grub-script-check失敗。
- 安裝和其他實用程序改進:
- 添加選項以在安裝或映像創建時壓縮文件。
- 使用grub-reboot不再需要設置“GRUB_DEFAULT = saved”。
- 支持探測EFI系統分區(需要os-prober> = 1.58)。
- grub-mount處理到目錄的符號鏈接。
- 使用grub-mkconfig的“GRUB_DISABLE_SUBMENU”配置密鑰支持禁用子菜單。
- 本地mingw支持。
- 可以在Windows下的EFI上安裝。
- 使用新的“timeout_style”環境變量和grub-mkconfig的“GRUB_TIMEOUT_STYLE”配置密鑰重組超時處理。在隱藏的超時期間按下的菜單熱鍵現在立即啟動相應的菜單項。
- 新的`file'命令和grub-file實用程序來檢查文件類型。
- 新建syslinux配置文件解析器。
- 構建系統:
- 使用Texinfo> = 5.1修復文檔構建。
- 更強大和有文檔的交叉編譯支持。
- 部分cl ang支持某些平台(實驗)。
- 部分mingw64 x86_64-efi編譯支持(高度實驗性)。
- 部分mingw32 i386-(已經存在i386-pc除外)編譯支持(高度實驗性)。
- 在Windows上支持grub-mkpasswd。
- 消除使用AutoGen。這允許對構建系統進行一些性能改進。
- 刪除可變長度數組。
- OpenBSD編譯和工具支持(NetBSD和FreeBSD已被支持)。
- 使用FreeType> = 2.5.1修復構建。
- 使gentpl.py與Python 3兼容。它至少需要Python 2.6。
- modinfo.sh現在包含構建信息。
- 添加了許多新的測試來提高穩健性。
- 版本控制移至git。
新增/改進的平台支持:
修正不一致的使用`GRUB_CRYPTODISK_ENABLE'和`GRUB_ENABLE_CRYPTODISK';後者現在一直使用。
grub-install,grub-mknetdir,grub-mkrescue和grub-mkstandalone在C中重寫。他們現在應該在支持非Unix的環境中工作。
刪除嵌套函數的所有用途; GRUB不再需要可執行堆棧。
1.99版中的新功能:
- 支持鍵盤佈局。
- GRUB遺留配置文件的解析器。
- EFI平台上的“lsefisystab”,“lssal”和“lsefimmap”命令。
- 支持顯式用戶聲稱設備是BIOS可見的。將假設device.map中列出的設備只能使用BIOS設備進行讀取,而不是像LVM或RAID這樣更複雜的設備。
- GRUB實用程序的新的bash完成腳本。
- 如果可能,請使用ACPI關閉。
- 新的`lsacpi'命令。
- “grub-install”,“grub-reboot”和“grub-set-default”的新的`--boot-directory'選項具有比以前的`--root-directory'選項更清晰的語義。 / LI>
- 將CD-ROM設備重命名為“cd”在BIOS平台上。
- 更簡單的PXE圖像生成。新的“grub-mknetdir”實用程序來生成netboot目錄樹。
- 處理作為軟盤暴露的USB pendrives。
- 新的基於Automake的構建系統。
- 添加`sendkey'命令(僅限i386-pc)。
- 支持1.x版本的mdadm元數據。
- 在閱讀Reiserfs目錄條目時修復損壞。
- 支持雙向文字和變音符。
- 如果可能,在GNU / Linux上更改grub-mkdevicemap以發出/ dev / disk / by-id / names。
- 使用Linux為Xen添加`grub-mkconfig'支持。
- 在Fedora 13上添加“grub-mkconfig”對initrd映像的支持
- 支持> 3GiB和
將“vbeinfo”和“vbetest”命令擴展為非VBE圖形,如“videoinfo”和“videotest”。
透明解壓縮過濾器
新的搬遷人。允許更多的內核支持和更簡單的加載器編寫。
1.98版的新功能:
- 保存的默認菜單項支持,新的實用程序`grub-reboot'和`grub-set-default'。
- 單元測試框架。
- 支持多個終端。
- 使用新的實用程序`grub-mkpasswd-pbkdf2'加密密碼支持。
- `grub-mkfloppy'使用“grub-mkrescue”創建軟盤映像。
- 添加對GNU / Hurd的grub-probe支持。
- 添加對gettext的支持。
刪除了
1.97.1版中的新功能:
- 修復安全問題
評論沒有發現