本帖记录了 grub4dos 和 grubutil 的更新历史,大家在测试时请使用最新的版本。
本帖末尾增加了 jot 上的更新记录。jot 已经无法访问,转到 http://grub4dos.nufans.net/ 了。
更新:原 jot 的内容已经转移到 Google 协作平台 http://sites.google.com/site/grubdos/
bean定制的Windows下编译grub4dos/grub2/grubutil的MinW软件包下载和讨论帖子
1、grub4dos
项目空间:
https://gna.org/projects/grub4dos/
下载编译版本:
http://download.gna.org/grub4dos/
在线浏览源代码:
http://svn.gna.org/viewcvs/grub4dos/trunk/
使用svn下载源代码: svn co svn://svn.gna.org/svn/grub4dos/trunk grub4dos
最近更新:
2008-12-29(r63): added badgrub.exe; fixes on bootlace and disk I/O; improvements on FIND, PXE, etc; MSYS/MinGW support.
增加了 badgrub.exe;有关 bootlace 和磁盘访问的一些 bug 修复;对 FIND、PXE 等命令做了改进;支持 MSYS/MinGW 的编译环境。
2008-11-19(r62): removed FAT-first-entry check; avoid disabling CPU cache.
去除了对 FAT 第一表项的检查;避免禁止 CPU 缓存。
2008-11-11(r61): fixed problems on int13_handler, probe_int, stack, iso-emulation, FAT, NTFS, get_diskinfo, set_bootdev, pxe block size, preset-menu and bootlace. added new commands checkrange and tpm. added new options for find and bootlace.
修复了 int13_handler, probe_int, stack, iso-emulation, FAT, NTFS, get_diskinfo,
set_bootdev, pxe block size, preset-menu 和 bootlace 的问题。增加了新的命令 checkrange
和 tpm。为 find 命令和 bootlace 工具增加了新的选项。
2008-07-21(r60): fixes on probe_int, ext3 inode size, etc; A20 code change; version number upgrade.
修正了probe_int,ext3的inode大小,等等。改变A20代码,版本号增加到0.4.4。
2008-05-02(r59): fixes on int vector probing, A20 control, configfile, find, etc.add new command checktime.
修改了向量检测,A20控制,configfile, find等的问题,增加新命令checktime.
2008-03-14(r58): Commented out the geometry-tune code, support larger cluster size for ntfs filesystem, and other fixes.
注释掉几何参数自适应的代码,ntfs文件系统支持更大的簇,以及其他一些补丁。
2008-01-01(r57): mini build support
支持迷你版本
2007-12-25(r56): create test branch
创建测试分支
2007-12-25(r55): cdrom emulation support, bios chs parameter auto adjuestment, bug fixes, remove command upperman, ioprobe, impsprobe and displayapm.
cdrom仿真支持,bios几何参数自适应,其他一些调整、变通、修复,删除命令upperman, ioprobe, impsprobe 和 displayapm。
2007-10-15(r54): isolinux chainloading, various workarounds and fixes.
引导isolinux,一些和变通和补丁
2007-08-27(r53): A20 code changed and relative path supported
改变A20的代码,支持相对路径
2007-08-16(r52): Fixed bugs on endless partition loop, probe_int, probe_mbr and compressed NTFS volume; Updated hmload.
修正了无限分区循环,probe_int,probe_mbr和压缩NTFS的问题,更新了hmload
2007-07-25(r51): Added a new command OUTLINE, and a new option --duce for GRUB.EXE
增加新命令OUTLINE,GRUB.EXE增加新选项--duce
2007-07-21(r50): Changed PARTNEW syntax. Fixed a problem of OPEN_PARTITION
改变PARTNEW的语法。修正了OPEN_PARTITION的一个问题。
2007-07-20(r49): Save space in ext2 boot sector, generate patch file in build script
节省ext2启动扇区的空间,在build脚本里生成补丁文件
2007-07-16(r48): Fix grldr.mbr bug, display timeout counter
修正了grldr.mbr的bug,显示倒计时
2007-07-09(r47): Fault-Recovery-Handler for PROBE_INT; Command syntax change of DEBUG and PARTTYPE
PROBE_INT的失败-恢复处理,DEBUG和PARTTYPE命令的语法改变。
2007-06-22(r46): Fixed two problems on GRUB.EXE: preset_menu and FreeDOS related.
修正grub.exe的两个问题:缺省菜单和FreeDOS相关的问题。
2007-06-17(r45): Added a new command HIDDENFLAG; Added BPB in GRLDR.MBR; Ignored partition-ID check in filesystem modules; other fixes.
增加新命令HIDDENFLAG,在GRLDR.MBR增加BPB,在文件系统模块中忽略分区ID。其他修正。
2007-06-15(r44): NTFS driver update: support non-resident $BITMAP
NTFS驱动更新:支持非常驻的$BITMAP
2007-06-06(r43): new ntfs boot code, fix ntfs bug, improve pxe
新的NTFS启动代码,修正ntfs的bug,改进pxe
2007-05-28(r42): Unload PXE stack before booting
在启动前卸载PXE的运行环境
2007-05-26(r41): Fixed a bug in probe_int for GRUB.EXE running in VM86 mode.
修正probe_int中的一个当GRUB.EXE运行在VM86模式时的一个bug
2007-05-25(r40): Rewrite fsys_ntfs.c
重写fsys_ntfs.c的代码
2007-05-23(r39): Fixed probe_int and init_pic in GRUB.EXE. Reduced warnings in bios.c.
修正GRUB.EXE中的probe_int和init_pic,在bios.c中减少警告信息
2007-05-10(r38): fix compile issue in ubuntu, fix currticks problem
修正在 ubuntu 里编译的问题,修正currticks的问题
2007-05-09(r37): improve PXE code, add builtin command pxe
改进PXE的代码,增加内置命令pxe
2007-04-22(r36): added PXE support, fixed netboot driver compile problem, fixed timing functions
增加PXE支持,修正netboot驱动的编译问题,更动了计时函数
2007-04-14(r35): fix a bug in get_diskinfo; protect the MBR of an in-situ-mapped drive
修正get_diskinfo的一个bug, 保护使用 in-situ 来映射的盘的MBR
2007-04-12(r34): Insert-key to debug on startup; polish graphics. NTFS boot record fix
在启动时按Insert键会显示调试信息,优化图形界面,修正NTFS启动扇区的bug
2007-04-06(r33): Bugfixes on STAGE2_SIZE, arrow keys, and handling `&&\'/`||\' in menu
修正了STAGE2_SIZE,箭头键和菜单处理中 && 和 || 的问题
2007-04-03(r32): move preset menu to the end/tail of pre_stage2
把内置菜单放到pre_stage2的最后
2007-03-31(r31): Numeric keys to select menu entry; fixed a bug of int13 harddrives
使用数字键选择菜单,修正int13硬盘的一个bug
2007-03-30(r30): Code clean-ups on build script and keycode translation
build脚本和键码转换的代码简化
2007-03-28(r29): F11/F12 hotkey handling
F11/F12热键的处理
2007-03-27(r28): fixed grldr.mbr problem
修正grldr.mbr的问题
2007-03-25(r27): fixed menu display issue
修正菜单显示的问题
2007-03-24(r26): canceled grldr message when timeout=0
当timeout=0时不显示GRLDR的信息
2007-03-24(r25): fixed menu processing issue for the down-arrow key
修正菜单处理中向下方向键的问题
2007-03-23(r24): added code to clear keyboard buffer
增加清除键盘缓冲区的代码
2007-03-23(r23): enlarged menu window
扩大菜单窗口
2007-03-22(r22): fixed auto-probe messages
修正自动探测的信息
2007-03-20(r21): fixed auto-probe problem of int 02,05,06
修正int 2,5,6自动探测的问题
2007-03-15(r20): corrected total sectors of initrd
修正了initrd 的扇区总数
2007-03-14(r19): fixed --in-situ problem
修正 --in-situ的问题
2007-03-11(r18): Fix problem in build script
修正build脚本的问题
2、grubutil
项目空间:
https://gna.org/projects/grubutil/
下载编译版本:
http://download.gna.org/grubutil/
在线浏览源代码:
http://svn.gna.org/viewcvs/grubutil/trunk/
下载源代码: svn co svn://svn.gna.org/svn/grubutil/trunk grubutil
最近更新:
2008-02-26(r23): Fix a bug caused by align problem of cygwin ld.
修正了一个由cygwin ld对齐问题所成的bug.
2008-01-01(r22): Change build scripts, add dos version grubinst
改变编译脚本,增加dos版的grubinst
2007-12-22(r21): Add new tool makerom
新增工具makerom
2007-12-06(r20): Initial import
新增工具loadbin
2007-08-29(r19): New mbr test, new option --no-copy-bpb and --skip-mbr-test, support 8.3 boot file name
新的mbr测试,新选项--no-copy-bpb和--skip-mbr-test,支持8.3文件名
2007-07-20(r18): Save space in ext2 boot sector
节省ext2启动扇区的空间
2007-07-16(r17): New option -k, -r for grubmenu, new option -e for grubinst, copy BPB to MBR
grubmenu增加选项-k和-r,grubinst增加选项-e,复制BPB到MBR
2007-06-15(r16): NTFS driver update: support non-resident $BITMAP
NTFS驱动更新:支持非常驻的$BITMAP
2007-06-06(r15): new ntfs boot code
新的NTFS启动代码
2007-05-28(r14): Display timeout counter
显示timeout倒计时
2007-05-10(r13): Fix help message for --key-name
修正--key-name的帮助信息
2007-05-10(r12): Display hot key name, change --force-backup-mbr handling
显示热键的名字,改变 --force-backup-mbr的处理
2007-05-09(r11): F11/F12 hotkey handling
F11/F12热键的处理
2007-04-22(r10): Convert menu file, check if there is enough space in MBR
转换菜单文件,检测MBR中是否有足够的空间
2007-04-07(r09): fix bug in ntfs boot sector, add new tool grubmenu
修正ntfs启动扇区的bug,增加新工具grubmenu
2007-03-24(r08): fix a small bug
修正了一个小bug
2007-03-24(r07): support compiling using cygwin, fix ntfs boot sector bug, canceled grldr message when timeout=0
支持使用cygwin来编译,修正ntfs启动扇区的bug, 当timeout=0时不显示grldr的信息
2007-03-14(r06): Add missing g2hdr.S
增加缺少的g2hdr.S文件
2007-03-09(r05): 1.1 beta7
1.1 beta7版本
3、其他链接:
教程文档:
http://grub4dos.sourceforge.net/wiki
中文论坛:
http://bbs.znpc.net/forumdisplay.php?fid=4
英文论坛:
http://www.boot-land.net/forums/index.php?showforum=66
4、在 http://grub4dos.jot.com/ 上的更新记录(由不点填写)
jot 已经上不去了,请在 http://grub4dos.nufans.net/ 下载最新的测试版本。
2009-02-08 把一些变量放在已知的固定内存地址。read 和 cat 命令做出相应更改,方便访问相关变量。
2009-02-03 新的 initrd 开始支持为 Linux 2.6 内核加载多个 cpio 文件。
2009-01-30 支持为不同的菜单项显示不同的帮助信息。
2009-01-28 修正 printf 的 bug。允许菜单中的dd和write写入普通文件中。
2009-01-24 WRITE 命令新语法,支持把字符串写到文件中。
2009-01-16(r64) 增加 gfxmenu 支持。
2009-01-09 新命令 dd 和 uuid。修复磁盘仿真代码中有关引导扇区处理的一处错误。
2008-12-30 解决 BIOS 缺乏 int15/E820h 支持的机器上的内存识别问题。
2008-12-29(r63) 编译环境 MSYS/MinGW 的支持。
2008-12-27 现在预置菜单拥有最高优先权。如果需要优先访问启动设备上的配置文件,必须在预置菜单的初始化命令中添加一条 configfile 命令。
2008-12-22 为 pxe 命令增加了用于预置菜单中的 detect 子命令。修复 bootlace 的一个毛病。调整了 grldr.mbr 中 hot-key 的位置。
2008-12-21 修复了 bootlace 运行于 DOS 时的几个问题。
2008-12-20 bootlace 现在可以安装三重 MBR 了。
2008-12-19 修复磁盘最末磁道的 Disk Read Error 问题。
2008-12-16 DOS 下的 bootlace.com 支持把参数放在一个文件中,用 DOS 的输入重定向(<)来使用参数文件。
2008-12-12 为 bootlace.com 增加了 --chs-no-tune 选项。顺便增添了菜单按键处理:# 和 * 都可以代替回车键执行 boot 的动作。
2008-12-07 处理某些 BIOS 在无仿真模式 CDROM 引导时的 bug。
2008-12-04 修复了 bootlace 中 ext3 索引节点大小的一个遗漏。修复了 bootlace 中对空分区表检查的疏忽。
2008-12-03 切除了 MENU_BUF 的内存占用。删除了 TESTLOAD 命令。增加了 TITLES 数组。
2008-12-01 增加了新的程序 badgrub.exe,改变了 find 命令的语法。
2008-11-19(r62) 在 a20_test 中允许 DELAY 响应硬件中断,同时不再禁止 CPU 缓存(a20.inc)。
2008-11-18 改变了 DELAY 代码(a20.inc),增加 STI 指令响应硬件中断(asm.S)。
2008-11-15 放宽了对 FAT 第一项的检查(fsys_fat.c)。解决 U 盘 FAT 分区 mount 失败的问题(证实已解决)。避免在 DELAY 中使用 OUT 指令(a20.inc),尝试解决未知的内存仿真死机问题。
2008-11-11(r61) 为 find 命令增加了 --ignore-cd 选项。同时也相应地修改了 preset menu,躲避某些 BIOS 的 bug。
2008-11-08 读引导文件决定PXE的块大小。对于非PXE的启动方式,避免执行 pxe_detect(降低死机发生的可能性)。
2008-11-02 为 bootlace.com 增加了 --mbr-no-bpb 选项。
2008-11-01 修改了 PXE_MIN_BLKSIZE 和 PXE_MAX_BLKSIZE。允许了 FAT 簇大小超过 32K。
2008-10-26 修复 PXE 块大小问题。
2008-10-21 bootlace 文件长度增大之后,在 DOS 下执行时死机,原因是堆栈与代码空间互相重叠。本次解决了这个问题。由于改动很多,请测试是否有新的 bug 出现。
2008-10-17 为 bootlace 增加了两个命令行选项 --restore-mbr 和 --serial-number=SN。
2008-10-12 修复了 fsys_fat.c 中的一个可导致 FAT32 无法被识别的 bug。
2008-10-03 撤消了对 root 设备不必要的初始化代码。
2008-10-02 改进了 probe_int 中 int15 的探测代码。
2008-10-01 启动 GRLDR 之前,给用户一个机会启动先前的 MBR。
2008-09-30 修复了 set_bootdev 中存在已久的一个大的 bug,导致额外的 rawread 被执行以及缓冲的磁盘几何参数被弄乱。
2008-09-29 修复了 get_diskinfo 中存在已久的一个大的 bug,导致反复计算 (fd0) 的几何参数,造成假死。
2008-09-27 修复了最近在 get_diskinfo 中引入的一个新的 bug。
2008-09-25 修复 boot.c 中未设置 current_term 变量的错误。这个错误导致图形模式下的 kernel 命令所装载的 linux 内核被破坏,因而其后的 boot 命令会死机。
2008-09-24 修复 fsys_ntfs.c 中 "$BITMAP should be non-resident when in attribute list" 的问题。
2008-09-23 修复不用 --mem 虚拟的 cdrom 扇区读的问题(每次读 64K 时存在的问题)。
2008-09-21 修复图形模式与 Linux 内核之间的内存冲突问题。
2008-09-20 修复 grldrstart 中的一个可引起 FAT 启动失败的严重问题。
2008-09-19 修复上次在 get_diskinfo 中引入的 bug。
2008-09-15 修复由于某些驱动器在 LBA 和 CHS 模式上的不同行为所造成的问题。
2008-09-13 修复 int13 处理程序重入问题。此问题发生在由内置cdrom驱动程序所建立的真实cdrom上的虚拟设备上。
2008-09-12 解决 cdrom 整盘仿真的问题。
2008-09-09 修复不用 --mem 虚拟的 cdrom 扇区读的问题。
2008-09-07 处理菜单分界(和菜单中包含注释)问题。
2008-08-27 节约 int13_handler 堆栈空间的占用。
2008-08-26 修复与 iso 仿真有关的一个问题(disk read error)。
2008-08-24 节约 int13_handler 堆栈空间的占用。
2008-08-14 扩大了 stage2 所使用的堆栈空间。
2008-08-13 再次修复 root 命令的问题。
2008-08-12 修复了 int5 中断向量探测问题。
2008-08-10 增加了一条新命令 checkrange;修复了 root 命令中的一个问题。
2008-08-08 在磁盘仿真代码中增加堆栈空间,试图排除因堆栈溢出而导致的死机问题。(证实已解决。太棒了!)
2008-08-06 修复了在 get_diskinfo 中使用 SCRATCH 缓冲区的一个很可疑的问题。这一修改的背景情况是,多个函数共用同一内存区域,导致内存冲突,从而引起死机。如果此次修改被证明很有效,那么这应该就是先前出现的许多死机问题的答案了。(证实无效)
2008-08-04 修复了操作符 && 和 || 的出错处理问题;grldr.mbr 的结构有了变动,现在它可以放在 boot.ini 中了;又在 dosstart.S 和 asm.S 中增加了几条 STI 指令,目的是尽量避免因硬件中断问题而导致死机。
2008-07-28 在 asm.S 中增加了 sti 指令以便更好地响应硬件中断,或者能喂饱看门狗。这些改动假定某些机器上有看门狗时钟,当系统长时间不能响应硬件中断时,看门狗处于饥饿状态,于是触发非屏蔽中断 NMI,导致系统死锁。此次改动有望解决最近广泛报告的死机问题,请大家加紧测试。
2008-07-10(r60) 让上下箭头键可以循环到菜单的第一项或最后一项(证实已工作)。
2008-07-06 为避免 compaq 机器在磁盘仿真下访问 USB 存贮设备时失败,增加了 backup_int13 和 restore_int13(证实已解决)。另外,本次发布还增加了 --mem 内存虚拟盘的 A20 调试输出,因此这个版本只能用来测试,不能用于日常使用。这是因为,A20 的调试输出会干扰正常的屏幕显示。如果你不使用 --mem 内存盘,那么这个版本也可以作为日常使用。(7月6日发布了两次,其中较晚的发布是可以作为日常使用的,请大家测试是否正常。A20是测试重点,请报告A20的任何异常。)
2008-06-28 修复了 ext3 文件系统 256 字节长的索引节点 在 GRLDR 引导扇区以及 bootlace 中所遗留的问题(证实已解决)。
2008-06-26 修复了 probe_int 中的 int4C-4F 解决 grub.exe 在联想补天A6900上失败的问题(证实已解决)。
2008-06-24 修复了 ext3 文件系统 256 字节长的索引节点 引起文件系统访问失败的问题(证实已解决)。
2008-06-23 增加了 ls 命令,方便列出某个目录下的文件(证实已工作)。
2008-06-22 为避免 compaq 机器在磁盘仿真下访问 USB 存贮设备时失败,禁用了 safe_int13(证实只解决了一部分)。
2008-06-18 A20 的测试开始了。版本号更新到 0.4.4。
2008-06-12 让 hide 和 unhide 命令显示一条响应消息(证实已工作)。下次发布时就准备开始尝试导入 syslinux 的 A20 代码,继续测试 A20。所以,本次发布可能算是一个阶段性的发布。
2008-06-10 让 root 命令显示正确的文件系统信息(证实已解决)。
2008-06-07 让 GEOMETRY 和 MAKEACTIVE 命令显示分区的激活标志(证实已工作)。
2008-06-01 注释掉了 RUN_MENU 中的终端切换代码,这个代码导致在命令行和菜单之间的视频显示模式出现混乱(证实已解决)。
2008-05-31 上次在5月27日的更动并未解决问题。本次通过避免清除掉 bss 而使 configfile 正常工作(证实已解决)。
2008-05-27 为 saved_videomode 和 font8x16 增加初始值,以便他们能够跨过 configfile 而正常运作(证实无效)。
2008-05-25 修复探测中断向量 76h 导致 GRUB.EXE 在[清华同方+某网卡]上死机的问题(证实已解决)。
2008-05-22 修复在 GRUB.EXE 中长期存在的一个问题,即由于错误地禁止了 CPU 高速缓存致使机器运行异常缓慢(证实已解决)。
2008-05-21 修复 real_get_cmdline 函数中的堆栈溢出问题,这个 bug 可使 password 命令挂起(证实无效。但 password 命令在后续的版本中已有改动,死机问题已经得到解决)。
2008-05-17 按照原计划重新测试“自动探测磁盘几何参数”的代码。这个代码对于支持 LBA 的存储设备(例如通常的硬盘)是没有影响的。受影响的可能是软盘以及某些不支持 LBA 模式的 USB 设备。注意,并非是设备本身的介质所引起的问题,而是由于主板 BIOS 不支持 LBA 而引起的问题。假如把同一个故障设备插在一个完美支持 LBA 的主板上,那就不会有问题。现在的新机器一般也没有软驱了,因此,那些有可能出问题的设备,一般就是 USB 设备(而且仅当主板对 LBA 的支持不好的时候)。请报告在各种不同的启动方式之下从 USB 设备启动时可能出现的各类异常。在 grub 下用 geometry 命令可以显示出某个设备的主板 BIOS 是否支持 LBA 模式。
2008-05-14 修改了 int5 和 int8 的探测恢复代码,以解决由某个 USB BIOS 的 bug 所引起的 GRUB.EXE 死机的问题。(证实已解决)