genisoimage命令用法

功能说明:建立ISO 9660映像文件。  常用命令:genisoimage -o imagename.iso file 语 法:mkisofs [-adDfhJlLNrRTvz][-print-size][-quiet][-A ][-abstract ][-b ][-biblio ][-c ][-C ][-copyright ][-hide ][-hide-joliet ][-log-file ][-m ][-M ][-o ][-p ][-P ][-sysid ][-V ][-volset ][-volset-size ][-volset-seqno ][-x ][目录或文件]  补充说明:mkisofs可将指定的目录与文件做成ISO 9660格式的映像文件

基本用法:

mkisofs (or genisoimage) -o image.iso /path/of/folder

如有中文不能显示尝试(建议使用):

mkisofs (or genisoimage) -J -o image.iso /path/of/folder

完整命令查看:

mkisofs (or genisoimage) --help 或 man genisoimage

命令: mkisofs(make iso file system)

功能说明:建立ISO 9660映像文件。
  语 法:mkisofs [-adDfhJlLNrRTvz][-print-size][-quiet][-A <应用程序ID>][-abstract <摘要文件>][-b <开机映像文件>][-biblio ][-c <开机文件名称>][-C <盘区编号,磁区编号>][-copyright <版权信息文件>][-hide <目录或文件名>][-hide-joliet <文件或目录名>][-log-file <记录文件>][-m <目录或文件名>][-M <开机映像文件>][-o <映像文件>][-p <数据处理人>][-P <光盘发行人>][-sysid <系统ID >][-V <光盘ID >][-volset <卷册集ID>][-volset-size <光盘总数>][-volset-seqno <卷册序号>][-x <目录>][目录或文件]
补充说明:mkisofs可将指定的目录与文件做成ISO 9660格式的映像文件,以供刻录光盘。
参 数:
-a或--all mkisofs通常不处理备份文件。使用此参数可以把备份文件加到映像文件中。
-A<应用程序ID>或-appid<应用程序ID> 指定光盘的应用程序ID。
-abstract<摘要文件> 指定摘要文件的文件名。
-b<开机映像文件>或-eltorito-boot<开机映像文件> 指定在制作可开机光盘时所需的开机映像文件。
-biblio 指定ISBN文件的文件名,ISBN文件位于光盘根目录下,记录光盘的ISBN。
-c<开机文件名称> 制作可开机光盘时,mkisofs会将开机映像文件中的全-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

###############################################
#################################################

 mkisofs(8) 程序作为 sysutils/cdrtools port 的一部分, 将生成 ISO 9660 文件系统,其中包含 UNIX? 命名空间中的文件名。最简单的用法是:
# mkisofs -o imagefile.iso /path/to/tree
这个命令将创建一个包含 ISO9660 文件系统的 imagefile.iso 文件,它是目录树 /path/to/tree 的一个副本。 在处理过程中,它将文件名称映射为标准的 ISO9660 文件系统的文件名,将排除那些不典型的 ISO 文件系统的文件。
有很多选项能够用来克服那些限制。特别的,-R 选项能够启用 Rock Ridge 扩展一般的 UNIX 系统,-J 选项能启用用于 Microsoft 系统的 Joliet 扩展,-hfs 选项能用来创建用于 Mac OS? 系统的 HFS 文件系统。
    RockRidge格式是ISO9660格式的延伸,支持文件名字母的大小写、符号字符、长文件名以及超过8层的目录结构。RockRidge使CD-ROM能兼容Unix的文件系统,因此它在Unix系统上已经被广泛地使用。
    对于那些即将要在 FreeBSD 系统中使用 CD 的人来说,-U 选项能用来消除所有文件名的限制。当使用-R 选项时,它会产生一个 文件系统映像,它与您从那儿启动 FreeBSD 树是一样的,虽然它在许多方面也违反了 ISO 9660 的标准。
最后一个常用的选项是 -b。 它用来指定启动映像的位置,用以生成 “El Torito” 启动 CD。 这个选项使用一个参数, 用以指定将写入 CD 的目录的根。默认情况下, mkisofs(8) 会以常说的 “软盘模拟” 方式来创建 ISO, 因此它希望引导映像文件的尺寸恰好是 1200, 1440 或 2880 KB。 某些引导加载器, 例如 FreeBSD 发行版磁盘, 并不使用模拟模式;这种情况下, 需要使用 -no-emul-boot 选项。 因此, 如果 /tmp/myboot 是一个包含了启动映像文件 /tmp/myboot/boot/cdboot 的可引导的 FreeBSD 系统,您就可以使用下面的命令生成 ISO 9660 文件系统映像 /tmp/bootable.iso:
# mkisofs -R -no-emul-boot -b boot/cdboot -o /tmp/bootable.iso /tmp/myboot
完成这些工作之后, 如果您的内核中配置了 md,就可以用下列命令来挂接文件系统了:
# mdconfig -a -t vnode -f /tmp/bootable.iso -u 0
# mount -t cd9660 /dev/md0 /mnt
可以发现 /mnt 和 /tmp/myboot 是一样的。

1.安装所需的软件包:
[root@localhost ~]# yum -y install createrepo mkisofs isomd5sum

2.根据当前系统已安装的软件包生成安装系统所需要的rpm列表
[root@localhost ~]# awk '/Installing/{print $2}' install.log |sed 's/^[0-9]*://g' >/root/packages.list

3.建立定制所需要的目录并把除Packages目录以外的文件复制到新的系统目录

[root@localhost ~]# mkdir  /mnt/cdrom
[root@localhost ~]# mkdir -p /data/OS
[root@localhost ~]# mount /dev/cdrom /mnt/cdrom/
[root@localhost ~]# rsync -a --exclude=Packages /mnt/cdrom/ /data/OS/ 
[root@localhost ~]# mkdir /data/OS/Packages

4.使用脚本自动复制所需要的RPM包到新建立的光盘目录中Packages

[root@localhost ~]# vim cprpms.sh

 

1
2
3
4
5
6
7
8
9
10
11
12
13
#!/bin/bash  
SRC_RPMS=/mnt/cdrom/Packages     
DST_RPMS=/data/OS/Packages     
packages_list=/root/packages.list 
number_of_packages=`cat $packages_list | wc -l` 
i=1 
while [ $i -le $number_of_packages ] ; 
 do 
    name=`head -n $i $packages_list | tail -n -1` 
         echo "cp $SRC_RPMS/$name* $DST_RPMS/"  
         cp $SRC_RPMS/$name* $DST_RPMS/         
    i=`expr $i + 1` 
done

 

 [root@localhost ~]# sh cprpms.sh

5.配置kickstart脚本
[root@localhost ~]# vim /data/OS/isolinux/ks.cfg

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
#platform=x86, AMD64, or Intel EM64T 
# Firewall configuration 
firewall --disabled 
# Install OS instead of upgrade 
install 
# Use CDROM installation media 
cdrom 
# Root password default is "redhat" 
rootpw --iscrypted $1$JJuQiyTA$fbBF2fBqHB1P5PpFNy5f.1
# System authorization information 
auth  --useshadow  --passalgo=md5
# Use text mode install 
text 
firstboot --disable 
# System keyboard 
keyboard us 
# System language 
lang en_US 
# SELinux configuration 
selinux --disabled 
# Do not configure the X Window System 
skipx 
# Installation logging level 
logging --level=info
# Reboot after installation 
reboot 
# System timezone 
timezone  Asia/Shanghai 
# Network information 
network  --bootproto=dhcp --device=eth0 --onboot=on –noipv6 
# System bootloader configuration 
bootloader --location=mbr
# Clear the Master Boot Record 
zerombr 
# Partition clearing information 
clearpart --all --initlabel 
# Disk partitioning information 
ignoredisk --only-use=sda
part /boot --fstype="ext4" --size=1024
part swap --recommended
part / --fstype="ext4" --grow --size=1
%packages
@additional-devel
@base
@core
@debugging
@basic-desktop
@desktop-debugging
@desktop-platform
@desktop-platform-devel
@development
@directory-client
@eclipse
@emacs
@fonts
@general-desktop
@graphical-admin-tools
@graphics
@input-methods
@internet-browser
@java-platform
@legacy-x
@network-file-system-client
@performance
@perl-runtime
@print-client
@remote-desktop-clients
@server-platform
@server-platform-devel
@server-policy
@tex
@technical-writing
@virtualization
@virtualization-client
@virtualization-platform
@workstation-policy
@x11
libgcrypt-devel
libXinerama-devel
openmotif-devel
libXmu-devel
xorg-x11-proto-devel
startup-notification-devel
libgnomeui-devel
libbonobo-devel
junit
libXau-devel
libXrandr-devel
popt-devel
gnome-python2-desktop
libdrm-devel
libxslt-devel
libglade2-devel
gnutls-devel
mtools
pax
python-dmidecode
oddjob
wodim
sgpio
genisoimage
device-mapper-persistent-data
systemtap-client
abrt-gui
desktop-file-utils
ant
rpmdevtools
jpackage-utils
rpmlint
samba-winbind
certmonger
pam_krb5
krb5-workstation
netpbm-progs
openmotif
libXmu
libXp
perl-DBD-SQLite
libvirt-java
%end

 

 6.让系统从kickstart配置启动安装
[root@localhost OS]# vim /data/OS/isolinux/isolinux.cfg   #备注这里需要给执行权限,才可以编辑,默认只读;

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
default ks
prompt 1
timeout 60
display boot.msg
F1 boot.msg
F2 options.msg
F3 general.msg
F4 param.msg
F5 rescue.msg
label linux
kernel vmlinuz
append initrd=initrd.img
label text
kernel vmlinuz
append initrd=initrd.img text
label ks
kernel vmlinuz
append ks=cdrom:/isolinux/ks.cfg initrd=initrd.img
label local
localboot 1
label memtest86
kernel memtest
append -

 

 7.生成rpm包的依赖关系
[root@localhost ~]# cd /data/OS/
[root@localhost OS]# createrepo -g repodata/*-comps.xml /data/OS/
[root@localhost OS]# declare -x discinfo=`head -1 .discinfo`
[root@localhost OS]# createrepo -u "media://$discinfo" -g repodata/*-comps.xml /data/OS/

8.生成ISO镜像文件
[root@localhost ~]# cd /data/OS/
[root@localhost OS]# mkisofs -R -J -T -r -l -d -joliet-long -allow-multidot \
 -allow-leading-dots -no-bak -o /data/CentOS-6.7-x86_64.iso \
 -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot \
 -boot-load-size 4 -boot-info-table /data/OS

9.生成MD5校验码
[root@localhost ~]# implantisomd5 /data/CentOS-6.3-x86_64.iso

10.测试

posted @ 2018-05-30 00:13  konglingbin  阅读(3618)  评论(0编辑  收藏  举报