注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

itoedr的it学苑

记录从IT文盲学到专家的历程

 
 
 

日志

 
 

linux系统下启动光盘制作工具:mkisofs/genisoimage 使用说明  

2014-07-14 22:54:04|  分类: 容灾备份 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

**************************示例说明****************************
genisoimage -o cdrom.iso /iso/*.*       /xorrisofs -o  outimage.iso  /dir/mydir/
说明:将/iso目录下的所有文件打包成cdrom.iso;
genisoimage是mkisofs/xorrisofs的升级版本;
意义:当然将/iso改为/,只要保证系统可以自动启动,就可实现自己系统的备份与分发了。
*****************************************************************

命令名称:xorrisofs/genisoimage(make iso file system)/xorrisofs -o /home/test.iso /home/myhome
功能说明:建立ISO 9660映像文件。

mkisofs/xorrisofs/genisoimage命令行格式
mkisofs [-adDfhJlLNrRTvz][-print-size][-quiet][-A <应用程序ID>][-b <开机映像文件>][-c <开机文件名称>][-hide <目录或文件名>][-hide-joliet <文件或目录名>][-m <目录或文件名>][-M <映像文件>][-o <映像文件>][-sysid <系统ID >][-V <volume ID >][-x <目录>][目录或文件]
 
   基本参数
-o 
设置输出文件名
-V
Set Volume ID
-v
verbose
-m <目录或文件名>
or
-exclude <目录或文件名>


排除某目录或文件,其将不会放入映像文件中
-M <映像文件>
or
-prev-session <映像文件>
Iso文件合并
与指定的映像文件合并
  启动光盘参数
-no-emul-boot 
Boot image is 'no emulation' image   
非模拟模式启动
-b <开机映像文件>
or
-eltorito-boot <开机映像文件>
指定在制作启动光盘时所需的开机映像文件
-b:启动image

-c <开机文件名称>
-c:cat文件
制作启动光盘时,mkisofs会将开机映像文件中的全-eltorito-catalog*文件的全部内容作成一个文件
-J或-joliet 
Generate Joliet directory information  
生成Joliet 格式信息
Joliet是用于在 Windows 环境下使用的光盘
-R或-rock
Generate Rock Ridge directory information  
生成Rock Ridge目录格式信息
Rock Ridge用于 UNIX/Linux 环境下的光盘
文件名区分大小写,同时记录文件长度
-r或-rational-rock 
使用Rock Ridge
并开放全部文件的读取权限
  其他参数
-hide-rr-moved
Rename RR_MOVED to .rr_moved in Rock Ridge tree
 隐藏 Unix RR 目录 
-hide  <目录或文件名> 
使指定的目录或文件在ISO 9660或Rock RidgeExtensions的系统中隐藏
-hide-joliet <目录或文件名> 使指定的目录或文件在Joliet系统中隐藏
-O 采用 MD5 空间优化
-C <盘区编号,盘区编号> 将许多节区合成一个映像文件时,必须使用此参数
-l
-relaxed-filenames      
-gbk4dos-filenames      
-gbk4win-filenames      
允许长文件名
扩展的文件名
DOS下支持中文
WIN下支持中文

其它两个注意事项:
        
         1)要做 Unix/Linux 下的数据盘或者开机启动盘,必须使用 Unix Rock Ridge 格式(genisoimage -r), 这种格式可以保存文件相关的权限;
          2)要所DOS/WIN下的光盘,用Joliet格式(-J)

***************************
参数解析说明:
  -a或--all   mkisofs通常不处理备份文件。使用此参数可以把备份文件加到映像文件中。
  -A<应用程序ID>或-appid<应用程序ID>   指定光盘的应用程序ID。
  -abstract<摘要文件>   指定摘要文件的文件名。
  -b<开机映像文件>或-eltorito-boot<开机映像文件>   指定在制作可开机光盘时所需的开机映像文件。
  -biblio<ISBN文件>   指定ISBN文件的文件名,ISBN文件位于光盘根目录下,记录光盘的ISBN。
  -c<开机文件名称>   制作可开机光盘时,genisoimage会将开机映像文件中的全-eltorito-catalog<开机文件名称>全部内容作成一个文件。
  -C<盘区编号,盘区编号>   将许多节区合成一个映像文件时,必须使用此参数。
  -copyright<版权信息文件>   指定版权信息文件的文件名。
  -d或-omit-period   省略文件后的句号。
  -D或-disable-deep-relocation   ISO 9660最多只能处理8层的目录,超过8层的部分,RRIP会自动将它们设置成ISO 9660兼容的格式。使用-D参数可关闭此功能。
  -f或-follow-links   忽略符号连接。
  -h   显示帮助。
  -hide<目录或文件名>   使指定的目录或文件在ISO 9660或Rock RidgeExtensions的系统中隐藏。
  -hide-joliet<目录或文件名>   使指定的目录或文件在Joliet系统中隐藏。
  -J或-joliet   使用Joliet格式的目录与文件名称。
  -l或-full-iso9660-filenames   使用ISO 9660 32字符长度的文件名。
  -L或-allow-leading-dots   允许文件名的第一个字符为句号。
  -log-file<记录文件>   在执行过程中若有错误信息,预设会显示在屏幕上。
  -m<目录或文件名>或-exclude<目录或文件名>   指定的目录或文件名将不会房入映像文件中。
  -M<映像文件>或-prev-session<映像文件>   与指定的映像文件合并。
  -N或-omit-version-number   省略ISO 9660文件中的版本信息。
  -o<映像文件>或-output<映像文件>   指定映像文件的名称。
  -p<数据处理人>或-preparer<数据处理人>   记录光盘的数据处理人。
  -print-size   显示预估的文件系统大小。
  -quiet   执行时不显示任何信息。
  -r或-rational-rock   使用Rock Ridge Extensions,并开放全部文件的读取权限。
  -R或-rock   使用Rock Ridge Extensions。
  -sysid<系统ID>   指定光盘的系统ID。
  -T或-translation-table   建立文件名的转换表,适用于不支持Rock Ridge Extensions的系统上。
  -v或-verbose   执行时显示详细的信息。
  -V<光盘ID>或-volid<光盘ID>   指定光盘的卷册集ID。
  -volset-size<光盘总数>   指定卷册集所包含的光盘张数。
  -volset-seqno<卷册序号>   指定光盘片在卷册集中的编号。
  -x<目录>   指定的目录将不会放入映像文件中。
  -z   建立通透性压缩文件的SUSP记录,此记录目前只在Alpha机器上的Linux有效。

*******************************
一种启动光盘的制作方法: 在GRUB中,可以利用 stage2_eltorito 来制作启动光盘:
*******************************
genisoimage -R -b boot/grub/stage2_eltorito -no-emul-boot -boot-load-size 4 -boot-info-table -o grub.iso iso

       #stage2_eltorito和menu.lst应该放在光盘的/boot/grub目录里。

        在GRUB4DOS中,可以利用 grldr 来制作启动光盘。
        制作方法有两种:

genisoimage -R -b grldr -no-emul-boot -boot-load-seg 0x1000 -o bootable.iso iso_root
genisoimage -R -b grldr -no-emul-boot -boot-load-size 4 -o grldr.iso iso_root
                             grldr和menu.lst应该放在光盘的根目录里。

           第一种方法告诉 BIOS,希望它能够装入整个 GRLDR 文件到内存。装入内存后,BIOS 还应该正确设置堆栈,使得不至于把堆栈设置到 GRLDR 的程序体内,造成冲突。一般情况下,BIOS 做到这一点很容易,因为它可以设置堆栈指针为装入的起始地址。但也不排除存在 BUGGY BIOS 的可能性。

          有些 BIOS 不完全符合可启动的 CDROM 规范,比如 VirtualPC 的就是的。这类 BIOS 只是装入了一部分 GRLDR 扇区到内存,典型的可能只装入了一个扇区(2048 字节的大扇区)到内存。不过我们的代码已经替这些 BUGGY BIOS 打了补丁。只要这些 BIOS 能够设置正确的堆栈,不至于和装入内存中的 GRLDR 扇区数据产生冲突就 OK 了。

          上述第一种制作光盘的方法,应该没有多大问题了。这种方法很有可能适应于所有的 BIOS。

             第二种方法本身就只要求 BIOS 装入一个 CDROM 扇区到内存(等同于 4 个 512 字节的小扇区)。这种方法是最保守的,没有理由会失败了。微软的 win2000 启动光盘就是这么做的,isolinux 和 stage2_eltorito 也都是这么做的。如果这种方法失败了,那么 win2000,isolinux 和 stage2_eltorito 应该都会失败的。

           对于第二种方法,我们不需要 -boot-info-table 这个参数。但是允许你用这个参数(用了和没用是一样的,我们的引导代码将忽略由这个参数所传递的数据结构)。

          对于第一种方法也一样,不需要 -boot-info-table 这个参数,同时也是允许你用这个参数(用了和没用是一样的,我们的引导代码将忽略由这个参数所传递的数据结构)。

    
实例分析之二:
genisoimage -r -T -J -V "make iso " -b /isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -v -o myiso.iso ./myCD
这个实例是用来制作一个安装盘。每一项的功能可以根据上面的选项得知。
其是
 -no-emul-boot:Boot image is 'no emulation' image即非模拟模式启动
-boot-load-size:Set numbers of load sectors 即设置载入部分的数量
-boot-info-table:Patch boot image with info table 在启动的图像中显示信息

实例三:制作一个通用的ISO镜像
       #mkisofs -a -l -J -L -r -o filename.iso /directory    #将/directory这个目录完全打包进入filename.iso这个文件中。
说明:这样就能做出一个在windows和linux(或者其他UNIX)上面都能使用的ISO镜像了。

       -a或--all genisoimage通常不处理备份文件。使用此参数可以把备份文件加到映像文件中。
       -l或-full-iso9660-filenames 使用ISO 9660 32字符长度的文件名
       -L或-allow-leading-dots 允许文件名的第一个字符为句号。
      -J或-joliet 使用Joliet格式的目录与文件名称。
      -r或-rational-rock 使用Rock Ridge Extensions,并开放全部文件的读取权限。
      -o<映像文件>或-output<映像文件> 指定映像文件的名称。

实例四:启动光盘的制作的注意事项
      要做 Unix/Linux 下的数据盘或者开机启动盘,必须使用 Unix Rock Ridge 格式(mkisofs -r), 这种格式可以保存文件相关的权限
        要所DOS/WIN下的光盘,用Joliet格式(-J)

***********************************
生成iso文件的几种方法
***********************************
制作iso镜像的方法:
把/dev/cdrom目录制作为镜像,名字为/root/rh1.iso
方法1:dd if=/dev/cdrom of=/root/rh1.iso
方法2:#cat /dev/cdrom >;/root/1.iso
方法3:genisoimage -r -o mybackup.iso /home/myhome
              xorrisofs -o /home/test.iso /home/myhome
方法4:cp -r /home/user   name.iso
方法5:......
  评论这张
 
阅读(546)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017