免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: 一生有你llx
打印 上一主题 下一主题

[系统管理] Linux基础命令 [复制链接]

论坛徽章:
1
15-16赛季CBA联赛之福建
日期:2018-12-10 14:43:45
21 [报告]
发表于 2018-10-26 06:50 |只看该作者

mktemp
      创建临时文件或者目录,这样的创建方式是安全的。此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。
1、语法
      mktemp [选项]  [TEMPLATE]

2、选项列表
选项
说明
--version
显示命令版本信息
--help
显示帮助信息
-d | --directory
创建目录
-u | --dry-run
不要创建任何东西,只要打印一个名字(不安全)
-q | --quiet
发生错误的时候不显示提示信息
--suffix=SUFF
附加SUFF到模板中。SUFF不能包含斜杠。如果模板不以X结尾,则使用此选项。
--tmpdir[=dir]
指定临时文件的路径,如果tmpdir后面没有路径,那么使用变量$TMPDIR;如果这个变量也没指定,那么临时文件创建在/tmp目录下。使用此选项,模板不能是绝对名称。与“-t“不同,模板可能包含斜杠,但mktemp只创建最终组件
-p DIR
使用DIR作为前缀
-t
将模板解释为一个相对于目录$TMPDIR(如果设置)的单个文件名组件;否则通过-p指定的目录;或者使用/tmp(-t已经弃用)
TEMPLATE
临时文件名,名字中必须包含至少3个字母X。如果没有指定,那么默认是tmp.XXXXXXXXXX

3、实例
1)创建临时文件
[root@localhost weijie]# mktemp wj123.XXXX       //名字包含4X
wj123.kpET
You have new mail in /var/spool/mail/root
[root@localhost weijie]# mktemp wj123.XXXXXX     //名字包含6X
wj123.oH2o4P
[root@localhost weijie]# ls
1.c  wj123.kpET wj123.oH2o4P
2)创建临时目录
[root@localhost weijie]# mktemp -d wjtp         //名字中没有X
mktemp: 模板"wjtp" X 太少
[root@localhost weijie]# mktemp -d wjtpxxx      //名字中没有X,这里可以看到X必须是大写的
mktemp: 模板"wjtpxxx" X 太少
[root@localhost weijie]# mktemp -d wjtpXXX      //创建成功
wjtpflR
[root@localhost weijie]# ls -l
总用量 4
-rw-r--r-- 1 root root    0 9月   7 09:11 1.c
-rw------- 1 root root    0 9   7 14:47 wj123.kpET
-rw------- 1 root root    0 9   7 14:47 wj123.oH2o4P
drwx------ 2 root root 4096 9   7 14:50 wjtpflR
3)在/tmp中创建临时文件
[root@localhost weijie]# mktemp --tmpdir wj234.XXX             //tmpdir没有指定路径,在tmp下创建
/tmp/wj234.BNy
You have new mail in /var/spool/mail/root
4)在指定目录下创建临时目录
[root@localhost weijie]# mktemp --tmpdir=/weijie wj234.XXX    //tmpdir指定的路径下创建
/weijie/wj234.q1C
[root@localhost weijie]# ls
1.c  wj123.kpET wj123.oH2o4P  wj234.q1C  wjtpflR
5)使用选项-u创建
[root@localhost weijie]# mktemp -u wj123.XXXXXX         //使用-u选项
wj123.dSgIKl
[root@localhost weijie]#ls                                  //看不到临时文件,因为没有创建
1.c  wj123.kpET  wj123.oH2o4P  wj234.q1C  wjtpflR


论坛徽章:
1
15-16赛季CBA联赛之福建
日期:2018-12-10 14:43:45
22 [报告]
发表于 2018-10-27 08:17 |只看该作者
mkfs
      在磁盘分区上创建ext2、ext3、ext4、ms-dos、vfat文件系统,默认情况下会创建ext2。mkfs用于在设备上构建Linux文件系统,通常是硬盘分区。文件要么是设备名称(例如/dev/hda1,/dev/sdb2),要么是包含文件系统的常规文件。成功返回0,失败返回1。
     实际上,mkfs只是Linux下可用的各种文件系统构建器(mkfs.fstype)的前端,在可能/sbin、/sbin/fs、/sbin/fs.d、/etc/fs、/etc/fs等多个目录中搜索特定于文件系统的生成器(编译时定义了精确的列表,但至少包含/sbin和/sbin/fs),最后在PATH环境变量中列出的目录中搜索。
     此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。

1、语法
     mkfs [-V]  [-t fstype]  [fs-options]  filesys  [blocks]

2、选项列表
选项
说明
-V
显示详细执行过程
-t
指定文件系统类型,默认ext2
fs-options
传递给真正的文件系统构建器的特定选项。虽然没有保证,但大多数文件系统构建器都支持下列选项
-l filename
从指定文件中读取坏块列表
-c
创建文件系统之前进行坏道检测
-v
显示详细执行过程

3、实例
创建ext2文件系统
[root@localhost ~]# mknod /dev/sdb4 b 1 1      //创建一个设备
[root@localhost ~]# mke2fs /dev/sdb4
mke2fs 1.41.12 (17-May-2010)
文件系统标签=
操作系统:Linux
块大小=1024 (log=0)
分块大小=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
4096 inodes, 16384 blocks
819 blocks (5.00%) reserved for the super user
第一个数据块=1
Maximum filesystem blocks=16777216
2 block groups
8192 blocks per group, 8192 fragments per group
2048 inodes per group
Superblock backups stored on blocks:
    8193
正在写入inode表: 完成                           
Writing superblocks and filesystem accounting information: 完成
This filesystem will be automatically checked every 26 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
[root@localhost ~]# mount /dev/sdb4 /media/disk            //将文件系统挂载
[root@localhost ~]# df T      //查看已经使用的文件系统
Filesystem                   Type    1K-blocks     Used Available Use% Mounted on
/dev/mapper/VolGroup-lv_root ext4     25552764 13250844  11003900  55% /
tmpfs                        tmpfs      829656      268   829388   1% /dev/shm
/dev/sda1                    ext4       495844    32996   437248   8% /boot
/dev/sr0                     iso9660     56618   56618         0 100% /media/VBox_GAs_5.2.18
/dev/sdb1                    vfat        15863      140     14904   1% /media/disk
/dev/sdb4                    ext2        15863      140     14904   1% /media/disk            //可以看到这里是ext2类型的








论坛徽章:
1
15-16赛季CBA联赛之福建
日期:2018-12-10 14:43:45
23 [报告]
发表于 2018-10-28 08:23 |只看该作者
mke2fs
      在磁盘分区上创建ext2、ext3、ext4文件系统,默认情况下会创建ext2。此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。

1、语法
      mke2fs  [选项]  [设备]
      mke2fs  [ -c | -l filename ]  [ -b block-size ]  [ -f fragment-size ]  [ -g blocks-per-group ]  [ -G number-of-groups ]  [ -i bytes-per-inode ]  [ -I inode-size ]  [ -j ] [-J  journal-options]  [ -K ]  [ -N number-of-inodes ] [ -n ]  [ -m reserved-blocks- percentage ]  [ -o creator-os ]  [ -O feature[,...]]  [ -q ]  [ -r fs-revision-level]  [ -E  extended-options]  [ -v ]  [ -F ]  [ -L volume-label ]  [ -M last-mounted-directory ] [ -S ]  [ -t fs-type ]  [ -T usage-type ]  [ -U UUID ]  [ -V ] device  [ blocks-count ]
mke2fs  -O journal_dev  [ -b block-size ]  [ -L volume-label ]  [ -n ]  [ -q ]  [ -v ]  external-journal [ blocks-count ]

device是与设备相对应的特殊文件(例如:g/dev/hdXX)。blocks-count是设备上的块数。如果省略,mke2fs会自动配置文件系统的大小。如果调用为mkfs.ext3,则创建日记,好像指定了“-j”选项。新创建的文件系统参数的默认值(如果没有被下面列出的选项覆盖)由“/etc/mke2fs.conf”配置文件控制。

2、选项列表
选项
说明
-V
显示命令版本信息
-b block-size
指定文件系统上块的大小(kb),有效值1024、2048、4096。如果省略,块大小将由文件系统大小和文件系统的预期使用量(请参阅-T选项)来决定。如果块大小为负值,则mke2fs将使用启发式方法来确定适当的块大小,同时限制块大小至少为block-size字节。这对于某些硬件设备非常有用(这些硬件设备要求块大小为2k的倍数)。
-c
坏道检测。如果该选项被指定两次,则使用较慢的读写测试,而不是快速只读测试。
-E extended-options
为文件系统设置扩展选项。扩展选项是逗号分隔的,可以使用等号复制。在mke2fs的早期版本中,“-E”选项以前是“-R”。为了向后兼容,仍然接受“-R”选项。支持下面的扩展选项:
1)stride=stride-size。使用stride-size个块来配置RAID数组,这是在移动到下一个磁盘之前读取或写入磁盘的块数,有时被称为块大小。这主要影响文件系统元数据在mke2fs时的存放位置,以避免将它们放置在单个磁盘上,这可能会影响性能。块分配程序也可能使用它。
2)stripe-width=stripe-width。使用stripe-width个块来配置RAID数组,这通常是stride-size *n,其中N是RAID中包含数据磁盘的数目(例如,对于RAID 5,有一个奇偶校验磁盘,所以N将是数组中磁盘数量减去1),这允许块分配器在写入数据时防止修改RAID中的奇偶。
3)resize=max-online-resize。预留足够的空间,以便块组描述符能够增长以支持具有在线调整块大小的文件系统。
4)lazy_itable_init[= <0 to disable, 1 to enable>]。如果使能了,并且也启用了uninit_bg功能,那么inode表将不会被mke2fs完全初始化。这明显加快了文件系统的初始化速度,但它要求内核在文件系统首次挂载时在后台完成对文件系统的初始化。如果省略了选项值,则默认为1以启用延迟inode表初始化。
5)test_fs。在文件系统超级块中设置一个标志,指示可以使用试验性内核代码(如ext4dev文件系统)挂载它。
6)discard。尝试在mkfs时丢弃块(在固态设备和稀疏/稀疏的Provi-Sied存储中丢弃块是有用的)。当设备宣传丢弃数据时,将所有尚未归零的inode表标记为零。这大大加快了文件系统初始化的速度。此设置为默认设置。
7)nodiscard。在mkfs时不会丢弃块。
-f fragment-size
设置文件系统碎片的大小。mke2fs接受“-f”选项,但目前忽略它,因为第二个扩展文件系统还不支持片段
-F
强制mke2fs创建文件系统,即使指定的设备不是块特殊设备上的分区,或者其他参数没有意义。。由于这个指令很危险,因此必须确认两次
-g blocks-per-group
指定块组中的块数。用户通常没有任何理由设置此参数,因为默认设置对文件系统是最佳的。开发测试用例的开发人员通常使用此选项。
-G number-of-groups
指定组的数量,这些组将被打包在一起用来创建更大的虚拟块组。组数必须是2的幂,并且只能在启用Flex_BG文件系统功能时指定。
-i bytes-per-inode
mke2fs为磁盘上每一个inode字节创建一个inode。bytes/inode比越大,创建的inode就越少。这个值一般不应该小于文件系统的块大小,因为在这种情况下,将产生比以往任何时候都多的inode。在文件系统创建后不可能扩展该文件系统上的inode数,因此要小心确定此参数的正确值。
-I inode-size
指定每个inode的大小(以字节为单位)。mke2fs默认创建256字节的inode。在2.6.10之后的内核和一些早期的供应商内核中,可以使用大于128个字节的inode存储扩展属性以提高性能。inode表将消耗,这将减少文件系统中的可用空间,也会对性能产生负面影响。大型inode中存储的扩展属性在旧内核中是不可见的,这样的文件系统将根本无法用2.4内核挂载。在创建文件系统之后,不可能更改此值。
-j
创建ext3文件系统。如果没有指定“-j”选项,则默认日志参数将用于创建存储在文件系统中的适当大小的日志
-J journal-options
使用命令行中指定的选项创建ext 3日志。选项是逗号分隔的,可以使用相等号对参数赋值。支持以下两个参数,而且这两个参数只能指定一个。
size=journal-size。指定内部日志的大小,单位是MB。日志的大小必须至少为1024个文件系统块(如果使用1k块,则为1MB,如果使用4k块,则为4MB),并且可能不超过102,400个文件系统块。
device=external-journal。将文件系统附加到位于指定“external-journal“的日志块设备上,“external-journal“必须已使用以下命令创建:mke2fs -O journal_dev external-journal。请注意,“external-journal“必须具有与新文件系统相同的块大小。此外,虽然支持将多个文件系统附加到单个“external-journal“,但linux内核和e2fsck(目前还不支持共享“external-journal“。
-K
保留,不要试图在mkfs时丢弃块
-l filename
从文件中读取磁盘坏块信息。注意,必须使用mke2fs使用的块大小来生成坏块列表中的块号。因此,mke2fs的-c选项是一种简单得多且不容易出错的方法,用于在格式化磁盘之前检查是否存在错误块,因为mke2fs将自动将正确的参数传递给坏块程序。
-L new-volume-label
设置文件系统卷标,卷标最大16个字节
-m reserved-blocks-percentage
指定为超级用户保留的文件系统块的百分比。这样可以避免碎片,并允许root有用的守护进程(如syzabd(在非特权进程被阻止写入文件系统后继续正确运行。默认百分比为5%。
-M last-mounted-directory
设置文件系统最后的挂载目录。一些实用程序可以从上一次挂载目录中选择键,以确定文件系统应该安装在何处。
-n
不创建文件系统,而是演示创建文件系统时该怎么做
-N number-of-inodes
重写应为文件系统保留的inode数量的默认值。
-o creator-os
重写文件系统的“creator operating system”字段的默认值。默认情况下,creator字段设置为mke2fs编译出的操作系统的名称。
-O feature[,...]
创建具有给定功能的文件系统(文件系统选项),覆盖默认的文件系统选项。默认情况下启用的特性由base_features关系指定,或者在/etc/mke2fs.conf配置文件中的[defaults]部分中指定,或者在-T选项指定的用法类型的[fs_type]子节中指定,并由文件系统的[fs_types]子节中的特性关系进一步修改使用类型。
文件系统特性集将使用此选项指定的特性集进行进一步编辑,或者如果未给出此选项,则由正在创建的文件系统类型的default_features关系进行编辑,或者在配置文件的[defaults]部分中进行编辑。
文件系统功能集由一系列要启用的以逗号分隔的特性组成。要禁用一个功能,只需在特征名前加上插入符号(‘^’)。伪文件系统功能“none”将清除所有文件系统功能。feature可以是以下内容:
1)dir_index。使用hashed b-trees来加快大目录中的查找速度
2)extent。使用间extent块来存储inode中数据块的位置。这是一种更有效的编码,它加快了文件系统的访问速度,特别是对于大型文件。
3)filetype。将文件类型信息存储在目录条目中。
4)flex_bg。允许将每个块组元数据(分配位图和inode表)放置在存储介质上的任何位置。此外,mke2fs将每个块组元数据放在每个“flx_bg group”的第一个块组中。可以使用-G选项指定flx_bg组的大小。
5)has_journal。创建ext 3日志,和“-j”选项一样。
6)journal_dev。在给定设备上创建外部ext 3日志,而不是常规ext 2文件系统。
7)large_file。文件系统可以包含大于2GB的文件。(创建文件>2GB时,现代内核会自动设置此特性。)
8)resize_inode。保留空间,这样块组描述符表在将来可能会增长。对于使用regze2fs在线调整大小很有用。默认情况下,mke2fs将尝试预留足够的空间,以便文件系统可以增长到其初始大小的1024倍。
9)sparse_super。创建一个较少SuperBlock备份的文件系统(在大型文件系统上节省空间)。
10)uninit_bg。在不初始化所有块组的情况下创建一个文件系统。这个特性还允许校验和功能,以及每个块组中highest-inode-used统计信息。这个特性可以显著加快文件系统的创建时间(如果启用了lazable_init),还可以大大减少e2fsck的时间。它只受最近Linux内核中的ext 4文件系统的支持。
-q
静默执行,通常用在脚本文件中。
-r revision
为新的文件系统设置文件系统修订号。
-S
只写超级块和组描述符。如果所有的超级块和备份超级块都损坏了,并且需要一种最后的恢复方法,这是很有用的。它导致mke2fs重新初始化超级块和组描述符,同时不触及inode表、块和inode位图。e2fsck程序应该在使用此选项后立即运行,并且无法保证任何数据都是可挽救的。使用此选项时指定正确的文件系统块大小至关重要,否则不可能恢复。
-t fs-type
指定文件系统类型,默认ext2。此选项根据“/etc/mke2fs.conf(5)”中的fstypes配置节控制默认使用哪些文件系统选项
如果使用“-O”选项显式地添加或删除应该在新创建的文件系统中设置的文件系统选项,则所请求的fs-type可能不支持所产生的文件系统。(例如,“mke2fs -t ext3 -O extents /dev/sdXX”将创建一个不受ext3实现支持的文件系统。 “"mke2fs -t ext3 -O^has_journal /dev/hdXX”将创建一个没有日志的文件系统,因此Linux内核中的ext 3文件系统代码将不支持该文件系统。)
-T usage-type[,...]
指定文件系统的使用方式,以便mke2fs可以选择最佳的文件系统参数。所支持的usage-type在配置文件“/etc/mke2fs.conf(5)”中定义。用户可以使用逗号分隔列表指定一个或多个usage-type。
-U
用指定UUID创建系统
-v
显示详细执行过程

3、实例
创建ext2文件系统
[root@localhost ~]# mknod /dev/sdb4 b 1 1      //创建一个设备
[root@localhost ~]# mke2fs /dev/sdb4          //创建文件系统,没有指定类型,默认是ext2
mke2fs 1.41.12 (17-May-2010)
文件系统标签=
操作系统:Linux
块大小=1024 (log=0)
分块大小=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
4096 inodes, 16384 blocks
819 blocks (5.00%) reserved for the super user
第一个数据块=1
Maximum filesystem blocks=16777216
2 block groups
8192 blocks per group, 8192 fragments per group
2048 inodes per group
Superblock backups stored on blocks:
    8193
正在写入inode表: 完成                           
Writing superblocks and filesystem accounting information: 完成
This filesystem will be automatically checked every 26 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
[root@localhost ~]# mount /dev/sdb4 /media/disk            //将文件系统挂载
[root@localhost ~]# df T      //查看已经使用的文件系统
Filesystem                   Type    1K-blocks     Used Available Use% Mounted on
/dev/mapper/VolGroup-lv_root ext4     25552764 13250844  11003900  55% /
tmpfs                        tmpfs      829656      268    829388   1% /dev/shm
/dev/sda1                    ext4       495844    32996   437248   8% /boot
/dev/sr0                     iso9660     56618   56618         0 100% /media/VBox_GAs_5.2.18
/dev/sdb1                    vfat        15863      140     14904   1% /media/disk
/dev/sdb4                   ext2        15863      140     14904   1% /media/disk            //可以看到这里是ext2类型的








论坛徽章:
1
15-16赛季CBA联赛之福建
日期:2018-12-10 14:43:45
24 [报告]
发表于 2018-10-29 09:14 |只看该作者
mknod
      创建块设备或者字符设备文件。此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。

1、语法
      mknod [选项]  设备名  设备类型  主设备号 次设备号

2、选项参数列表
选项
说明
--version
显示命令版本信息
--help
显示帮助信息
-m | --mode=MODE
设置权限
-Z |  --context=CTX
设置SELinux的安全上下文
设备类型
b,块设备;c,字符设备;u,没有缓冲的字符设备;p,fifo设备
设备号
只能是十进制和八进制,如果是0x开头,那么还是十进制。对于b、c、u设备,必须给出设备号,对于p设备,必须忽略设备号
      当类型为b、c或u时,必须同时指定主设备号和次设备号;当类型为p时,必须省略它们。如果主设备号或次设备号以0x或0x开头,则解释为十六进制;否则,如果以0开头为八进制,其他为十进制。

3、实例
1)创建块设备文件
[root@localhost ~]# mknod /dev/sdb4 b 1 1      //创建一个设备
[root@localhost weijie]# ls -l /dev/sdb4
brw-r--r-- 1 root root 1, 1 9月   7 08:21 /dev/sdb4
2)创建字符设备文件
[root@localhost ~]# mknod /dev/ttywj c 2 1      //创建一个设备
[root@localhost weijie]# ls -l /dev/ttywj
crw-r--r-- 1 root root 2, 1 9月   7 09:42 /dev/ttywj






论坛徽章:
1
15-16赛季CBA联赛之福建
日期:2018-12-10 14:43:45
25 [报告]
发表于 2018-10-30 07:10 |只看该作者
mkswap
      在Linux设备或者文件中创建交换分区,创建完成之后必须使用swapon来使用它。一般在“/etc/fstab”中有一个交换分区列表,这样开机的时候就可以使用它。
      此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。
1、语法
      mkswap  [-c]  [-f] [-p PSZ]  [-L label]  [-U uuid]  device  [size]
      参数device通常是一个磁盘分区(类似于/dev/sdb7),但也可以是一个文件。Linux内核不查看分区ID,但是许多安装脚本将假定十六进制类型82(Linux_SWAP)的分区是交换分区。(警告:Solaris也使用此类型。小心不要关闭Solaris分区。)
      参数size是多余的,但为了向后兼容性而保留
      PSZ参数指定要使用的页大小。指定它几乎是不必要的(甚至是不明智的),但是某些旧的libc版本是关于页面大小的,所以mkswap有可能弄错了它。症状是后续Swapon失败了,因为没有找到交换签名。PSZ的典型值为4096或8192。

2、选项列表
选项
说明
-c
创建交换分区之前,检测坏块。如果有,那么打印出数量。
-f
强制执行。如果没有此选项,mkswap将拒绝擦除带有分区表的设备上的第一个块或整个磁盘上的第一个块(例如/dec/sda)。
-p
设置页大小,默认4096。一般是不需要指定这个参数的
-L label
指定一个label,方便swapon使用。只适用于新的风格交换区域
-v1
创建v1版本的swap分区,2.5内核之后只支持这种的
-U uuid
指定uuid,默认情况会生成uuid

3、说明
      交换头不触及第一个块。引导加载程序或磁盘标签可以在那里,但不建议安装。建议的设置是为Linux交换区域使用单独的分区。mkswap和许多其他类似mkfs的实用程序一样,擦除了第一块,这样就可以删除磁盘上的旧系统。mkswap拒绝擦除带有磁盘标签的设备上的第一个块,或者整个磁盘。
      交换区域的最大有用大小取决于体系结构和内核版本,在i386、PPC、m68k、ARM、sparc上为1 GiB、MIPS上为512 MiB、alpha上为128 GiB、sparc64上为3 TiB。对于2.3.3以后的内核来说,没有这样的限制。请注意,在2.1.117之前,内核为每个页面分配了一个字节,而现在它分配了两个字节,因此使用中的交换区域2 GIB可能需要2个MIB内核内存。
     目前,Linux允许32个交换区域(这是Linux2.4.10之前的8个)。使用中的区域可以在文件“/proc/swaps”中看到(自2.1.25以来)。mkswap拒绝10页以下的区域。如果您不知道您的机器使用的页面大小,您可能可以使用“cat /proc/cpuinfo”查找它。
      若要设置交换文件,必须在使用mkswap初始化该文件之前创建该文件,例如使用以下命令:
    # dd if=/dev/zero of=swapfile bs=1024 count=65536
      注意,交换文件不能包含任何漏洞(因此,使用cp(1)创建该文件是不可接受的)

4、实例
1)创建交换分区,指定页大小2048
[root@localhost ~]# mkswap -p 2048 /dev/sdb4           //这里指定页大小2048,取代了系统默认的4096
Using user-specified page size 2048, instead of the system value 4096
Setting up swapspace version 1, size = 16382 KiB
no label, UUID=42f07b0e-0adb-47b6-a906-1209efabb981
2)创建交换分区,指定页大小4096,指定label
[root@localhost ~]# mkswap -p 4096 -L wj /dev/sdb4    //笔者当前的系统,不能使用2048大小的页
Setting up swapspace version 1, size = 16380 KiB
LABEL=wj,UUID=c458a15d-50ee-4e10-a49b-b59add4879d5
3)使用交换分区
[root@localhost ~]# swapon /dev/sdb4           //使用指定的分区
[root@localhost ~]# swapon s                   //查看分区使用情况
Filename             Type       Size   Used   Priority
/dev/dm-1              partition  2940920    0   -1
/dev/sdb4              partition  16376  0   -2






论坛徽章:
1
15-16赛季CBA联赛之福建
日期:2018-12-10 14:43:45
26 [报告]
发表于 2018-10-30 21:27 |只看该作者
mkisofs
      mkisofs指令可以创建ISO9660/Joliet/HFS文件系统,现在使用指令genisoimage代替它。genisoImage是一个预掌握程序,用于生成iso 9660/joliet/hfs混合文件系统。
     genisoImage能够生成由Rock Ridge交换协议指定的系统使用共享协议记录(SUSP),用于向unix主机进一步描述iso 9660文件系统中的文件,并提供诸如长文件名、UID/GID、POSIX权限、符号链接以及块和字符设备文件等信息。如果指定Joliet或HFS混合命令行选项,genisoImage将创建Joliet或HFS所需的附加文件系统元数据,否则genisoImage将生成纯ISO 9660文件系统。
     genisoImage可以生成真正的(或共享的)HFS混合文件系统。这些文件从Macintosh访问时被视为HFS文件,从其他机器访问时被视为ISO 9660文件。HFS代表分层文件系统,是在Macintosh计算机上使用的本机文件系统作为替代,genisoImage可以为每个文件生成对ISO 9660的Apple扩展。当从Macintosh访问时,这些扩展为每个文件提供创建者、类型和某些Finder标志。请参阅下面的HFS Macintosh文件格式部分。
     genisoImage获取给定目录树的快照,并生成二进制映像,当写入块设备时,该图像将对应于iso 9660和/或hfs文件系统。
     写入iso 9660文件系统的每个文件都必须有一个8.3格式的文件名(最多8个字符.最多3个字符,全部大写),即使Rock Ridge正在使用。这个文件名用于无法使用Rock Ridge扩展名的系统(如MS-DOS),每个目录中的每个文件名必须与每个目录中的文件名不同。genisoImage通常试图通过强制unix文件名大写并根据需要截断而形成正确的名称,但当截断的名称并不都是唯一时,这通常会产生不满意的结果。genisoImage为每个文件名分配权重,如果找到两个其他相同的名称,则将优先级较低的名称重命名为包含一个3位数的数字(保证是唯一的)。例如,两个文件“foo.bar”和“foo.bar.~1~”可以呈现为“FOO.BAR;1“和”FOO000.bAR;1“
     当与各种HFS选项一起使用时,genisoImage将尝试识别存储在多个Apple/Unix文件格式中的文件,并复制数据和资源派生以及任何相关的Finder信息。有关genisoImage支持的更多信息,请参见下面的HFS Macintosh文件格式部分。
     请注意,genisoImage的设计并不是为了直接与作者通信。大多数编写人员都有专有的命令集,每个制造商的不同,您需要一个专门的工具才能真正地刻录盘。WODIM就是这样的工具之一。
     此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。

1、语法
     mkisofs [选项]  [-o file.iso]  srcfile
     genisoimage [options]  [-o filename]  pathspec  [pathspec ...]
     pathspec是要复制到iso 9660文件系统中的目录树的路径。可以指定多个路径,genisoImage将所有指定路径组件中的文件合并成文件系统映像。
     如果指定了“-graft-points “选项,则可以在root目录以外的点嫁接路径,也可以将文件或目录移植到CDRom映像上,并且源文件系统中的名称可以不同。我们首先假设存在一个本地文件”./old.lis“,并且希望将它包含在CDROM映像中。语句
     foo/bar/=../old.lis
可以使”/foo/bar/old.lis“的CDROM映像中包括”old.lis“。而语句
     foo/bar/xxx=../old.lis
可以使”/foo/bar/xxx“的CDROM映像中包括”old.lis“。同样的语法也可以与目录一起使用。genisoImage将创建任何目录,以满足CDROM映像上存在嫁接点的需求。默认情况下,像这样动态创建的任何目录都具有权限0555,被genisoimage的运行者拥有。如果您希望其他权限或中间目录的所有者,请参阅-uid, -gid,      -dir-mode, -file-mode and -new-dir-mode。

2、选项列表
选项
说明
-abstract  file
设置摘要文件名称,可以有37个字符
-A  AppId
指定描述光盘应用程序Id的文本字符串,可以有128个字符
-allow-limited-size
当处理不能在ISO 9660中容易表示的大于2GiB的文件时,用缩小的可见文件大小将它们添加到ISO 9660,并将正确的可见文件大小添加到UDF系统。结果是一个不一致的文件系统,用户需要确保他们真的使用UDF而不是ISO 9660驱动程序来读取这样的磁盘。意味着启用-UDF。
-allow-leading-dots-ldots
允许ISO 9660文件名以句点开始。通常,为了保持MS-DOS的兼容性,使用下划线替换前导点。这违反了ISO 9660标准,但它恰好适用于许多系统。小心使用。
-allow-lowercase
允许iso9660文件名中出现小写字母。这违反了ISO 9660标准,但它恰好适用于某些系统,谨慎使用。
-allow-multidot
允许iso9660文件名中出现多个点。引导点不受此选项的影响,可以单独使用“-allow-leading-dots”,这违反了ISO 9660标准,但它恰好适用于许多系统。小心使用。
-biblio file
指定书目文件名。有37个字符的空间。等效于“.genisoImagerc”文件中的BIBL。
-cache-inodes
-no-cache-inodes
启用或禁用inode缓存和以设备号查找指向文件的硬链接。如果genisoImage找到一个硬链接(具有多个名称的文件),该文件也将在cd上被硬链接,因此文件内容只显示一次。这有助于节省空间。类似Unix的操作系统,但在Cygwin等其他系统上默认使用非缓存inode,因为在这些系统上假定inode编号唯一是不安全的。(某些版本Cygwin使用弱散列算法创建假inode编号,这可能会产生重复。)如果两个文件有相同的inode号,但不是同一个文件的硬链接,“genisoImage -cache-indes”的行为将不正确。“-no cache-inode”在所有情况下都是安全的,但在这种情况下genisoImage无法检测硬链接,因此所产生的cd映像可能比所需的要大。
-alpha-boot alpha _boot_image
指定在制作Alpha/SRM可引导CD时使用的引导映像的路径和文件名。路径名必须相对于指定给genisoimage的源路径。
-hppa-bootloader  hppa_bootloader_image
指定在制作HPPA可引导CD时使用的引导映像的路径和文件名。路径名必须相对于指定给genisoImage的源路径。还需要其他选项,至少需要一个内核文件名和一个引导命令行。
-hppa-cmdline  hppa_boot_command_line
指定在制作可引导CD时要传递给HPPA引导加载程序的命令行。用空格或逗号分隔参数。必须将更多选项传递给genisoImage,至少要传递一个内核文件名和引导加载程序文件名。
-hppa-kernel-32  hppa_kernel_32
-hppa-kernel-64  hppa_kernel_64
指定在制作HPPA可引导CD时使用的32位和/或64位内核映像的路径和文件名。路径名必须相对于指定给genisoImage的源路径。还需要其他选项,至少引导加载程序文件名和引导命令行。
-hppa-ramdisk  hppa_ramdisk_image
指定在制作HPPA可引导CD时使用的ramdisk映像的路径和文件名。路径名必须相对于指定给genisoImage的源路径。此参数是可选的。还需要其他选项,至少需要一个内核文件名和引导命令行。
-mips-boot mips_boot_image
指定在生成SGI/大端MIPS可引导CD时使用的引导映像的路径和文件名。路径名必须相对于指定给genisoImage的源路径。可以多次指定此选项,以存储最多15个引导映像。
-mipsel-boot  mipsel_boot_image
指定制作DEC/小端MIPS引导映像的路径和文件名。路径名必须相对于指定给genisoImage的源路径。
-b eltorito_boot_image
指定在为x86 PC制作EL Torito可引导CD时使用的引导映像的路径和文件名。路径名必须相对于为genisoImage指定的源路径。此选项是制作El Torito可引导CD所必需的。引导映像必须精确地为1200 kB、1440 kB或2880 kB,当创建iso 9660文件系统时,genisoImage将使用此大小。pc BIOS将使用该映像来模拟软盘,因此第一个512字节扇区应该包含pc引导代码。
如果引导映像不是软盘映像,则需要添加“-hard-disk-boot”或“-no-emul-boot.”。如果系统不应该从模拟磁盘启动,则使用“-no-boot”。
如果未指定“-sort”,则引导映像将以低优先级(2)排序到介质的开头。如果您不喜欢这种情况,则需要为引导映像指定0的排序权重。
-B img_sun4,img_sun4c,img_sun4m,img_sun4d,img_sun4e
-sparc-boot img_sun4,img_sun4c,img_sun4m,img_sun4d,img_sun4e
设置引导文件名,img_sun4,img_sun4c,img_sun4m,img_sun4d,img_sun4e。
指定为SPARC系统制作可引导cd所需的逗号分隔的引导映像列表。分区0用于iso 9660映像,第一个映像文件映射到分区1。以逗号分隔的列表最多可能有7个字段,包括空字段。此选项是为Sun制作可引导cd所必需的。如果-B或-SPARC-引导已指定,则生成映像的第一个扇区将包含一个Sun磁盘标签。此磁盘标签为ISO 9660映像指定片0,为用此选项指定的引导映像指定切片1至7。每个附加引导映像中的字节偏移量512到8191必须包含适合于适当的SPARC体系结构的主引导。每个映像的其余部分通常包含一个用于主内核引导阶段的ufs文件系统。
实现的引导方法是在SunOS4.x和SunOS5.x中找到的。但是,它不依赖于SunOS内部,而只依赖于OpenBootprom的属性,因此它应该可以用于任何用于SPARC系统的操作系统。
如果指定了文件名,则将实际的和下面的所有引导分区映射到前一个分区。如果使用-G映像-B调用genisoImage,所有引导分区都映射到包含iso 9660文件系统映像的分区,而位于磁盘前16个扇区的通用引导映像用于所有体系结构。
-G  generic_boot_image
指定在制作通用可引导cd时使用的引导映像的路径和文件名。引导映像将放置在cd的前16个扇区上,位于iso 9660主卷描述符之前。如果此选项与-sparc-boot一起使用,则Sun磁盘标签将覆盖泛型引导映像的前512字节。
-eltorito-alt-boot
从一组新的El Torito启动参数开始。最多63个El Torito引导项可以存储在一张CD上。
-hard-disk-boot
指定用于创建El Torito可引导CD的引导映像是硬盘映像。映像必须以包含单个分区的主引导记录开始。
-no-emul-boot
指定用于创建El Torito可引导cd的引导映像是“无仿真”映像。系统将在不执行任何磁盘模拟的情况下加载和执行此映像。
-no-boot
指定应将创建的El Torito CD标记为不可引导。系统将提供一个模拟驱动器的图像,但将启动一个标准的启动设备。
-boot-load-seg  segment_address
指定非模拟El Torito cd的引导映像的加载段地址
-boot-load-size  load_sectors
指定在非模拟模式下加载的“虚拟”(512字节)扇区的数量。默认情况是加载整个引导文件。如果不是4的倍数,一些BIOSes可能会出现问题。
-boot-info-table
指定在引导文件中的偏移量8处修补一个56字节的表,其中包含CD-ROM布局的信息。如果提供此选项,则启动文件将在源文件系统中被修改,因此,如果无法轻松重新生成该文件,请创建该文件的副本!有关此表的说明,请参阅El Torito启动信息表部分。
-C  last_sess_start,next_sess_start
此选项需要为多会话磁盘创建一个额外的CD或第二个会话或更高级别会话的图像。“-C”需要两个数字,用逗号分隔。第一个是应该附加到的磁盘最后一个会话中的第一个扇区。第二个是新会话的起始扇区号。正确的编号可以通过调用“wodin-msinfo”得到。如果-“C”与“-M”一起使用,genisoImage将创建一个文件系统映像,该映像将作为上一次会话的延续。如果使用“-C”而不使用“-M”,genisoImage将创建一个文件系统映像,用于CD额外的第二次会话。这是一个多会话cd,在第一个会话中保存音频数据,在第二个会话中保存iso 9660文件系统。
-c  boot_catalog
指定引导目录的路径和文件名,这是El Torito可引导CD所必需的。路径名必须相对于指定给genisoImage的源路径。此文件将插入到输出树中,而不是在源文件系统中创建,因此请确保指定的文件名不与现有文件冲突,否则将被排除。通常选择一个像“boot.Catalog”这样的名称。
如果未指定“-sort”,则引导目录以低优先级(1)排序到介质的开头。如果您不喜欢这种情况,则需要为引导目录指定0的排序权重。
-check-oldnames
检查从旧会话导入的所有文件名是否符合iso 9660文件命名规则。如果没有此选项,只检查超过31个字符的名称,因为这些文件严重违反iso 9660标准。
-check-session  file
检查所有旧会话是否符合实际的genisoImage iso 9660文件命名规则。这是一个高级选项,它结合了“-M  file  -C  0,0  -check-oldnames”
-copyright file
指定版权信息,通常是光盘上的文件名。有37个字符的空间。相当于在“.genisoImagerc”文件中复制。
-d
不要将句点附加到没有句点的文件中。这违反了ISO 9660标准,但它恰好适用于许多系统。小心使用。
-D
不要使用深度目录重新定位,而是按我们看到的方式打包它们。如果未选择iso 9660:1999,则违反iso 9660标准,但它恰好适用于许多系统。
-dir-mode  mode
重写用于创建镜像的目录mode,指定为chmod(1)中权限位的4位数字。
-dvd-video
生成一个符合DVD视频的UDF文件系统.这是通过排序适当文件的内容顺序和在需要时在文件之间添加填充来实现的。注意,只有当DVD视频文件名只包含大写字符时,排序才能工作。
注意,为了获得符合dvd视频的文件系统映像,您需要准备一个符合dvd视频的目录树,这需要生成dvd的根目录中包含目录VIDEO_TS和AUDIO_TS(所有大写)。VIDEO_TS需要包含视频文件系统的所有所需文件(文件名必须为所有大写)。
-f
在生成文件系统时遵循符号链接。当这个选项没有使用时,符号链接将使用Rock Ridge,如果Rock Ridge也没有启用,那么它们将被忽略。
-file-mode mode
重写用于创建image的常规文件的模式,使用4位模式
-gid  gid
将从源文件读取的组ID重写为gid的值。指定此选项将自动启用RockRidge扩展
-gui
切换GUI的行为。这使得输出更加冗长,但将来可能会产生其他影响。
-graft-points
允许文件名使用嫁接点。如果使用此选项,将检查所有文件名是否有嫁接点。文件名在第一个未转义的等号处被分隔。如果“-graft-points”已经指定,所有出现的‘\’和‘=’字符必须用‘\’转义。
-hide glob
隐藏出现在ISO 9660或Rock Ridge目录中的与shell通配符模式GLOB匹配的任何文件。GLOB可能与文件名或路径的任何部分匹配。如果GLOB匹配某个目录,则该目录的内容将被隐藏。为了匹配目录名,请确保路径名不包括尾随“/‘字符。所有隐藏文件仍将写入输出CD映像文件。请参见-Hided-Joliet和README.Hide。此选项可多次使用。
-hide-list  file
包含要隐藏的shell通配符列表的文件
-hidden glob
为匹配GLOB的文件和目录添加隐藏(存在)ISO 9660目录属性,这是一个shell通配符模式。该属性将防止文件被某些MS-DOS和Windows命令显示。GLOB可能匹配文件名或路径的任何部分。‘/’字符。此选项可多次使用
-hidden-list  file
包含获取隐藏属性的shell通配符列表的文件
-hide-joliet glob
隐藏在Joliet目录中看到的与shell通配符模式GLOB匹配的文件和目录。GLOB可能匹配文件名或路径的任何部分。如果GLOB匹配某个目录,则该目录的内容将被隐藏。为了匹配目录名,请确保路径名不包括尾随的“/‘字符。所有隐藏文件仍将写入输出CD映像文件。此选项通常与-Hide一起使用。请参见README.Hide。此选项可多次使用。
-hide-joliet-list  file
包含要向Joliet树隐藏的shell通配符列表的文件。
-hide-joliet-trans-tbl
将TRANS.TBL文件隐藏在Joliet树中。这些文件在Joliet世界中通常没有意义,因为它们列出了真实名称和ISO 9660名称,这两者都可能与Joliet名称不同。
-hide-rr-moved
将RockRidge树中目录“RR_MOVED”的“.rr_move”目。这样似乎不可能完全将“RR_MOVED”目录隐藏在Rock Ridge树中。此选项只会使不知道该目录的人更容易混淆可见树。如果你不需要“RR_MOVED“目录,那么使用“-D”选项。请注意,如果指定了-D,则生成的文件系统不符合ISO 9660 level-1,在MS-DOS上也无法读取。
-input-charset  charset
定义本地文件名中使用的输入字符集。要获得有效字符集名称的列表,请调用“genisoImage-put-charset”获取帮助。要获得1:1的映射,可以使用默认值作为字符集名称。默认初始值在DOS系统上为cp 437,在所有其他系统上为iso 8859-1。有关详细信息,请参阅下面的字符集部分。
-output-charset charset
定义Rock  Ridge文件名中将使用的输出字符集,默认为输入字符集。有关详细信息,请参阅下面的字符集部分。
-iso-level level
设置ISO 9660一致性级别。有效数字是1到4。
1)对于第1级,文件只能由一个部分组成,文件名限制为8.3类型。
2)对于第2级,文件只能由一个部分组成。
3)对于第三级,没有任何限制 (ISO-9660:1988除外)。
所有ISO 9660级别从1到3,所有文件名仅限于大写字母、数字和下划线(_)。文件名限制为31个字符,目录嵌套限制为8个级别,路径名限制为255个字符。
4)级别4正式不存在,但genisoImage将其映射到ISO-9660:1999,这是ISO 9660版本2。
使用第4级时,增强型卷描述符的版本号和文件结构的版本号设置为2。目录嵌套不限于8级,不需要文件包含点,点没有特殊意义,文件名没有版本号,文件名最长可达207个字符,如果使用Rock Ridge,文件名可达197个字符。
在创建第2版image时,genisoImage会发出一个增强的卷描述符,与主卷描述符相似但不完全相同。请注意不要使用损坏的软件通过假设第二个PVD副本并将这个假定的PVD副本修补为El Torito VD,从而使ISO 9660图像可引导。
-J
除了正常的ISO 9660文件名之外,还生成Joliet目录记录。在Windows机器上使用光盘时,这是有用的。Joliet文件名是在Unicode编码,每个路径组件最多可以有64个Unicode字符。注意,Joliet不是标准的-只有Microsoft Windows和Linux系统才能读取Joliet扩展。要获得更好的可移植性,请同时考虑使用Joliet和Rock Ridge扩展。
-joliet-long
允许Joliet文件名最多为103个Unicode字符,而不是64个字符。这违反了Joliet规范,但似乎有效。谨慎使用。
-jcharset charset
“-J -input-charset charset”的组合。
-l
允许完整的31个字符的文件名。通常iso 9660文件名将采用与MS-DOS兼容的8.3格式,尽管iso 9660标准允许最多31个字符的文件名。如果使用此选项,光盘可能很难在MS-DOS系统上使用,但会在大多数其他系统上使用。请谨慎使用。
-L
过时的选项,使用“-allow-leading-dots”代替。
-jigdo-jigdo  jigdo_file
生成一个jigdo.jigdo元数据文件以及文件系统映像。
-jigdo-template template_file
生成一个jigdo.template元数据文件以及文件系统映像。
-jigdo-min-file-size size
指定要在.jigdo文件中列出的文件的最小size。默认值(和最小允许值)为1KB。
-jigdo-force-md5  path
指定文件模式,其中文件必须包含在由“-md5-list”提供的externally-sup-plied MD5列表中。
-jigdo-exclude path
指定一个不再“.jigdo”中列出的文件模式
-jigdo-map path
为jigdo文件指定模式映射,例如“Debian=/mirror/debian”
-md5-list md5_file
指定一个文件,这个文件列出了包含在“.jigdo”文件列表中的文件的MD5sum、大小和路径名。
-jigdo-template-compress algorithm
指定模板date.gzip和bzip 2当前支持的压缩算法,默认情况是gzip。
-log-file log_file
将所有错误、警告和信息性消息重定向到log_file,而不是标准错误
-m glob
将与shell通配符模式glob匹配的文件排除到CD-ROM。blob可能与文件名组件或完整路径名匹配。此选项可多次使用。例如“genisoimage -o rom -m ’*.o’ -m core -m foobar”,将从image中排除所有以“.o”结尾的文件,或者名为core或foobar的文件。
-exclude-list  file
包含要排除的shell通配符列表的文件
-max-iso9660-filenames
允许ISO 9660文件名长达37个字符。此选项启用-N,因为额外的名称空间是从为文件版本号保留的空间中提取的。这违反了ISO 9660标准,但它恰好适用于许多系统。虽然符合要求的应用程序需要提供至少37个字符的缓冲区空间,但使用此选项创建的光盘可能会导致读取操作系统中的缓冲区溢出。极其小心地使用
-M path
-M  device            
-dev device
指定要合并的现有ISO 9660映像的路径。另一种形式采用SCSI设备说明符,它使用与“dev=  parameter”相同的语法。genisoImage的输出将是一个新的会话,它应该被写入-M中指定的image的末尾,这通常需要用于CD记录器的多会话功能。此选项只能与-C一起使用。
-N
从ISO 9660文件名中省略版本号。这违反了iso 9660标准,但没有人真正使用版本号。
-new-dir-mode  mode
指定在文件系统映像中创建新目录时使用的mode,缺省值为0555。
-nobak
-no-bak
排除ISO 9660文件系统上的备份文件;也就是说,包含字符“~”或“#”或以.bak结尾的文件名。这些文件通常是Unix文本编辑器的备份文件。
-force-rr
不要对以前的会话进行自动的Rock Ridge属性识别。这可以解决由Nero Burning ROM创建的image的问题
-no-rr
不要使用以前会话中的RockRidge属性。这可能有助于避免当genisoImage在旧会话上发现非法的RockRidge签名时出现的问题。
-no-split-symlink-components
不要拆分符号链接组件,而是开始一个新的连续区域(CE)。这可能会浪费一些空间,但是SunOS 4.1.4和Solaris 2.5.1 CDROM驱动程序在读取拆分的符号链接字段(a‘/’可以删除)时有错误。
-no-split-symlink-fields
不要拆分符号链接字段,而是开始一个新的连续区域(CE)。这可能会浪费一些空间,但是SunOS 4.1.4和Solaris 2.5.1 CDROM驱动程序在读取拆分的符号链接字段(a‘/’可以删除)方面有一个错误。
-o filename
指定iso 9660文件系统映像的输出文件。这可以是磁盘文件、磁带驱动器,也可以直接对应光盘写入器的设备名称。如果没有指定,则使用stdout。注意,输出也可以是常规磁盘分区的块设备,在这种情况下,可以使用iso 9660。可以正常安装文件系统,以验证是否正确地生成了文件系统。
-pad
将整个映像的末尾按150个扇区(300 KB)填充。默认启用此选项。如果与-B一起使用,则在ISO 9660分区和引导分区之间插入填充,以便第一个引导分区以16的扇区号开始。当许多操作系统(例如Linux)在其文件系统I/O中实现readahead错误时,就需要填充。这些错误会导致位于磁道末尾附近的文件的读取错误,特别是如果磁盘是在一次模式下以磁道方式写入的,或者在CD音频轨道跟随数据轨道的情况下。
-no-pad
不要将结束部分按150个扇区(300 KB)填充,也不要使引导分区在16个扇区的倍数上启动。
-path-list  file
包含要添加到ISO 9660文件系统中的路径规范目录和文件名列表的文件。此路径规范列表是在命令行中出现的任何路径规范之后处理的。如果参数为“-”,则从标准输入读取列表。
-P
过时的操作,参考“-publisher”
-publisher publisher_id
指定要写入卷头的文本字符串。这应该描述CD-ROM的发行者,通常带有邮件地址和电话号码。有128个字符的空间。相当于”.genisoImagerc”文件中的PUBL。
-p preparer_id
指定要写入卷头的文本字符串。这应该描述CD-ROM的发行者,通常带有邮件地址和电话号码。有128个字符的空间。相当于”.genisoImagerc”文件中的PREP。
-print-size
以扇区大小的倍数(2048字节)打印估计的文件系统大小并退出。这个选项是磁盘在一次模式下需要的,并且在某些cd-R驱动器中,当管道pipe进入wodim时,需要提前了解文件系统映像的大小。旧版本的mKisofs将此信息(以及其他信息)写入stderr。由于这是很难解析的,因此没有任何其他信息的数字。如果您想编写一个简单的shell脚本,请重定向stderr并从stdout捕获数字。例如下面的操作
cdblocks=‘ genisoimage -print-size -quiet ... ‘
genisoimage ... | wodim ... tsize=${cdblocks}s -
-quiet
静默模式,只有少量的输出。
-R
使用Rock Ridge协议生成SUSP和RR记录,以进一步描述ISO 9660文件系统上的文件。
-r
这类似于-R选项,但是文件所有权和模式被设置为更有用的值。uid和gid设置为零,因为它们通常只在作者的系统中有用,而对客户端没有用处。所有文件读取位都设置为true,以便在客户端上全局可读文件和目录。如果为文件设置了任何执行位,则设置所有执行位,以便可在客户端上全局执行可执行文件。如果为某个目录设置了任何搜索位,则设置所有搜索位,以便在客户端上对目录进行全局搜索。所有写入位都将被清除,因为在任何情况下,文件系统都将被挂载只读。如果设置了任何特殊模式位,则清除它们,因为文件锁在只读文件系统上是无用的,并且uid 0或gid 0不需要设置id位。在Win 32上使用时,对所有文件都设置执行位。这是Win 32和CygwinPOSIX仿真层缺乏文件权限的结果。
-relaxed-filenames
允许ISO 9660文件名包含除小写字母以外的所有7位ASCII字符.这违反了ISO 9660标准,但它恰好适用于许多系统。谨慎使用
-root  dir
当写入多会话映像时,此选项是必需的,而上一次(甚至更早的)会话是用-root dir编写的。使用上一次会话中找不到的目录名将导致genisoImage错误终止。如果没有此选项,genisoImage将无法找到未经修改的文件,并将被迫再次将它们的数据写入映像中。-root和-old-root将一起用于进行增量备份。
-old-root dir
-root和-old-root用于一起进行增量备份。初始会话将使用“genisoimage -root backup_1 dirs”,下一次使用“genisoimage -root backup_2 -old-root  backup_1  dirs”将会对这些目录进行另一次快照。第一个快照将在backup_1中找到,第二个快照将在backup_2中找到,但是只需要将修改后的或新的文件写入到第二次会话中。如果没有这些选项,将添加新的文件并保留旧的文件。但是如果文件被修改了,旧的文件就会被覆盖。通过从CD复制整个目录来恢复文件也会还原有意删除的文件。访问一个文件的几个旧版本需要操作系统支持来选择要挂载哪些会话。
-sort sort_file
对媒体上的文件位置进行排序。排序由包含一对文件名和排序偏移加权的文件控制。如果权重较高,则文件将位于更接近媒体开头的位置,如果权重较低,则文件将位于接近媒体末尾的位置。文件名和权重之间必须只有一个空格或制表符,而权重必须是行中的最后一个字符。文件名被视为包含了上面的所有字符,但不包括最后一个空格或制表符。这是为了允许空格字符位于文件名的末尾。此选项不对ISO 9660目录中文件名的顺序进行排序。它对文件数据写入CD映像的顺序进行排序,这对于优化CD上的数据布局非常有用。
-sparc-boot img_sun4,img_sun4c,img_sun4m,img_sun4d,img_sun4e
参考“-B”
-sparc-label label
为使用“-sparc-boot”创建的Sun磁盘标签设置Sun磁盘标签名。
-split-output
将输出image分割成几个文件,每个文件大约1GB。这有助于在没有大型文件支持的操作系统上创建DVD大小的ISO 9660图像。如果要写入DVD,那么wodim将多个文件连接成一个单一的音轨。要使“-split-output”输出工作,必须指定-o文件名。得到的输出image将命名为:filename_00,filename_01,filename_02。
-stream-media-size  #
选择流操作并将媒体大小设置为#扇区。这允许您将tar(1)程序的输出输送到genisoImage,并创建一个ISO 9660文件系统,而不需要中间的tar存档文件。如果指定了此选项,genisoImage将从stdin读取并创建一个名为STREAM.IMG的文件。该文件的最大大小(带填充)比指定的媒体大小200个扇区。如果指定了“-no-pad”,则文件大小比指定的媒体大小50个扇区。如果文件较小,genisoImage将写入填充。这可能需要一段时间。选项流媒体大小只创建简单的ISO 9660文件系统,不能与多会话或混合文件系统选项一起使用。
-stream-file-name name
保留
-sunx86-boot UFS_img,,,AUX1_img
指定为Solaris x86系统制作可引导CD所需的以逗号分隔的文件系统映像列表。请注意,分区1用于iso 9660映像,分区2是整个磁盘,因此分区1和分区2不能被外部分区数据使用。第一个image文件映射到分区0。逗号分隔的列表中可能有空字段,分区1和2的列表条目必须为空。所支持的分区的最大数目为8个(尽管Solaris x 86分区表最多可支持16个分区),因此不可能指定超过6个分区映像。要为Solaris x 86系统制作可引导CD,则需要此选项。
如果指定了“-sunx86-boot”,则结果映像的第一个扇区将包含一个带有Solaris类型0x82 fdisk分区的PC fdisk标签,该分区从偏移512开始,覆盖整个cd。此外,对于Solaris类型0x82 fdisk分区,在CD的第一个扇区中有一个位于偏移量1024的SVR 4磁盘标签。为用于引导PC的第一个文件系统映像(通常为UFS类型)指定切片0,为ISO 9660映像指定切片1。片2跨越整个CD,片3~.片7可用于使用此选项指定的其他文件系统映像。
Solaris x86引导CD使用1024字节大小的主引导,它使用ElTorito不模拟引导模式,以及在cd扇区1~15中的第二泛型引导。
-sunx86-label label
为使用-sunx86-boot创建的svr 4磁盘标签设置svr 4磁盘标签名。
-sysid ID
指定系统ID。有32个字符的空间。相当于“.genisoImagerc”文件中的SYSI。
-T
在CD-ROM上的每个目录中生成一个TRANS.TBL文件,该文件可用于非Rock Ridge系统,以帮助建立正确的文件名。文件中也有指示块和字符设备的主要和次要数字的信息,每个符号链接都有给定链接文件的名称。
-table-name table_name
替代翻译表文件名(见上文)。如果要创建多会话映像,则必须使用与上一次会话相同的名称。
-ucs-level  level
在JolietSVD中设置Unicode一致性级别。默认级别为3。可以使用此选项将其设置为1~3
-udf
在生成的文件系统映像中包含UDF文件系统支持。UDF支持目前处于alpha状态,因此无法创建仅UDF的映像。UDF数据结构目前耦合到Joliet结构,因此当前的实现存在许多缺陷。没有UID/GID支持,没有POSIX权限支持,也没有对符号链接的支持。请注意,除了真正的UDF数据结构所需的空间外,UDF浪费了磁盘开头的扇区~20到扇区256的空间。
-uid  uid
将从源文件读取的uid重写。指定此选项将自动启用RockRidge扩展
-use-fileversion
-use-fileversion选项允许genisoImage使用文件系统中的文件版本号。如果未指定该选项,genisoImage将为所有文件创建一个版本号为1。文件版本是范;1~;32767内的字符串;该选项是VMS上的默认选项。
-U
允许“未翻译”文件名,完全违反了上面描述的ISO 9660标准。允许以下标志:-d -l -N  -allow-leading-dots-relaxed-filenames -allow-lowercase -allow-multidot -no-iso-translate。允许文件名中包含多个“.”字符,以及混合大小写文件名,这在HP-UX上很有用,因为内置的CDF文件系统不识别任何扩展名。使用时要格外小心。
-no-iso-translate
不要翻译ISO 9660文件名中无效的字符“#”和“~”。虽然这些字符无效,但Microsoft系统经常使用这些字符。这违反了ISO 9660标准,但它恰好适用于许多系统。谨慎使用
-V  volid
指定要写入主块的卷ID(卷名或标签)。有32个字符的空间。相当于“.genisoImagerc”文件中的VOLI。卷ID被Solaris卷管理器用作挂载点,并作为分配给光盘的标签。
-volset ID
指定卷集ID。有128个字符的空间。相当于“.genisoImagerc”文件中的VOLS
-volset-size #
将卷集大小设置为#。卷集大小是CD卷集中的CD数。卷集是一个或多个卷的集合,其中记录了一组文件。卷集不打算用于创建一组编号为CD的CD,例如操作系统安装CD集。卷集用于记录不适合单个卷的大目录树。卷集的每个卷都包含对所有目录和记录在序列号小于或等于当前卷的指定卷集大小的卷上的文件。
GenisoImage目前不支持大于1的-volset-size。选项-volset-size必须在每个命令行的-volset-seqno之前指定.
-volset-seqno  #
将卷集序列号设置为#。卷集序列号是cd集中当前cd的索引号。选项-volset-size必须在每个命令行的-volset-seqno之前指定。
-v
冗长的执行。如果在命令行上给出两次,则会打印额外的调试信息。
-x  glob
与-m glob相同
-z
为透明压缩的文件生成特殊的RRIP记录。这只是支持透明解压缩的主机(如Linux 2.4.14或更高版本)的用途和兴趣。您必须指定-R或-r来启用Rock Ridge,并在运行genisoImage之前使用mkzftree实用程序生成压缩文件。请注意,透明压缩是一个非标准的Rock Ridge扩展。结果磁盘只有在Linux上才能透明地读取。在其他操作系统上,您需要手动调用mkzftree来解压缩文件。



论坛徽章:
1
15-16赛季CBA联赛之福建
日期:2018-12-10 14:43:45
27 [报告]
发表于 2018-10-30 21:28 |只看该作者
3、字符集
     genisoImage以符合POSIX的方式将文件名处理为8位字符的字符串。要表示所有语言的所有编码,8位字符是不够的。Unicode或Iso-10646定义了至少需要21位才能表示所有已知语言的字符编码。它们可以用utf-32、utf-16或utf-8编码表示。utf-32使用普通的32位编码,但似乎不常见。microsoft使用utf-16时使用win 32,缺点是16位字符不符合POSIX文件系统接口。
     现代unix操作系统可以对文件名使用utf-8编码。每个32位字符由一个或多个8位字符表示。如果一个字符用iso-8859-1(在中欧和北美使用)编码,则以1:1映射到utf-32或utf-16编码的Unicode字符。如果一个字符是用7位asci编码(在美国和其他字符集有限的国家)将以1:1映射到UTF-32、UTF-16或UTF-8编码的Unicode字符。不能用UTF-8(如果值大于0x7F)中的单个字节表示的字符代码使用转义序列,这些转义序列映射到多个8位字符。
     如果所有操作系统都使用utf-8,genisoImage将不需要在文件名中重新编码字符。不幸的是,Apple使用完全非标准的编码,而microsoft使用与POSIX文件名接口不兼容的unicode编码。对于所有非utf-8编码的操作系统,每个字节表示的实际字符取决于本地操作系统使用的字符集或代码页(microsoft使用的名称)。字符集中的字符将反映用户的区域或自然语言集。通常字符代码0x00-0x1f是控制字符,代码0x20-0x7f是7位ASCII字符,(在PC和Mac上)0x80-0xff用于其他字符。
     由于有超过256个字符/符号在使用,只有一个小子集表示在一个字符集。因此,相同的字符代码可以表示不同字符集中的不同字符。因此在中欧生成的文件名,在东欧的机器上查看时可能不会显示相同的字符。为了使事情变得更复杂,不同的操作系统对区域或语言使用不同的字符集。例如,‘é’的字符代码(带有尖锐口音的小e)可以是PC上的字符代码0x82、Macintosh上的代码0x8e、西欧Unix系统上的代码0xe9和Unicode中的代码0x000e9。
只要不是所有操作系统和应用程序都使用相同的字符集作为文件名的基础,就可能需要指定文件名中使用的字符集以及文件名应该显示在CD上的字符集。有四个选项可以指定要使用的字符集:
      1)-input-charset。定义您在主机上使用的本地字符集。发生的任何字符集转换都将使用此字符集作为起点。默认输入字符集在基于MS-DOS的系统上为cp 437,在所有其他系统上为iso 8859-1。如果给定-j,则输入字符集的unicode等效项将在joliet目录中使用。“-jcharset”选项 和“-input-charset –J”选项时一样的。
      2)-output-charset。定义用于CD上Rock Ridge名称的字符集。默认为输入字符集。
      3)-input-hfs-charset。定义从各种Apple/Unix文件格式解码的用于HFS文件名的HFS字符集。只有当与“-mac-name”一起使用时才有用。
      4)-output-hfs-charset。定义用于从正在使用的输入字符集创建hfs文件名的hfs字符集。在大多数情况下,这将来自“-input-charset”选项指定的字符集。默认为输入hfs字符集。
      在genisoImage中内置了许多字符集。要获得列表,请使用输入字符集帮助。此列表不包括从当前区域设置派生的字符集,如果genisoImage是使用iconv支持构建的。通过将文件名作为选项的参数,可以从任意字符集选项的文件中读取其他字符集。只有当文件的名称与内置字符集中的一个不匹配时,才会读取给定的文件。
     字符集文件的格式与“http://www.unicode.org/Public/MAPPINGS”提供的映射文件相同。格式如下:
Column #1 is the input byte code (in hex as 0xXX)
Column #2 is the Unicode (in hex as 0xXXXX)
The rest of the line is ignored.
      任何空白行、没有上述格式的两个(或更多)列的行或注释行(以#字符开始)都会被忽略,而不会发出任何警告。任何丢失的输入代码都映射到Unicode字符0x0000。
      请注意,虽然支持UTF-8,但其他Unicode编码(如UCS-2/UTF-16和UCS-4/UTF-32)则不支持,因为POSIX操作系统无法本地处理它们。1:1字符集映射可以通过使用关键字默认值作为任何字符集选项的参数来定义。从输入文件名生成的iso 9660文件名不会从输入字符集转换。iso 9660字符集是ASCII字符的非常有限的子集,因此任何转换都是没有意义的。任何不能转换的字符都将被“_”字符替换。

4、HFS CREATOR/TYPE(创建者和类型)
      Macintosh文件有两个与其相关的属性,它们定义了创建文件的创建者和文件类型。两者都是(完全)4个字母字符串。通常,这允许Macintosh用户双击文件并启动正确的应用程序等。可以通过在Macintosh上使用ResEdit(或类似的)之类的方法找到特定文件的创建者和类型。
      创建者和类型信息存储在所有Apple/Unix编码的文件中。对于其他文件,可以使用文件的映射文件(带-map)或使用文件的魔术号(通常是前几个字节中的签名),将创建者和输入文件的扩展名作为基础。如果这两个选项都给出了,那么它们在命令行上的顺序是有效的。如果“-map”是首先给出的,则在魔术号匹配之前尝试进行文件扩展名匹配。但是,如果先给出“-magic”,则在文件扩展名匹配之前尝试进行魔法号匹配。
      如果没有使用映射或魔术文件,或者没有找到匹配,则可以通过使用“.genisoImagerc”文件中的条目或使用“-hfs-creator”或“-hfs-type,”来设置所有常规文件的默认创建者和类型,否则默认的创建者和类型是Unix和Text。
      映射文件的格式与aufs使用的afpfile格式相同。该文件有五列用于扩展名、文件转换、创建者、类型和注释。以“#”字符开头的行是注释行,被忽略。下面就是一个例子
# Example filename mapping file
#
# EXTN  XLate   CREATOR   TYPE    Comment
.tif    Raw     ’8BIM’    ’TIFF’  "Photoshop TIFF image"
.hqx    Ascii   ’BnHq’    ’TEXT’  "BinHex file"
.doc    Raw     ’MSWD’    ’WDBN’  "Word file"
.mov    Raw     ’TVOD’    ’MooV’  "QuickTime Movie"
*       Ascii   ’ttxt’    ’TEXT’  "Text file"
     第一列EXTN定义要映射的Unix文件名扩展名,任何不匹配的文件扩展名的默认映射都定义为“*”字符。第二列Xate列定义了Unix和Macintosh文件之间的文本转换类型,它被genisoImage忽略,但与aufs(1)兼容。虽然genisoImage不改变文件的内容,但如果二进制文件的类型设置为文本,则可能会在Macintosh上错误地读取它。因此,默认类型的更好选择可能是“????”。CREATOR和TYPE关键字必须为4个字符长,并以单引号括起来。注释字段以双引号括起来-它被genisoImage忽略,但与aufs兼容。
      魔术文件的格式几乎与file (1)命令使用的魔术(5)文件格式相同。该文件有偏移量、类型、测试和消息用四个字节的制表符分隔列。以‘#’字符开头的行是注释行,被忽略。一个示例文件将类似于:
# Example magic file
#
# off  type      test       message
0      string    GIF8       8BIM GIFf  GIF image
0      beshort   0xffd8     8BIM JPEG  image data
0      string    SIT!       SIT! SIT!  StuffIt Archive
0      string    \037\235   LZIV ZIVU standard Unix compress
0      string    \037\213   GNUz ZIVU  gzip compressed data
0      string    %!         ASPS TEXT  Postscript
0      string    \004%!     ASPS TEXT  PC Postscript with a ^D to start
4      string    moov       txtt MooV  QuickTime movie file (moov)
4      string    mdat       txtt MooV  QuickTime movie file (mdat)
      文件的格式用magic(5)来描述。这里唯一的区别是,对于魔术文件中的每个条目,message的初始偏移量必须是4个字符的CREATOR,紧接着是4个字符的TYPE,空格是可选的。此行上的任何其他字符都将被忽略。延拓行(从‘>’开始)也会被忽略,即只使用初始偏移行。
      使用”-magic“可能会显著增加处理时间,因为每个文件必须打开和读取,以找到其魔术号码。
      总之,对于所有文件,默认创建者是Unix,默认类型是TEXT。这些可以通过使用“.genisoImagerc“文件中的条目或使用”-hfs-creator “或”-hfs-type“选项来更改。如果文件是以已知的Apple/Unix格式之一(并且已经选择了该格式),则创建者和类型将从存储在Apple/Unix文件中的值中提取。其他文件的创建者和类型可以通过其文件扩展名(-map)或它们的魔术号(-magic)进行设置。如果在映射文件中使用了默认匹配,则这些值将覆盖默认的创建者和类型。

5、HFS MACINTOSH FILE FORMATS(文件格式)
      Macintosh文件有两个部分,称为数据和资源叉。两者都可能是空的。unix(和许多其他开放源码软件)只能处理只有一部分(或分叉)的文件。另外,macintosh文件有许多与它们相关的属性-可能最重要的是类型和创建者。同样,unix对这些类型的属性没有概念。例如,Macintosh文件可以是JPEG图像,其中图像存储在数据分叉中,桌面缩略图存储在资源分叉中。数据分叉中的信息通常是跨平台有用的。因此,要在Unix文件系统上存储Macintosh文件,必须找到一种方法来处理两个分叉和额外的属性(称为Finder info)。不幸的是,似乎每个在Unix上存储Macintosh文件的软件包都选择了一种完全不同的存储方法。genisoImage(部分)支持的Apple/Unix格式如下:
      CAP AUFS format。数据存储在文件中,资源存储在子目录。资源和数据有相同的文件名
      AppleDouble/Netatalk。数据存储在文件中。资源存储在以‘%’作为前缀的文件中,查找器信息也存储在相同的‘%’文件中
     AppleSingle。数据结构类似于上面的结构,除了分叉和Finder信息都存储在一个文件中。
     Helios EtherShare。数据存储在文件中的,资源和查找器信息一起存储在子目录.rsrc中,与数据具有相同的文件名。
     IPT UShare。与EtherShare格式类似,但是Finder信息的存储方式略有不同
     MacBinary。分叉和查找器信息都存储在一个文件中。
     Apple PC Exchange。Macintoshes将苹果文件存储在DOS(FAT)磁盘上。数据分叉存储在文件中。资源分叉存储在子目录Resoure.frk(或RESOURCE.FRK)中。finder info作为文件finder.dat(或FINDER.DAT)中的一条记录。为每个数据叉目录分离finder.dat。注意:genisoImage需要知道pc Exchange文件所在的磁盘的本机胖集群大小(或已从其复制)。此大小由“-cluster-size”确定。使用DOS实用程序chkdsk可以找到群集或分配大小。
     SGI/XINET。SGI机器在安装HFS磁盘时使用。存储在文件中的数据分叉。.hsResource子目录中的资源叉,具有相同的文件名.finder info作为文件中的一条记录。
     Thursby Software Systems DAVE。允许Macintoshes将苹果文件存储在SMB服务器上。存储在文件中的数据分叉。使用AppleDouble格式存储资源叉。
genisoImage将尝试从finder信息中设置创建者、类型、日期和可能的其他标志。此外,如果存在,则从finder info设置macintosh文件名,否则macintosh名称基于unix文件名
     Services for Macintosh。NT服务器存储在NTFS文件系统上的文件格式。数据分叉存储为文件名。资源叉存储为名为filename:afp_Resource的NTFS流。查找信息存储为名为filename:AFP_AfpInfo的NTFS流。NTFS流通常对用户不可见。注意:genisoImage只部分支持SFM格式。如果存储在NT服务器上的HFS文件或文件夹在其名称中包含非法NT字符,则NT将这些字符转换为私有使用Unicode字符。这些字符是:“*/<>?\和空格或句点(如果它是文件名的最后一个字符,则编码0x01到0x1f)。(控制字符)和苹果的苹果标志。不幸的是,这些私有Unicode字符无法被genisoImageNT可执行文件读取。因此,包含这些字符的任何文件或目录名称都将被忽略-包括任何此类目录的内容。
     Mac OS X AppleDouble。当MacOSX将HFS/HFS文件复制或保存到非HFS文件系统(例如UFS、NFS等)时,文件以AppleDouble格式存储。存储在以“._”开头的同名文件中的资源叉。查找器信息也存储在相同的“._”文件中。
     Mac OS X HFS (Alpha)。实际上不是Apple/Unix编码,而是MacOSX系统上的实际HFS/HFS文件。存储在文件中的数据分叉。资源叉存储在同名、后缀/rsrc的伪文件中。只有在MacOSX上使用时才能工作。如果发现一个文件具有零长度的资源分叉和空的finderinfo,则假定它没有任何Apple/Unix编码,因此可以使用其他方法设置类型和创建者。

     genisoImage将尝试从finder信息中设置创建者、类型、日期和可能的其他标志。此外,如果存在,则从finder info设置macintosh文件名,否则macintosh名称基于unix文件名。
     在使用“-apple”时,类型和创建者存储在ISO 9660目录记录中的可选系统使用或SUSP字段中,方式与Rock Ridge属性非常类似。实际上,为了简化生活,在现有Rock Ridge属性的开头添加了Apple扩展(即,为了获得Apple扩展,您也可以获得Rock Ridge扩展)。Apple扩展要求将资源叉存储为与ISO 9660关联的文件。这与存储在ISO 9660文件系统中的任何普通文件一样,只是相关的文件标志是在目录记录(位2)中设置的。该文件与数据分叉(由非苹果计算机看到的文件)具有相同的名称。相关文件通常被其他操作系统忽略。
     使用“-hfs”时,类型和创建者以及其他查找器信息存储在单独的HFS目录中,在ISO 9660卷中不可见。HFS目录引用上述相同的数据和资源叉文件。在大多数情况下,最好使用“-hfs”而不是“-apple”,因为后者在文件名中使用了有限的ISO 9660字符。然而,Apple扩展名确实提供了这样的优势:文件被更高效地打包到磁盘上,并且可能在CD上安装更多的文件

6、HFS MACINTOSH FILENAMES
     在可能的情况下,存储在Apple/Unix文件中的HFS文件名用于CD的HFS部分。但是,并不是所有的Apple/Unix编码都使用finderinfo存储HFS文件名。在这些情况下,使用Unix文件名-带有转义的特殊字符。特殊字符包括‘/’和代码超过127的字符。AUFS使用‘:’转义这些字符,后面跟着字符代码作为两个十六进制数字。Netatalk和EtherShare有类似的方案,但使用‘%’而不是‘:’。如果genisoImage无法找到HFS文件名,则使用Unix名称,将任何“%xx”或“:xx”字符(xx是两个十六进制数字)转换为单个字符代码。如果xx不是十六进制数字([0-9a-FA-F]),则它们将被单独保留-尽管其余的“:”转换为“%”,因为“:”是hfs目录分隔符。必须小心,因为带有“%xx”或“:xx”的普通Unix文件也将被转换。例如下面的例子
This:2fFile   converted to This/File
This:File     converted to This%File
This:t7File   converted to This%t7File
     虽然HFS文件名似乎支持大写字母和小写字母,但文件系统不区分大小写,即文件名AbC和aBC是相同的。如果在具有相同HFS名称的目录中找到一个文件,genisoImage将尝试通过在其中一个文件名中添加“_”字符来创建唯一的名称。如果文件存在HFS文件名,genisoImage可以使用“-mac-name”选项,让此名称作为ISO 9660、Joliet和Rock Ridge文件名的起始点。没有HFS名称的普通Unix文件仍将使用它们的Unix名称。
     如果在unix系统中,一个mac的二进制文件存储名字是这是someimage.gif.bin,但是系统中还有一个名字为someimage.gif的文件,那么这个名字是将出现在CD的HFS部分的名称。但是,由于genisoImage使用Unix名称作为其他名称的起点,生成的ISO 9660名称可能是SOMEIMAG.BIN,Joliet/Rock Ridge将是某某Image.gif.bin。此选项将使用HFS文件名作为起点,ISO 9660名称可能为SOMEIMAG.GIF,而Joliet/Rock Ridge可能是一些Image.gif。
“-mac-name”目前不能和“-T”一起使用。Unix名称将在TRANS.TBL文件中使用,而不是Macintosh名称。
     用于将任何HFS文件名转换为Joliet/Rock Ridge文件名的字符集默认为cp 10000(Mac Roman)。使用的字符集可以使用“-input-hfs-charset.”选项指定。HFS字符集中的其他内置字符集是:cp 10006(Mac希腊语)、cp 10007(MacCyrilic)、cp 10029(MacLatin 2)、cp 10079(Mac冰岛和andic)和cp 10081(Mac土耳其语)。注意:从各种Apple/Unix格式中提取的HFS文件名使用的字符代码将不会被转换,因为它们被假定在正确的Apple字符集中。只有从HFS文件名派生的Joliet/Rock Ridge名称才会被转换。
     现有的genisoImage代码将过滤掉ISO 9660和Joliet文件名的任何非法字符,但随着genisoImage预期将直接处理Unix名称,它将保留Rock Ridge的名称。但“/”是一个合法的HFS文件名字符,“-mac-name”选项在Rock Ridge文件名中将“/”转换为“_”。
如果使用Apple扩展,则只会在Macintosh上显示ISO 9660文件名。然而,由于MacintoshISO 9660驱动程序可以使用级别2文件名,您可以使用类似于“-allow-multidot”的选项,这在Macintosh上没有问题的。但是仍然要注意名称,例如“this.file.name”将转换为“THIS.FILE”,即只有一个‘.’,也可以将文件名“abcdefgh”视为“ABCDEFGH”,但“abcdefghi”将被视为“ABCDEFGHI.”。也就是说,在结尾有一个“.”不知道这是Macintosh问题还是genisoImage/mk混合问题。当在Macintosh上查看时,所有的文件名都是大写的。当然,DOS/Win3.X机器将无法看到二级文件名。

7、HFS CUSTOM VOLUME/FOLDER ICONS
     若要为HFS CD提供自定义图标,请确保根(顶级)文件夹包含一个标准Macintosh卷图标文件。若要在Macintosh上为卷提供自定义图标,必须在卷的“获取信息”框中将一个图标粘贴到卷的图标上。这将在根文件夹中创建一个名为“Icon\r“(‘\r’是回车字符)的不可见文件。自定义文件夹图标非常相似,文件夹本身存在一个名为”Icon\r“的不可见文件。
     可能创建genisoImage可以使用的自定义图标的最简单方法是格式化Mac上的空白HFS软盘,并将图标粘贴到其“GET Info”框中。如果在安装hfs模块的情况下使用linux,请挂载软盘:”mount -t hfs /dev/fd0 /mnt/floppy”。默认情况下,软盘将作为CAP文件系统挂载。然后使用以下内容运行genisoImage:“genisoimage --cap -o output source_dir /mnt/floppy “。
如果您不使用Linux,您可以使用hfsutils从软盘复制图标文件。但是,必须小心,因为图标文件包含一个控制字符。例如:
hmount /dev/fd0
hdir -a
hcopy -m Icon^V^M icon_dir/ico
其中‘^V^M’是“ctrl+v“,然后是控制”ctrl+m“。然后以下面的方式运行genisoimage:“genisoimage --macbin -o output source_dir icon_dir”
     创建/使用自定义文件夹图标的过程非常相似-将图标粘贴到文件夹的“Get Info”框中,并将生成的“Icon\r”文件传输到genisoImage源树中的相关目录。您可能需要将图标文件隐藏在iso 9660和Joliet树中。

8、HFS BOOT DRIVER
     可以在Macintosh上启动混合CD。可引导的HFS CD需要一个AppleCD-ROM(或兼容)驱动程序、一个可引导的HFS分区和必要的系统、Finder等文件。使用Apple_Driver实用程序,可以从任何其他Macintosh可引导CD-ROM中获得驱动程序。然后,这个文件可以与“-boot-hfs-file”一起使用。HFS分区(在本例中是混合磁盘)必须包含一个合适的系统文件夹,同样来自另一个光盘或磁盘。
     要使分区可引导,必须设置其引导块。引导块位于分区的前两个块中。对于不可引导的分区,引导块中满是零。通常情况下,当系统文件被复制到Macintosh磁盘上的分区时,引导块会被许多必需的设置填充。因此,实用程序Apple_Driver还从它在给定的cd-ROM上找到的第一个hfs分区中提取引导块,这用于genisoImage创建的hfs分区。
     请注意:通过使用来自Apple CD的驱动程序并将Apple软件复制到您的CD上,您将很容易服从Apple Computer,Inc。软件许可协议。

9、EL TORITO BOOT INFORMATION TABLE
     当给出“-boot-info-table”时,genisoImage将修改-b指定的引导文件,方法是在文件的偏移量8处插入一个56字节的引导信息表。这一修改是在源文件系统中完成的,因此,如果该文件不易重新创建,请确保使用副本!此文件包含指针,这些指针在启动时可能不易或可靠地获得。本表的格式如下;所有整数均采用7.3.1(“小Endian”)格式:
Offset    Name           Size      Meaning
8       bi_pvd         4 bytes   LBA of primary volume descriptor
12        bi_file        4 bytes   LBA of boot file
16        bi_length      4 bytes   Boot file length in bytes
20        bi_csum        4 bytes   32-bit checksum
24        bi_reserved    40 bytes Reserved
32位校验和是引导文件中从字节偏移64开始的所有32位字的总和。所有线性块地址(LBA)都以CD扇区(通常为2048字节)给出。

10、HPPA说明
要为HPPA制作一个可引导的CD,至少必须指定一个引导加载程序文件(-hppa-boot-loader)、一个内核映像文件(32位、64位,或者两者兼而有之,视硬件而定)和一个引导命令行(-hppa-cmdline)。有些系统可以启动32位或64位的内核,如果两者都存在,固件将选择其中一种。还可以选择使用“-hppa-cmdline”对根文件系统使用ramdisk。

11、JIGDO说明
     Jigdo是一个帮助分发大文件的工具,如cd和dvd镜像;更多细节请参见http://atterer.net/jigdo/。debian cd和dvd iso镜像以jigdo格式在网络上发布,以便最终用户更有效地下载它们。若要从genisoImage在ISO映像旁边创建jigdo和模板文件,您必须首先生成将使用的文件列表,格式如下:
     MD5sum   File size  Path
     32 chars 12 chars   to end of line
     MD5sum应该用jigdo的伪BASE 64格式编写。文件大小应该是十进制,文件的路径必须是绝对的。拥有此文件后,使用所有常规命令行参数调用genisoImage。使用“-jigdo-jigdo”和“-jigdo-Template”指定jigdo和模板文件的输出文件名,并使用“-md5-list”传递md5列表的位置。
     如果您不希望将一些文件添加到jigdo文件中(例如,如果它们可能经常更改),请使用-jigdo-忽略指定它们。如果您想在将一些文件写入镜像时验证它们,请使用“-jigdo-force-md5”指定它们。如果任何文件不匹配,genisoImage就会中止。这两个选项都以正则表达式作为输入。可以根据大小,使用”-jigdo-min-file-size”选项限制将进一步使用的文件集。
     最后,jigdo代码需要知道如何将给定的文件映射到镜像样式的配置中。指定如何使用“-jigdo-map”映射路径。使用“debian=/mirror/debian”将导致所有以“/mirror/debian”开头的路径映射到输出jigdo文件中的debian:<file>。
12、例子代码
1)若要在cd.iso文件中创建一个普通的ISO 9660文件系统映像,如果CD为cd.iso,目录cd_dir将成为根目录,使用命令:
% genisoimage -o cd.iso cd_dir
2)使用目录cd_dir的Rock Ridge扩展创建CD
% genisoimage -o cd.iso -R cd_dir
3)若要创建源目录cd_dir的RockRidge扩展名的CD,其中所有文件至少具有读取权限,且所有文件均为root所有,使用命令:
% genisoimage -o cd.iso -r cd_dir
4)将tar存档直接写入CD,该CD将包含带有tar存档的简单iso 9660文件系统。使用命令:
% tar cf - . | genisoimage -stream-media-size 333000 | wodim dev=b,t,l -dao tsize=333000s –
5)用源目录cd_dir的Joliet和Rock Ridge扩展创建HFS混合CD
% genisoimage -o cd.iso -R -J -hfs cd_dir
6)从包含Netatalk Apple/Unix文件的源目录cd_dir创建HFS混合CD
% genisoimage -o cd.iso --netatalk cd_dir
7)要从源目录cd_dir创建HFS混合CD,只需根据文件“映射”中列出的文件扩展名提供所有文件创建者和类型
% genisoimage -o cd.iso -map mapping cd_dir
8)要创建一个带有Apple扩展到ISO 9660的CD,可以从源目录cd_dir和another_di。.解码所有已知Apple/Unix格式的文件,并根据文件魔术中给出的魔术号给出任何其他文件的创建者和类型。
% genisoimage -o cd.iso -apple -magic magic -probe cd_dir another_dir
9)下面的示例在CD上放置不同的文件,这些文件都有自述的名称,但当被视为ISO 9660/Rock Ridge、Joliet或HFS CD时,它们的内容不同。当前目录包含“README.hfs     README.joliet  README.Unix   cd_dir/”。下面的命令将cd_dir目录的内容连同三个自述文件放在CD上,但在这三个文件系统中只能看到一个
% genisoimage -o cd.iso -hfs -J -r -graft-points \
  -hide README.hfs -hide README.joliet \
  -hide-joliet README.hfs -hide-joliet README.Unix \
-hide-hfs README.joliet -hide-hfs README.Unix \
  README=README.hfs README=README.joliet \
README=README.Unix cd_dir
文件README.hfs将被视为HFS CD上的自述文件,另外两个自述文件将被隐藏。同样适用于Joliet和ISO 9660/Rock Ridge CD。隐藏选项的组合可能会产生各种奇怪的结果。

13、说明
     genisoImage可以安全地安装在suid root中。这可能是为了允许genisoImage在创建多会话映像时读取上一次会话。如果genisoImage正在创建具有Rock Ridge属性的文件系统映像,而源目录树的目录嵌套级别对于ISO 9660来说太高,genisoImage将执行深度目录重定位。这将导致CD根目录中的一个名为RR_Move的目录。您无法避免此目录。不同平台的许多引导代码选项是互斥的,因为引导块不能共存,即不同平台共享映像中相同的数据位置。

14、bug
任何与被复制到iso 9660文件系统的树中的文件没有硬链接的文件都将有一个不正确的文件引用计数。不检查根目录的“.”条目中的SUSP记录以验证是否存在RockRidge增强功能。在以多会话模式添加数据时,读取旧会话时会出现此问题。在添加数据时,不以多会话模式正确读取已重新定位的目录。如果新会话不包括深度目录,则任何重新定位的深度目录都会丢失。在从TRANS.TBL执行多会话时不重复使用RR_MOVE。不要在多会话模式中为RR_MOVE创建全名条目。

15、HFS PROBLEMS/LIMITATION
      虽然HFS文件名似乎支持大写字母和小写字母,但文件系统不区分大小写,即文件名ABC和ABC是相同的。如果在具有相同HFS名称的目录中找到一个文件,genisoImage将尝试通过在其中一个文件名中添加“_”字符来创建唯一的名称。
共享前31个字符的HFS文件/目录名称有‘_N’(十进制数字)替代最后几个字符以生成唯一的名称。在“嫁接”Apple/Unix文件或目录(所涉及的方法和语法见上文)时,必须小心。不能为Apple/Unix编码的文件/目录使用新名称。例如,如果要将名为oldname的Apple/Unix编码文件添加到CD中,则不能使用一下命令行:
      “genisoimage -o output.raw -hfs -graft-points newname=oldname cd_dir”
      genisoImage将无法解码旧名。但是,只要您不尝试像上面那样给它们命名,就可以移植Apple/unix编码的文件或目录。
当使用多会话选项-M和-C创建HFS卷时,仅上一次会话中的文件将位于HFS卷中。也就是说,genisoImage不能将以前会话中的现有文件添加到hfs卷中。但是,如果每个会话都是使用“-part”创建的,则在Mac上挂载时,每个会话将显示为单独的卷。在这种情况下,值得使用“-v”或-”hfs-volid“为每个会话提供一个唯一的卷名,否则每个“卷”都会以相同的名称出现在桌面上。符号链接(与所有其他非常规文件一样)不会添加到hfs目录中。
      混合卷可能大于包含相同数据的纯ISO 9660卷。在某些情况下(例如DVD大小的卷),差异可能很大。随着HFS卷的增大,分配块的大小(文件所能占用的最小空间)也会变大。对于650 MB的CD,分配块是10 kb,对于4.7GB的DVD,大约是70 kB。hfs卷中的最大文件数约为65500,但实际限制将略小于此。
      生成的混合卷可以使用hfsutils例程在Unix机器上访问。但是,当卷被设置为锁定时,不能对其进行任何更改。这个选项“-hfs-unlock“将创建一个未锁定的输出映像-但是不应该对卷的内容进行任何更改(除非您真正知道自己在做什么),因为它不是“真实的”hfs卷。
      “-mac-name“目前不能和“-T”一起使用,-Unix名称将在TRANS.TBL文件中使用,而不是Macintosh名称。
      虽然genisoImage不改变文件的内容,但如果二进制文件的类型设置为”TEXT“,则可能在Macintosh上不正确地读取它。因此,默认类型的更好选择可能是”????“。
      “-mac-boot-file “选项可能完全不能工作。可能无法使用PC Exchangev2.2或更高版本的文件(MacOS8.1可用)。当使用Linux时,包含PC Exchange文件的DoS媒体应该以MSDOS(而不是vFAT)类型挂载。SFM格式仅部分支持。geniso映像应该能够创建超过4GB的hfs混合映像,尽管这还没有经过充分的测试。

16、实例
创建iso文件
[root@localhost weijie]# mkisofs -v -o my.iso /weijie/
I: -input-charset not specified, using utf-8 (detected in locale settings)
genisoimage 1.1.9 (Linux)
Scanning /weijie/
Scanning /weijie/wjtpflR
Writing:   Initial Padblock                        Start Block 0
Done with: Initial Padblock                       Block(s)    16
Writing:   Primary Volume Descriptor               Start Block 16
Done with: Primary Volume Descriptor              Block(s)    1
Writing:   End Volume Descriptor                   Start Block 17
Done with: End Volume Descriptor                  Block(s)    1
Writing:   Version block                           Start Block 18
Done with: Version block                          Block(s)    1
Writing:   Path table                              Start Block 19
Done with: Path table                             Block(s)    4
Writing:   Directory tree                          Start Block 23
Done with: Directory tree                         Block(s)    2
Writing:   Directory tree cleanup                  Start Block 25
Done with: Directory tree cleanup                 Block(s)    0
Writing:   The File(s)                             Start Block 25
Total translation table size: 0
Total rockridge attributes bytes: 0
Total directory bytes: 2048
Path table size(bytes): 26
Done with: The File(s)                            Block(s)    0
Writing:   Ending Padblock                         Start Block 25
Done with: Ending Padblock                         Block(s)    150
Max brk space used 0
175 extents written (0 MB)
You have new mail in /var/spool/mail/root
[root@localhost weijie]# ls
1.c  my.iso  wj123.kpET  wj123.oH2o4P  wj234.q1C  wjtpflR
[root@localhost weijie]#


论坛徽章:
1
15-16赛季CBA联赛之福建
日期:2018-12-10 14:43:45
28 [报告]
发表于 2018-10-31 21:17 |只看该作者
dump
      检查ext2/3/4文件系统,确定哪些文件需要备份,这些需要备份的文件将会被复制到指定的磁盘或者其他存储介质。dump检查Ext 2/3/4文件系统上的文件,并确定哪些文件需要备份。这些文件被复制到给定的磁盘、磁带或其他存储介质中以确保安全保存(请参阅下面的-f选项以进行远程备份)。大于输出介质的转储被分解为多个卷。在大多数媒体上,大小是通过写入来确定的,直到返回媒体结束指示为止。
     在无法可靠地返回媒体结束指示(例如一些盒式磁带驱动器)的媒体上,每个卷都是固定大小的;实际大小是通过指定墨盒介质或通过下面的磁带大小、密度和/或块计数选项来确定的。默认情况下,在提示操作员更改媒体后,每个卷都使用相同的输出文件名。
     此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。
1、语法
     dump [选项]  [-f 目标文件]  源文件
     dump  [-level#]  [-ackMnqSuv]  [-A file]  [-B records]  [-b blocksize]  [-d density]  [-D file]  [-e inode numbers]  [-E file]  [-f file]  [-F script]  [-h level]  [-I nr errors]  [-jcompression  level]  [-L label]  [-Q file]  [-s feet]  [-T date]  [-y]  [-zcompression level]  files-to-dump
     dump [-W | -w]
     files-to-dump要么是文件系统的挂载点,要么是要作为文件系统子集备份的文件和目录列表。在前一种情况下,可以使用安装文件系统的路径或卸载文件系统的设备。在后一种情况下,对备份设置了某些限制:-u是不允许的,唯一支持的转储级别是0,所有文件和目录都必须驻留在同一个文件系统中。

2、选项列表
选项
说明
-level#
备份级别。如果是0,那么就备份整个文件系统;如果大于0,那么就会备份相对于上一个更低级别备份的新文件和修改过的文件。默认是0。在子目录中,只允许使用0级备份
-a
“自动尺寸”。绕过所有的磁带长度计算,并写入,直到媒体结束指示返回。这是最适合大多数现代磁带驱动器,这是默认的。当附加到现有磁带或使用带有硬件压缩的磁带驱动器时,特别推荐使用此选项(在这种情况下,您永远无法确定压缩比)。
-A archive_file
存档指定文件中的“内容转储表”,由RESTORE(使用,以确定文件是否在正在恢复的转储文件中。
-b blocksize
每个转储记录的千字节数。默认的块大小为10,除非-d选项已用于指定6250 BPI或更高的磁带密度,在这种情况下,默认的块大小为32。但是请注意,由于IO系统将所有请求分割成块MAXBSIZE(可低到64 KB),因此在使用更高的值时,可能会遇到转储(和恢复(的问题,这取决于内核和/或libC版本。
-B records
每卷1 kB块的数目。通常不需要,因为转储可以检测到媒体的结束.达到指定大小时,dump将等待您更改卷。此选项将重写基于长度和密度的磁带大小计算。如果压缩限制了每个卷的压缩输出的大小。多个值可以作为一个由逗号分隔的参数给出。每个值将按所列顺序用于一个转储卷;如果转储创建的卷比给定的值数多,则其余卷将使用最后一个值。这对于填充已经部分填充的媒体(然后在空媒体上继续使用全尺寸卷)或混合不同大小的媒体非常有用。
-c
更改默认使用的磁带驱动器,密度为8000 BPI,长度为1700英尺。指定墨盒驱动器将覆盖媒体端检测。
-d density
设置磁带密度。默认为1600 BPI。指定磁带密度将覆盖媒体端检测。
-D file
设置文件的路径名,该文件存储有关前一个完整转储和增量转储的信息。默认位置是/etc/dumpdate
-e inodes
不包含指定的inodes。inodes参数是一个逗号分隔的inode编号列表
-E file
从文本文件中读取备份时要排除的inode列表。该文件应该是一个普通文件,其中包含由换行符分隔的inode编号。
-f filename
将备份写入文件;文件可能是一个特殊的设备文件,如/dev/st0(atAPE驱动器)、/dev/rsd1c(软盘驱动器)、普通文件或-(标准输出)。多个文件名可以作为一个由逗号分隔的参数。每个文件将按所列顺序用于一个转储卷;如果转储所需的卷数量超过给定的名称数,则在提示进行媒体更改后,最后一个文件名将用于所有剩余卷。如果文件的名称为“host:file”或“user@host:file”,dump写入远程主机上的命名文件(应该已经存在,那么转储不会使用RMT(创建新的远程文件)。远程RMT(程序的默认路径名是“/etc/rmt”;这可以被环境变量RMT覆盖
-F script
在每个磁带的末尾运行脚本(最后一个除外)。设备名称和当前卷号将在命令行上传递。如果转储应该继续而不要求用户更改磁带,则脚本必须返回0;如果转储应该继续,则返回0。更改磁带。任何其他退出代码都会导致转储中止。出于安全考虑,转储在运行脚本之前返回到实际用户ID和真实组ID。
-h level
只对给定级别或以上的转储授予用户节点标志UF_NODUMP。默认荣誉级别为1,因此增量备份省略了这些文件,但完整备份保留了这些文件。当给定的备份级别大于这个-h指定的级别时,那么就不备份标志为“UF_NODUMP”的文件。
-I nr_errors
默认情况下,在请求操作符干预之前,转储将忽略文件系统上的前32次读取错误。可以使用此标志将其更改为任意值。当在活动文件系统上运行转储时,这是非常有用的,因为读取错误只是表示映射和转储传递之间的不一致。0,代表忽略所有的错误
-jcompression_level
使用bzlib库压缩要写入磁带上的每个块。只有在将文件或管道转储到文件或管道时,或者在将磁带驱动器转储到磁带驱动器时,如果磁带驱动器能够写入可变长度的块,此选项才能工作。您至少需要0.4b24版本的还原才能提取压缩磁带。使用压缩编写的磁带将与BSD磁带格式不兼容。(可选)参数指定bzlib将使用的压缩级别。默认压缩级别为2。如果指定了可选参数,则选项字母和参数之间不应该有空白。
-k
使用Kerberos身份验证与远程磁带服务器对话。(只有在编译转储时启用此选项时才可用。)
-L label
用户提供的文本字符串标签label被放置到转储头中,在这里,像RESTORE(和FILE(这样的工具可以访问它。请注意,此标签最多限于LBLSIZE(当前16)个字符,其中必须包括终止\0
-m
如果指定了此标志,dump将优化自上次转储以来已更改但未修改的inode的输出(“已更改”和“修改”的含义在stat(2)中定义)。对于这些inode,dump将只保存元数据,而不是保存整个inode内容。此标志的使用必须是一致的,这意味着增量转储集中的每个转储都有该标志,或者没有人拥有该标志。
如果使用此选项,请注意,许多从档案中解压缩文件的程序(例如tar、rpm、unzip、dpkg)可能会将文件的mtime设置为过去的日期。如果修改后的mtime早于以前的级别转储,以这种方式安装的文件可能无法使用“dump-m”正确转储。使用这种“元数据”inode编写的磁带将与bsd磁带格式或较早版本的还原不兼容。
-M
启用多卷功能.使用“-f”指定的名称被视为前缀,并按顺序写入<prefix>001,<prefix>002等等。这在将文件转储到Ext 2/3/4分区上的文件时非常有用,以绕过2GB文件大小限制
-n
每当转储需要操作员注意时,以类似于wall(1)的方式通知组操作符中的所有操作符。
-q
每当需要操作员注意时,立即使dump中止,而无需提示写入错误、磁带更改等。
-Q file
启用快速文件访问支持。每个inode的磁带位置存储在RESTORE使用的文件中(如果用参数q和文件名调用)直接将磁带定位在当前正在进行的文件恢复中。这将节省从大型备份恢复单个文件的时间,保存磁带和驱动器的磁头。
建议将st驱动程序设置为在调用带参数的转储/还原之前返回逻辑磁带位置而不是物理磁带位置。因为并非所有磁带设备都支持物理磁带位置,所以当st驱动程序设置为默认物理设置时,这些磁带设备在转储/还原期间返回一个错误。请参见st(4)手册页,选项MTSETDRVBUFFER。,或mt(1)手册页,介绍如何设置驱动程序返回逻辑磁带位置。在使用参数“-Q”调用RESTORE之前,始终确保st驱动程序设置为返回调用转储过程中使用的相同类型的磁带位置。否则,还原可能会被混淆。
此选项可在转储到本地磁带(见上文)或本地文件时使用。
-s feet
试图计算在特定密度下所需的磁带数量。如果超过此数量,则转储提示输入新磁带。建议在这个选项上有点保守。默认的磁带长度是2300英尺。指定磁带大小将覆盖媒体端检测。
-S
大小估计。确定在没有实际执行转储的情况下执行转储所需的空间数量,并显示它将占用的估计字节数。这对于增量转储非常有用,可以确定需要多少卷媒体。
-T date
指定备份的日期。使用指定的日期作为转储的开始时间,而不是从查看/etc/dumpdate中确定的时间。日期的格式与ctime(3)的格式相同,后面跟着rfc 822时区规范:一个正负号,后面跟着两位数的小时数和两位数的分钟数。例如,格林威治以西8小时为0800小时,格林威治以东2小时半为0230小时。此时区设置考虑了夏时制时间(如果适用于时区):当夏时制时间生效时,UTC偏移量将与夏时制时间无效时的抵消值不同。为了向后兼容,如果没有指定时区,则假定为本地时间。此选项对于希望在特定时间内转储的自动转储脚本非常有用。-T选项与-u选项相互排斥。
-u
备份完成后,在/etc/dumpdates中记录备份的文件系统、日期。人们可以阅读/etc/dumpdate的格式,包括每行一个空闲的格式记录:文件系统名称、增量级别和ctime(3)格式转储日期,后面是rfc 822时区规范(详见-u选项)。如果未指定时区偏移量,则将时间解释为本地时间。每当写入文件时,文件中的所有日期都转换为本地时区,而不更改UTC时间。每个文件系统在每个级别上可能只有一个条目。如果需要,可以编辑/etc/dumpdate文件以更改任何字段。
-v
显示详细的信息,帮助调试错误
-W
显示出最近的备份时间、层级,检测需要备份的文件。当W选项出现时,其他的选项都被忽略。转储告诉操作符哪些文件系统需要转储。这个信息是从文件“/etc/dumpdate”和“/etc/fsman”收集的。-W选项会导致对”/etc/dumpdate”中的所有文件系统和”/etc/mtab”中的所有文件系统以及在”/etc/mtab”和”/etc/fstat”中识别的文件系统打印出来。最近的转储日期和级别将突出显示应该转储的文件系统。
-w
类似于“-W”,但只在“/etc/mtab”和“/etc/fstat”中打印需要转储的可识别的文件系统。
-y
使用lzo库压缩要写入磁带的每个块。这不能像zlib库那样压缩,但速度要快得多。只有在将文件或管道转储到磁带驱动器时,或者当磁带驱动器能够写入可变长度的块时,此选项才能工作。您至少需要0.4b34版本的还原才能提取压缩磁带。使用压缩编写的磁带将与bsd磁带格式不兼容。
-zcompression level
使用zlib库压缩要写入磁带上的每个块。此选项仅在将文件或管道转储到文件或管道时才能工作,或者在将磁带驱动器转储到磁带驱动器时,如果磁带驱动器能够写入可变长度的块,则此选项才能工作。您将需要至少0.4b22版本的恢复,以提取压缩磁带。使用压缩编写的磁带将与BSD磁带格式不兼容。(可选)参数指定zlib将使用的压缩级别。默认压缩级别为2。如果指定了可选参数,则选项字母和参数之间不应该有空白。

3、说明
     dump需要操作员对以下条件进行干预:磁带结束、转储结束、磁带写入错误、磁带打开错误或磁盘读取错误(如果存在nr错误的阈值以上)。除了通知-n键所暗示的所有操作符之外,在转储不能继续时,或者在发生严重错误时,转储与转储控制终端上的操作符进行交互。所有的问题转储构成必须通过键入“是”或“否”,适当地回答。
     因为做一个dump需要花费大量的时间和精力,所以在每个磁带卷的开头都会转储检查点。如果由于某种原因写入该卷失败,则在重新装入和删除旧磁带并安装新磁带之后,在操作员许可下,转储将从检查点重新启动。
     dump以周期性的间隔告诉操作符正在发生什么,包括通常对要写入的块数、所需磁带的数量、完成时间和磁带更改时间的低估计。输出是冗长的,因此其他人知道终端控制转储是繁忙的,而且会持续一段时间。
在发生灾难性磁盘事件时,将所有必要的备份磁带或文件恢复到磁盘所需的时间可以通过错位增量转储来保持在最低限度。一种将磁带数量降到最小的增量式转储的有效方法如下:
     1)总是从0级备份开始,例如:“/sbin/dump -0u -f /dev/st0 /usr/src“。这应该每隔一段时间进行一次,比如每月一次或每两个月一次,并在一套永久保存下来的新磁带上进行。
     2)在级别0之后,每天都会对活动文件系统进行转储,并使用此转储级别序列:”3 2 5 4 7 6 9 8 9 9 ... “。
经过几个月左右的时间,每天和每周的磁带都应该从转储周期中轮换出来,新的磁带应该被带进来。

4、环境变量
     1)TAPE。如果没有指定“-f“选项,dump将使用通过TAPE指定的设备作为转储设备。TAPE可以是磁带名字、host:tapename、user@host:tapename。
     2)RMT。环境变量RMT将用于确定远程rmt(程序的路径名。
     3)RSH。dump使用此变量的内容来确定远程备份时要使用的远程shell命令的名称(rsh、ssh等)。如果未设置此变量,则将使用rcmd(3),但只有root才能进行远程备份。

5、文件
     1)/dev/st0,要备份到的默认磁带单元。
     2)/etc/dumpdates,dump的日期记录。
     3)/etc/fstab,转储表:文件系统和频率
     4)/etc/mtab,转储表:挂载的文件系统
     5)/etc/group,查找组操作符

6、退出码
     成功时dump状态为零。启动错误用退出代码1表示;异常终止用退出代码3表示。
当发生读取错误时,转储输出相应的物理磁盘块和扇区号以及Ext 2/3/4逻辑块号。它不打印相应的文件名,甚至不打印inode编号。用户必须使用调试器(,命令nCheck和icheck将由转储输出的ext2blk数字转换为inode号,然后转换为文件名。
     每个卷轴都需要一个新的进程,所以卷轴的父进程已经写的只是挂在一起,直到写了整个磁带。如果压缩为ON,则估计的磁带数不正确。如果dump知道dump序列,就会很好,保持跟踪的磁带,告诉操作员要安装什么磁带,并为运行恢复的操作员提供更多的帮助。
     由于转储的安全历史,它无法在不以root用户身份运行的情况下进行远程备份。目前,如果设置setuid(与以前一样),它就能工作,但这可能会构成安全风险。请注意,可以将rsh设置为使用远程shell程序。

7、bug
     这个版本的dump只能处理Ext 2/3/4文件系统,这可能被认为是一个错误。具体来说,它不适用于FAT文件系统。忽略文件系统上少于32个读取错误(用-i更改此错误)。如果注意读取错误很重要,则可以解析转储的输出,以查找包含文本“读取错误”的行。

8、实例
备份目录/weijie
[root@localhost /]# dump -0f /bak/1.bak /weijie/      //备份到1.bak
  DUMP: Date of this level 0 dump: Fri Sep  7 09:26:15 2018
  DUMP: Dumping /dev/mapper/VolGroup-lv_root (/ (dir weijie)) to /bak/1.bak
  DUMP: Label: none
  DUMP: Writing 10 Kilobyte records
  DUMP: mapping (Pass I) [regular files]
  DUMP: mapping (Pass II) [directories]
  DUMP: estimated 418 blocks.
  DUMP: Volume 1 started with block 1 at: Fri Sep  7 09:26:15 2018
  DUMP: dumping (Pass III) [directories]
  DUMP: dumping (Pass IV) [regular files]
  DUMP: Closing /bak/1.bak
  DUMP: Volume 1 completed at: Fri Sep  7 09:26:15 2018
  DUMP: Volume 1 410 blocks (0.40MB)
  DUMP: 410 blocks (0.40MB) on 1 volume(s)
  DUMP: finished in less than a second
  DUMP: Date of this level 0 dump: Fri Sep  7 09:26:15 2018
  DUMP: Date this dump completed:  Fri Sep  7 09:26:15 2018
  DUMP: Average transfer rate: 0 kB/s
  DUMP: DUMP IS DONE
You have new mail in /var/spool/mail/root
[root@localhost weijie]# file /bak/1.bak                //查看备份文件
/bak/1.bak: new-fs dump file (little endian), This dump Fri Sep  7 09:26:15 2018, Previous dump Thu Jan  1 08:00:00 1970, Volume 1, Level zero, type: tape header, Label none, Filesystem / (dir weijie), Device /dev/mapper/VolGroup-lv_root, Host localhost.localdomain, Flags 3


论坛徽章:
1
15-16赛季CBA联赛之福建
日期:2018-12-10 14:43:45
29 [报告]
发表于 2018-11-01 17:05 |只看该作者
ex2fsck
      检查ext2、ext3、ext4文件系统,如果系统已经挂载了,那么不建议去检查,因为这样是不安全的。此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。

1、语法
      e2fsck  [-pacnyrdfkvtDFV]  [-b superblock]  [-B  blocksize] [-l|-L bad_blocks_file ]  [-C fd]  [-j external-journal]  [-E extended_options ]  device
      设备是存储文件系统的设备文件(例如/dev/hdc 1)。

2、选项列表
选项
说明
-a | -p
自动修复文件系统
-b superblock
指定块大小。不要使用普通的超级块,而是使用由superblock指定的替代超级块。此选项通常在主超级块损坏时使用。备份超级块的位置取决于文件系统的块大小。对于具有1k块的文件系统,可以使用备份超级块。在块8193处找到;对于具有2k块的文件系统,在块16384处找到;对于4k块在块32768处找到。
其他备份超级块可以通过使用mke2fs程序使用-n选项打印出创建超级块的位置来确定。mke2fs的-b选项必须指定文件系统的块大小,以便打印出准确的超级块位置。
如果指定了另一个超级块,并且文件系统不是只读的,e2fsck将确保主超级块在完成文件系统检查后得到适当更新。
-B blocksize
正常情况下,e2fsck将在不同块大小下搜索超级块,以试图找到适当的块大小。在某些情况下,此搜索可能会被愚弄。此选项迫使e2fsck只尝试在特定块大小上定位超级块。如果找不到超级块,e2fsck将以致命错误结束。
-c
此选项会导致e2fsck使用badblock(程序对设备执行只读扫描,以查找任何坏块。如果发现任何坏块,则将它们添加到坏块inode中,以防止将它们分配给文件或目录。如果指定了该选项两次,则将使用无损读写测试完成坏块扫描。
-C fd
此选项导致e2fsck将完成信息写入指定的文件描述符,以便监视文件系统检查的进度。运行e2fsck的程序通常使用此选项。如果文件描述符号为负数,则将使用文件描述符的绝对值,而进度信息最初将被抑制。之后,可以通过向e2fsck进程发送SIGUSR 1信号来启用它。如果指定的文件描述符为0,e2fsck将在其业务进行时打印一个完成栏。这要求e2fsck在视频控制台或终端上运行。
-d
显示调试信息
-D
优化文件系统中的目录。此选项导致e2fsck尝试优化所有目录,如果文件系统支持目录索引,则通过重新索引这些目录,或者对较小目录的目录进行排序和压缩,或者使用传统的线性目录对文件系统进行排序和压缩。即使没有-D选项,e2fsck有时也可能优化几个方向。例如,如果启用目录索引,并且目录没有索引,或者索引结构被破坏并需要重建,则会受益。-D选项强制对文件系统中的所有目录进行优化。它们较小,搜索速度稍快,但实际上,您不需要使用此选项。-D选项将检测单个目录中具有重复名称的目录项,由于性能原因,e2fsck通常不强制执行。
-E extended_options
设置e2fsck扩展选项。扩展选项是逗号分隔的,可以使用等于(‘=’)号进行参数设置。
ea_ver=extended_attribute_version,在检查文件系统时,设置e2fsck所需的扩展属性块的版本。版本号可能是1或2。默认的扩展属性版本格式是2。
fragcheck,在传递1期间,为文件系统中的文件打印任何不连续块的详细报告。
discard,在进行完整的文件系统检查后,尝试丢弃空闲块和未使用的inode块。
nodiscard,不要试图丢弃空闲块和未使用的inode块。这个选项与discard选项正好相反。此设置为默认设置。
-f
强制检查
-F
在开始检查之前,清空缓冲区
-I file
指定文件中的块添加在损坏列表
-j file
设置文件系统在日志文件的路径
-k
当与-c选项相结合时,坏块列表中的任何现有坏块将被保留,而通过运行badblocks (发现的任何新坏块将被添加到现有的坏块列表中。
-l filename
将文件名指定的文件中所列的块号添加到坏块的列表中。此文件的格式与badblocks (程序生成的格式相同。请注意,块号是基于文件系统的块大小。因此,对e2fsck使用-c选项更简单、更安全,因为它将确保将正确的参数传递给badblock程序。
-L filename
将坏块列表设置为文件名指定的块列表。(此选项与-l选项相同,除非在将文件中列出的块添加到坏块列表之前清除坏块列表。)
-n
打开文件系统只读,并假设对所有问题的答案为“no”。允许非交互地使用e2fsck。此选项不能与-p或-y选项同时指定。
-p
自动修复(“preen”)文件系统。此选项将导致e2fsck自动修复任何不需要人工干预就能安全修复的文件系统问题。如果e2fsck发现可能需要系统管理员采取额外纠正措施的问题,e2fsck将打印问题的描述,然后以代码4退出。(请参阅退出代码部分。)此选项通常由系统的引导脚本使用。它不能与-n或-y选项同时指定。
-r
不执行任何操作,提供向后的兼容性
-S
交换文件系统的字节顺序
-t
打印e2fsck的时间统计信息。如果使用此选项两次,则附加的时间统计信息将按传递方式打印。
-v
显示执行的详细过程
-V
显示命令版本号,并且退出
-y
所有的交互回话都回答yes,此选项不能与-n或-p选项同时指定。

3、说明
      e2fsck用于检查ext 2/ext 3/ext 4系列文件系统。对于使用日志的ext 3和ext 4文件系统,如果系统在没有任何错误的情况下被不干净地关闭,通常在日志中重播提交的事务之后,文件系统应该标记为干净。因此,对于使用日志的文件系统,e2fsck通常会重播日志并退出,除非它的超级块表明需要进一步检查。
      请注意,通常在挂载的文件系统上运行e2fsck是不安全的。唯一的例外是指定了-n选项,并且没有指定-c、-l或-L选项。然而,即使这样做是安全的,如果挂载了文件系统,e2fsck打印的结果也是无效的。

4、返回值
      e2fsck可以返回以下值:
    0,没有错误。
    1,文件系统错误更正。
    2,文件系统错误更正,系统应该重启。
    4,文件系统错误没有更正。
    8,操作错误。
    16,语法错误。
    32,用户取消了操作。
    128,共享库错误

5、信号
  对e2fsck发送以下信号,并产生相应的结果:
    SIGUSR1,此信号导致e2fsck开始显示完成栏或发出进度信息。(见对-C选项的讨论。)
    SIGUSR2,此信号导致e2fsck停止显示完成栏或发出进度信息。。

6、实例
以只读的方式检查sda1
[root@localhost ~]# e2fsck  -n /dev/sda1
e2fsck 1.41.12 (17-May-2010)
Warning!  /dev/sda1 is mounted.             //文件系统已经挂载,因此会有警告
Warning: skipping journal recovery because doing a read-only filesystem check.      //以只读的方式执行,不去修复
/dev/sda1: clean, 39/128016 files, 49152/512000 blocks


论坛徽章:
1
15-16赛季CBA联赛之福建
日期:2018-12-10 14:43:45
30 [报告]
发表于 2018-11-02 20:31 |只看该作者
fsck
      检查或者修复指定的文件系统,可以是设备名、挂载点,还可以是一个ext2的label,或者是一个UUID。此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。
1、语法
      fsck [选项]  –t  systype device
      fsck [-sAVRTMNP]  [-C [fd]]  [-t fstype]  [filesys...] [--]  [fs-specific-options]

2、选项列表
选项
说明
-s
检查的序列。如果有多个文件系统需要检查,那么按照顺序来操作。注意:e2fsck(默认以交互模式运行。要使e2fsck(在非交互式模式下运行,必须指定-p或-a选项,如果希望自动更正错误,则必须指定-n选项。
-t fslist
指定要检查的文件系统的类型。当指定-A标志时,只检查与fslist匹配的文件系统。fslist参数是以逗号分隔的文件系统和选项说明符列表。这个逗号分隔的列表中的所有文件系统都可能以否定操作符“no”或“!”作为前缀,该操作符要求只检查fslist中未列出的文件系统。如果fslist中的所有文件系统都不以否定操作符作为前缀,那么将只检查fslist中列出的文件系统。
选项说明符可能包含在逗号分隔的fslist中。它们必须具有“opts=s-option”的格式。如果存在选项说明符,那么只有在“/etc/fstat”的挂载选项字段中包含s-option的文件系统才会被检查。如果选项说明符以否定操作符为前缀,那么只有那些没有fs-option的文件系统才会被选中。在它们的挂载选项字段“/etc/ffstab中”将被检查。例如,如果“opts=ro”出现在fslist中,那么只会检查“/etc/fstab”中列出的带有ro选项的文件系统。
为了兼容Mandrake发行版,它的引导脚本依赖于对fsck程序的未经授权的ui更改,如果在fslist中找到了一个文件系统类型的循环,就会将它视为将opts=loop指定为-t选项的参数。
通常,文件系统类型是通过在“/etc/fstab”文件中搜索文件并使用相应的条目来推断的。如果无法推断该类型,并且只有一个文件系统作为-t选项的参数,fsck将使用指定的文件系统类型。如果该类型不可用,则使用默认的文件系统类型(当前Ext 2)。
-A
遍历“/etc/fstab”文件,并尝试在一次运行中检查所有文件系统。此选项通常来自“/etc/rc”系统初始化文件,而不是用于检查单个文件系统的多个命令。除非指定了-P选项(见下文),否则将首先检查根文件系统。之后,将按照“/etc/fstab”文件中fs_passno(第六个)字段指定的顺序签入文件系统。跳过fs_passno值为0的文件系统,将检查fs_passno值大于零的文件系统。如果有多个文件系统具有相同的通行号,fsck将尝试并行地检查它们,尽管它将避免在同一个物理磁盘上运行多个文件系统检查。
fsck不与任何其他设备并行检查堆叠设备。因此,在“/etc/fstab“文件中非常常见的配置是将根文件系统设置为fs_passno值为1,并将所有其他文件系统设置为fs_passno值为2。如果由于某种原因需要避免多个文件系统检查并行运行,则选择不使用此配置。例如,如果有问题的机器内存不足,因此过多的分页会引起关注。
fsck通常不会在调用文件系统的检查器之前检查设备是否实际存在。因此,如果文件系统特定的检查器返回致命错误,则不存在的设备可能导致系统在引导期间进入文件系统修复模式。“/etc/fstab”挂载选项不会失败,可以让fsck跳过不存在的设备。fsck还跳过具有特殊文件系统类型AUTO的不存在设备。
-C [fs]
显示检查的进度。显示支持这些文件系统检查程序的完成/进度条(目前只用于ext 2和ext 3)。Fsck将管理文件系统检查器,以便它们中一次只显示一个进度条。gui前端可以指定文件描述符fd,在这种情况下,进度条信息将发送到该文件描述符。
-M
不要检查已安装的文件系统,并返回安装文件系统的退出代码0。
-N
不执行检查操作,只是演示一下
-P
设置-A标志时,与其他文件系统并行检查根文件系统。这不是世界上最安全的事情,因为如果根文件系统怀疑e2fsck(可执行文件可能被破坏了!这个选项主要是为那些不希望将根文件系统重新划分为小型和紧凑(这是真正正确的解决方案)的系统管理员提供的。
-R
当使用-a标志检查所有文件系统时,跳过根文件系统
-T
启动时不要显示标题
-V
显示执行过程
fs-specific-options
fsck不理解的选项被传递给特定于文件系统的检查器。这些参数不能使用参数,因为fsck无法正确猜测哪些参数可以选择选项,哪些参数不能。后面的选项和参数被视为要传递给文件系统特定检查器的文件系统特定选项。
请注意,fsck的设计并不是为了将任意复杂的选项传递给特定于文件系统的检查器。如果您正在做一些复杂的事情,请直接执行特定于文件系统的检查程序。如果您传递fsck一些非常复杂的选项和参数,并且它没有按照您的预期执行,那么就不要将它报告为bug。你几乎肯定在做一些不该用fsck做的事。
不同文件系统特定fsck的选项没有标准化。如果有疑问,请查阅文件系统特定检查器的手册页。虽然没有保证,但大多数文件系统检查程序都支持下列选项
-a
自动修复文件系统。请注意e2fsck(只支持向后兼容。此选项映射到e2fsck的-p选项,与某些文件系统检查器支持的-a选项不同,该选项是安全的。
-n
对于某些特定于文件系统的检查程序,-n选项将导致fs特定的fsck避免试图修复任何问题,但只需将此类问题报告给stdout。然而,并不是所有特定于文件系统的检查程序都是如此。特别是,如果给定该选项,fsck.reiserfs(将不会报告任何损坏。fsck.minix(根本不支持-n选项。
-r
以交互方式修复文件系统(请求确认)。注意:如果多个fsck并行运行,使用此选项通常是个坏主意。还请注意,这是e2fsck的默认行为;它仅出于向后兼容性的原因支持此选项。
-y
对于某些特定于文件系统的检查程序,-y选项将导致fs特定的fsck总是试图自动修复任何检测到的文件系统损坏。有时专家可能能够更好地手动驱动fsck。请注意,并非所有特定于文件系统的检查程序都实现了此选项。特别是fsck.minix(和fsck.lamfs(不支持-y选项。

3、说明
      如果命令行上没有指定任何文件系统,并且没有指定-A选项,fsck将默认为串行地检查/etc/fstat中的文件系统。fsck指令可以有以下的返回值:
      0,没有错误。
     1,文件系统错误更正。
     2,系统应该重启。
     4,系统错误没有更正。
     8,操作错误。
     16,语法错误。
     32,用户取消fsck。
     128,共享库错误。
     检查多个文件系统时返回的退出代码是所检查的每个文件系统的退出代码的逐位OR。
     实际上,fsck只是linux下可用的各种文件系统检查器(fsck.fstype)的前端。文件系统特定的检查器首先在/sbin中搜索,然后在/etc/fs和/etc中搜索,最后在PATH环境变量中列出的目录中搜索。

4、环境变量
     fsck的执行收到以下环境变量的影响:
     1)FSCK_FORCE_ALL_PARALLEL,如果设置了此环境变量,fsck将尝试并行运行所有指定的文件系统,而不管文件系统是否位于同一设备上。(这对于RAID系统或高端存储系统(如IBM或EMC等公司销售的存储系统)非常有用。)请注意,fs_passno值仍被使用。
     2)FSCK_MAX_INST,这个环境变量将限制一次运行的文件系统检查器的最大数量。这允许具有大量磁盘的配置避免fsck一次启动过多的文件系统检查器,这可能会使系统上可用的CPU和内存资源超载。为零,则可以生成无限数量的进程。这是当前的默认情况,但未来版本的fsck可能会尝试根据从操作系统收集会计数据自动确定可以运行多少个文件系统检查。
     3)PATH,PATH环境变量用于查找文件系统检查器,首先搜索一组系统目录:/sbin、/sbin/fs.d、/sbin/fs、/etc/fs和/etc/fs,然后搜索路径环境中的一组目录。
     4)FSTAB_FILE,这个环境变量允许系统管理员覆盖/etc/fstab文件的标准位置,对于正在测试fsck的开发人员也很有用。

5、实例
     检查sdb4
[root@localhost ~]# [root@localhost ~]# fsck -t swap /dev/sdb4
fsck from util-linux-ng 2.17.2
e2fsck 1.41.12 (17-May-2010)
/dev/sdb4 was not cleanly unmounted, 强制检查.
Resize inode not valid.  重建<y>?是
第一步: 检查inode,块,和大小
第二步: 检查目录结构
第3步: 检查目录连接性
Pass 4: Checking reference counts
第5步: 检查簇概要信息
Free 块s count wrong for 簇 #0 (7854, counted=7855).
处理<y>? 是
Free 块s count wrong (15722, counted=15723).
处理<y>? 是
/dev/sdb4: ***** 文件系统已修改*****
/dev/sdb4: 11/4096 files (0.0% non-contiguous), 661/16384 blocks
[root@localhost ~]#


您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP