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版中的新功能:
- 修复安全问题
评论没有发现