无忧启动论坛

标题: 分享笔记:制作grub4dos引导的光盘镜像之原理和方法 [打印本页]

作者: zyphio    时间: 2011-1-4 20:47
标题: 分享笔记:制作grub4dos引导的光盘镜像之原理和方法
分享笔记:制作grub4dos引导的光盘镜像之原理和方法

原理:
光盘是从第17个扇区(16扇区)开始引导,光盘前16个扇区(0-15扇区)是保留扇区,一般是空白的,光盘16扇区存储光盘标识,光盘从17扇区开始引导,并根据17扇区描述找到20扇区的启动目录,并根据20扇区启动目录找到启动镜像,制作GRUB引导的光盘,就是把grldr当做镜像写入到光盘的28扇区和以后的连续扇区中。

方法:
找个可以编辑光盘镜像的软件,Windows下推荐免费的CDBurner XP或ImgBurn,也可以使用UltraISO,以下UltraISO为例。

1.把grldr加上扩展名,grldr.bif(只是为了能在UltraISO访问);
2.打开UltraISO软件,进入“启动”-“加载引导文件”功能,把grldr.bif写入光盘引导扇区;
3.打开“文件”-“属性”,把光盘镜像文件系统属性中RockRidge勾上,这是最重要的,以防大小写问题而无法找到各个启动配置文件,其它的保持默认,推荐只选上ISO 9660(Windows/Unix(31),省略ISO 9660版本号)、Joliet(Joliet 标准(64))!
4.把menu.lst放到光盘相应目录,如/boot/grub/menu.lst(可以通过修改grldr内置菜单定义),即可实现用grub引导光盘并读取外置的menu.lst(如果把menu.lst内置到grldr中再写入光盘引导扇区,则可以让光盘文件布置看起来更加简洁)。



[ 本帖最后由 zyphio 于 2011-1-8 21:30 编辑 ]
作者: sht123960585    时间: 2011-1-4 21:57
学习了,顶你,感谢分享,无忧有你更精彩
作者: 81129950    时间: 2011-1-5 10:13
顶一下,我前两天做了一张DVD的启动盘,经实验,在menu.lst中路径要用大写,在拖入文件时,先把mulist.lst和中文字体文件与message先拖入后再拖入其它文件,不然先出现的菜单是乱码,我前两天把冷风的那个0808的2003系统与深度6.2合到一个盘里了,还加了一个天意的2003、7与puppy的那个PE,还空间还多,再附了三个死性不改做的gho,刚4G。再集了一个论坛大大的SRS处理工具,有需要的我传上来大家试试。还有一点忘说了,那个grldr可以不用改名,在加载引导文件时,在那个打开对话框里输入*.*就可以看到grldr。

[ 本帖最后由 81129950 于 2011-1-5 10:19 编辑 ]
作者: zyphio    时间: 2011-1-8 20:40
原帖由 81129950 于 2011-1-5 10:13 发表
顶一下,我前两天做了一张DVD的启动盘,经实验,在menu.lst中路径要用大写,在拖入文件时,先把mulist.lst和中文字体文件与message先拖入后再拖入其它文件,不然先出现的菜单是乱码,我前两天把冷风的那个0808的 ...



第一、menu.lst、message和fornt等文件不用区分大小写,grldr都可以找到……

第二、先拖后拖无所谓,特别是对ISO进行文件优化,根目录的文件都会在优化到光盘的比较靠前的扇区中……

第三、grldr可以任意改名,只是长度有限制,但只要和指向grldr的引导扇区或配置中的名字一样即可……像一些某些引导程序更无所谓文件名,只要不与文件系统冲突就好……另外……Win7标准格式化后主分区PBR会默认都指向bootmgr,所以,你只要把grldr改为bootmgr也可以启动……

第四、之所以会出现你这种情况是因为你对ISO的文件系统没配置好……
作者: zyphio    时间: 2011-1-8 20:49
标题: 回复 #3 81129950 的帖子
这几天也在帮朋友做合盘……

包括了WinPE3.0\WinPE2.1\WinPE2003\Linux\Dos,还集成了近7000个文件的XP安装目录i386,以及近3G的Win7安装目录等,经过测试……最后我把ISO的文件系统设置如下……才不会在出现重定位目录或找不到文件或保存不了等问题……你看一下就明白了…………

另外,Win7原版光盘的文件系统是UDF且在UltraISO中不可改……

[ 本帖最后由 zyphio 于 2011-1-8 20:54 编辑 ]

图像 1.jpg (31.76 KB, 下载次数: 265)

图像 1.jpg

作者: 81129950    时间: 2011-1-9 19:59
呵呵,受教了,学习学习,我对UltraISO配置ISO文件系统不熟,楼主可否详细点地讲解一下上面那张图各项的含义否,让大家都了解下。
作者: 2010armlin    时间: 2011-1-16 10:25
收藏了!有时间看看!不错的东西!
作者: D@peng    时间: 2011-1-16 21:46
受教了,学习学习不错的东西!
作者: 2010flybing    时间: 2011-1-19 14:10
来看看,得储备下..
作者: cycyc    时间: 2011-1-24 11:03
可不可以给一个实例,特别是包含menu.lst的实例?
作者: chenall    时间: 2011-1-24 11:22
楼主的方法很容易出现因为大小写问题而导致GRUB4DOS无法找到文件。

建议:
1.RockRidge 不要使用。
2.iso9660 使用标准的格式(不要允许大小写)

这样只要在菜单中路径全部用大写就保证万无一失。

除非你对光盘文件系统比较熟悉,否则我不建议在光盘上允许大小写文件名。
作者: devilma    时间: 2011-1-27 00:23
那本来是小写的文件名,需不需要改成大写的,还是在菜单中改成大写的?
作者: loveks    时间: 2011-1-27 09:31
经验之谈。受益颇深,谢谢
作者: 81129950    时间: 2011-1-27 09:43
原帖由 devilma 于 2011-1-27 00:23 发表
那本来是小写的文件名,需不需要改成大写的,还是在菜单中改成大写的?

菜单中得大写,要不会找不到的~!
# This is a sample menu.lst file. You should make some changes to it.
# The old install method of booting via the stage-files has been removed.
# Please install GRLDR boot strap code to MBR with the bootlace.com
# utility under DOS/Win9x or Linux.
color blue/green yellow/red white/magenta white/magenta
timeout 30
default /default
/BOOT/UNIFONT /BOOT/FONT1.BIN
gfxmenu /MESSAGE
title find and load NTLDR of Windows NT/2K/XP
fallback 1
find --set-root --ignore-floppies --ignore-cd /ntldr
map () (hd0)
map (hd0) ()
map --rehook
find --set-root --ignore-floppies --ignore-cd /ntldr
chainloader /ntldr
savedefault --wait=2
title find and load BOOTMGR of Windows VISTA
fallback 2
find --set-root --ignore-floppies --ignore-cd /bootmgr
map () (hd0)
map (hd0) ()
map --rehook
find --set-root --ignore-floppies --ignore-cd /bootmgr
chainloader /bootmgr
savedefault --wait=2
title find and load CMLDR, the Recovery Console of Windows NT/2K/XP
fallback 3
find --set-root --ignore-floppies --ignore-cd /cmldr
map () (hd0)
map (hd0) ()
map --rehook
find --set-root --ignore-floppies --ignore-cd /cmldr
chainloader /cmldr
#####################################################################
# write string "cmdcons" to memory 0000:7C03 in 2 steps:
#####################################################################
# step 1. Write 4 chars "cmdc" at 0000:7C03
write 0x7C03 0x63646D63
# step 2. Write 3 chars "ons" and an ending null at 0000:7C07
write 0x7C07 0x00736E6F
savedefault --wait=2
title 安装盛世雄风 windows2003 080808 LEOPARD美化版
find --set-root /GSQYWXH
chainloader /A2K3/SETUPLDR.BIN
title 安装盛世雄风 windows2003 080808 个人精简版
find --set-root /GSQYWXH
chainloader /B2K3/SETUPLDR.BIN
title 安装盛世雄风 windows2003 080808 VISTA美化版
find --set-root /GSQYWXH
chainloader /C2K3/SETUPLDR.BIN
title 安装盛世雄风 windows2003 080808 全功能版
find --set-root /GSQYWXH
chainloader /D2K3/SETUPLDR.BIN
title 深度windowsxp 6.2个人精简安装版
find --set-root /GSQYWXH
chainloader /I386/SETUPLDR.BIN
title 深度windowsxp 6.2个人精简克隆版
fallback 7
find --set-root /EZBOOT/GHOSTXP.IMG
map --mem /EZBOOT/GHOSTXP.IMG
chainloader (fd0)+1
savedefault --wait=2
title 启动天意PE维护系统
fallback 8
find --set-root /BOOT/ISOLINUX.BIN
chainloader /BOOT/ISOLINUX.BIN
savedefault --wait=2
title commandline
commandline
title floppy (fd0)
chainloader (fd0)+1
rootnoverify (fd0)
title back to dos
quit
title reboot
reboot
title halt
halt
title MAXDOS.IMG
find --set-root --ignore-floppies /BOOT/IMGS/MAXDOS.IMG
map --mem /BOOT/IMGS/MAXDOS.IMG (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
这个是我合盘时用过的一个菜单,呵呵,有且只有过这么一次。用默认菜单改的。

[ 本帖最后由 81129950 于 2011-1-27 09:45 编辑 ]
作者: devilma    时间: 2011-2-15 22:56
不错,谢谢楼上的,学习了
作者: zyphio    时间: 2011-5-31 10:43
偶菜鸟,难免错漏……谢谢各楼给的意见啊……
作者: wxgx    时间: 2011-6-3 06:51
原帖由 81129950 于 2011-1-27 09:43 发表

菜单中得大写,要不会找不到的~!
# This is a sample menu.lst file. You should make some changes to it.
# The old install method of booting via the stage-files has been removed.
# Please insta ...

正在学习OEMXP多系统安装光盘合盘,能否分享您的合盘制作过程?
谢谢!
作者: 2010fengyun    时间: 2011-6-6 02:01
虽然我用不上。从不制作光盘。但是只要是分享的,我能看见就一定要顶!
作者: parsons    时间: 2011-6-18 12:00
注意 grldr 導入 ISO 裡面 , 使用 hex 編輯器看這個 ISO
menu.lst 這幾個字究竟是大寫還是小寫

[ 本帖最后由 parsons 于 2011-6-19 10:56 编辑 ]
作者: holl784    时间: 2013-2-2 20:17
谢谢楼主的分享,学习了。
作者: 2011zsrzsr    时间: 2013-2-3 13:19
这个值得收藏!!!  ……
作者: 2011734971013    时间: 2013-2-9 16:15
学习了 但不知win光盘是怎么引导的




欢迎光临 无忧启动论坛 (http://bbs.c3.wuyou.net/) Powered by Discuz! X3.3