VMware给没安装VMTools的系统封装ISO以送入文件

发布于:2024-06-11 ⋅ 阅读:(29) ⋅ 点赞:(0)

VMware给没安装VMTools的系统封装ISO以送入文件,其实不需要其它工具

VMware自带mkisofs,不过mkisofs已经停止更新,最大的问题是不支持中文,也不支持UEFI引导记录,但一般已经够用了,除此之外还可以使用Windows ADK自带的oscdimg命令封装ISO,Linux系统也可以使用mkisofs的增强版本genisoimage

比较常见的需要给没安装VMTools的系统封装ISO以送入文件的场景:

  • Windows NT 4.0在安装VMTools前需送入SP6a安装包
  • Windows 2000在安装VMTools前需送入KB835732(震荡波补丁,同时更新了系统核心文件,VC++2008运行库需要)或KB891861(SP4更新汇总1)补丁
  • Windows 7、Windows Server 2008 R2在安装VMTools前需送入KB4474419、KB4490628(SHA-2支持更新)补丁

mkisofs单纯封装文件的方法很简单:

set PATH=C:\Program Files (x86)\VMware\VMware Workstation;%PATH%
mkisofs -J -udf -r -D -o isofile.iso isoroot

Linux下使用genisoimage:

genisoimage -J -udf -r -D -o isofile.iso isoroot

其中:

  • ISO9660默认仅支持DOS的大写8.3文件名
  • -J:附加Joliet文件系统(Windows 95、Windows NT 4.0光盘文件系统,支持64字符UTF-16LE长文件名)
  • -udf:附加UDF文件系统(Windows 98、Windows 2000光盘文件系统,支持255字符UTF-16LE长文件名)
  • -r:附加uid/gid/mode规范化(-R:uid/gid/mode保持原样)的Rock Ridge文件系统(Unix光盘文件系统,支持255字节长文件名)
  • -D:不进行深路径丢弃/重定向(默认没有-r/-R的情况下丢弃(有-J/-udf也不行),有-r/-R的情况下ISO9660文件系统下重定向到RR_MOVED,但实际毫无必要,oscdimg并不会这么干)
  • -o isofile.iso:输出文件名
  • isoroot:要封装的文件夹

另外一些可能有用的参数:

  • -l(小写L):启用Windows NT 3.51的ISO9660大写31字节长文件名,但会不兼容DOS
  • -V <LABEL>:设置卷标为<LABEL>

中文文件名支持:

  • mkisofs:不支持中文文件名
  • genisoimage:ISO9660仅支持ASCII文件名,Joliet/UDF支持UTF-16LE中文文件名,Rock Ridge支持UTF-8中文文件名
  • oscdimg:ISO9660支持CP936中文文件名,Joliet/UDF支持UTF-16LE中文文件名

可引导光盘的相关参数可以通过mkisofs/genisoimage -help或man mkisofs/genisoimage了解

mkisofs不支持UEFI引导记录,生成带有UEFI引导记录的iso需要使用genisoimage/oscdimg

如果使用oscdimg的话,需要安装Windows ADK,然后使用下面的命令:

set PATH=C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\amd64\Oscdimg;%PATH%
oscdimg -j1 -u1 -udfver102 isoroot isofile.iso

其中:

  • -j1:附加Joliet文件系统
  • -u1:附加UDF文件系统
  • -udfver102:使用Windows 98版本的UDF
  • isoroot:要封装的文件夹
  • isofile.iso:输出文件名

另外一些可能有用的参数:

  • -nt:启用Windows NT 3.51的ISO9660大写31字节长文件名
  • -j2:使用纯Joliet文件系统
  • -u2:使用纯UDF文件系统
  • -udfver150:使用Windows 2000版本的UDF(默认)
  • -udfver200:使用Windows XP版本的UDF
  • -l<LABEL>(小写L):设置卷标为<LABEL>(-l和<LABEL>之间没有空格)

可引导光盘的相关参数可以通过oscdimg -help boot了解