|
|
嘿嘿,转发一份教程(取自《grub4dos-help-2011-03-14》)http://bbs.wuyou.net/forum.php?m ... &extra=page%3D1:
制作grub4dos启动ISO镜像
建议使用软件 mkisofs 来制作grub4dos启动iso镜像。不建议使用UltraISO制作或修改grub4dos启动镜像,因修改后可能会出现启动失败的问题。
mkisofs 下载: http://code.google.com/p/mkisofs-md5/downloads/list
mkisofs 是命令行工具,我们需要用到的是主程序 Mkisofs.exe 以及 Cygwin1.dll 两个文件,以及一个自己编写的适合自己情况的bat脚本文件(当然,也可以在命令行下敲入一行长长的命令来制作iso镜像,但我相信没有人愿意这么做,浪费时间不说还有敲错的危险,最重要的是,可能会对mkisofs的作者怨气越来越重:为什么会有这么多参数!开个玩笑)。
必须的文件准备好后按下面的树形图放置:
─grub4dos-------------------主文件夹,任意命名
│
├bin----------------------mkisofs所在文件夹(可以任意命名,但要注意脚本里别写错)
││
│├mkisofs.exe----------mkisofs主程序
││
│└cygwin1.dll-----------mkisofs.exe必需
│
├boot--------------------镜像文件所在文件夹(即这个文件夹下面的所有文件将被打包成镜像)
││
│├grldr------------------仅用来说明
││
│└MENU.LST---------仅用来说明
│
└mkiso.bat---------------下面要学习编写的脚本文件,任意命名
Mkisofs参数说明
mkisofs的参数有很多,通常制作iso镜像只需要其中的一小部分。想看完整参数介绍可以使用 mkisofs -help 命令查看。
注意:参数区分大小写!!!
再多句嘴,先简单说明下ISO9660格式和Joliet格式区别:
ISO-9660:
又简称ISO,当前唯一通用的光盘文件系统,任何类型的计算机都支持。目前有两个标准:Level 1和Level 2。Level 1与DOS兼容,文件名采用传统的8.3格式,而且所有字符只能是26个大写英文字母、10个阿拉伯数字及下划线。Level 2则在Level 1的基础上加以改进,允许使用长文件名,但不支持DOS。注意:ISO 不支持单个大于2G的文件。
Joliet:
Joliet文件系统是扩展文件系统之一,由Microsoft提出和实现。以ISO9660(1988)标准为基础,如果一CD是用Joliet文件系统创建,则它只能在window 9x和window NT4.0 或更新版下读取,但是不能在任何其它平台上读取。在Joliet文件系统下,长文件名允许字符数最多为64,长目录允许数目最多为64。但是文件名加它的完全路径总字符数不能超过120。
mkisofs部分参数列表:
-b FILE, -eltorito-boot FILE Set El Torito boot image name 设置启动文件
-hide GLOBFILE Hide ISO9660/RR file 将指定的目录或文件在ISO 9660系统中设置为隐藏
-hide-list FILE File with list of ISO9660/RR files to hide 将FILE文件中指定的文件或目录均设置为ISO9660系统下隐藏
-hidden GLOBFILE Set hidden attribute on ISO9660 file 设置ISO9660系统下文件或目录属性为隐藏
-hidden-list FILE File with list of ISO9660 files with hidden attribute 设置ISO9660系统下FILE文件中指定的文件或目录属性为隐藏
-hide-joliet GLOBFILE Hide Joliet file 将指定的目录或文件在Joliet系统中设置为隐藏
-hide-joliet-list FILE File with list of Joliet files to hide 将FILE文件中指定的文件或目录均设置为Joliet系统下隐藏
-J, -joliet Generate Joliet directory information 使用Joliet格式的目录与文件名称
-joliet-long Allow Joliet file names to be 103 Unicode characters 支持Joliet格式长文件名
-l, -full-iso9660-filenames Allow full 31 character filenames for ISO9660 names 支持ISO 9660 32字符长度的文件名
-m GLOBFILE, -exclude GLOBFILE Exclude file name 指定的目录或文件名将不会被打包映像文件中
-o FILE, -output FILE Set output file name 设置镜像文件名
-O, -optimize Optimize for iso space(md5 technology) 对ISO镜像空间进行优化(使用md5技术)
-relaxed-filenames Allow 7 bit ASCII except lower case characters (violates ISO9660) 扩展的文件名(违反ISO9660格式规定)
-gbk4dos-filenames Allow 8 bit ASCII GBK standard code characters (violates ISO9660) DOS下支持中文(违反ISO9660格式规定)
-gbk4win-filenames Allow 8 bit ASCII GBK standard code characters (violates ISO9660) WIN下支持中文(违反ISO9660格式规定)
-allow-lowercase Allow lower case characters in addition to the current character set (violates ISO9660) 允许使用小写字母(违反ISO9660格式规定)
-force-uppercase Do not allow lower case characters 文件名大写
-allow-multidot Allow more than one dot in filenames (e.g. .tar.gz) (violates ISO9660) 允许多扩展名(违反ISO9660格式规定)
-v, -verbose Verbose 显示详细信息
-V ID, -volid ID Set Volume ID 设置生成ISO镜像的卷标
-no-emul-boot Boot image is 'no emulation' image 非模拟模式启动
-boot-load-size # Set numbers of load sectors 设置加载扇区数
mkiso.bat 脚本示例:
拿来主义的话只需将蓝字部分(共四处)按自己的实际情况修改即可。
@echo off
::不输出信息
cd /d "%~dp0"
::cmd下跳转到本脚本所在目录
path "%~dp0bin";%path%
::自动寻找本脚本所在目录下是否有名为bin的目录
mkisofs.exe -o PE.ISO -v -V "grub4dos" -hide-joliet boot.catalog -J -joliet-long -relaxed-filenames -gbk4dos-filenames -gbk4win-filenames -no-emul-boot -boot-load-size 4 -b grldr BOOT
:: -o PE.ISO 设置生成的镜像名为PE.ISO,放在本脚本所在目录下
:: -V "grub4dos" 设置镜像卷标为grub4dos
:: -hide-joliet boot.catalog 设置boot.catalog文件在Joliet系统下隐藏(默认生成的镜像根目录下会有boot.catalog文件,为了美观进行隐藏)
:: -boot-load-size 4 设置加载扇区数为4,即2048字节
:: -b grldr 设置镜像引导文件为镜像根目录下的grldr文件
:: BOOT 镜像源文件所在目录名,这个目录中的所有文件将被打包成镜像 |
|