生成iso文件

其实很简单用dd命令就可以搞定。

[guo@guo ~]$ dd if=/home/guo/me.sh  of=/home/guo/win.sh
记录了0+1 的读入
记录了0+1 的写出
159字节(159 B)已复制,0.000139826 秒,1.1 MB/秒

上面就是把/home/guo/me.sh 文件生成为win.iso文件并保存在/home/guo/文件夹下。


附redhat中的dd帮助文档


[guo@guo ~]$ dd --help
用法:dd [操作数] ...
 或:dd 选项
复制文件,依照操作数转换并格式化。

  bs=比特数    一次读写的比特数(参见 ibs=,obs=)
  cbs=比特数    一次转换的比特数
  conv=CONVS    依照每个逗号分割的标志列表转换文件
  count=块数    只将指定个块数复制到块
  ibs=比特数    一次读取的比特数(默认:512)
  if=文件    从指定文件中读取
  iflag=符号    按照以逗号分隔的符号列表指定的方式读取
  obs=比特数    一次写入指定比特数(默认:512)
  of=文件    写入到指定文件
  oflag=符号    按照以逗号分隔的符号列表指定的方式写入
  seek=块数    在输出开始处跳过指定的块数
  skip=块数    在输入开始处跳过指定的块数
  status=noxfer    禁止传输统计

块和字节数后可能带有以下的一个或多个后缀:
c =1, w =2, b =512, kB =1000, K =1024, MB =1000*1000, M =1024*1024, xM =M
GB =1000*1000*1000, G =1024*1024*1024, and so on for T, P, E, Z, Y.

每个 CONV 符号可能为:

  ascii        由EBCDIC 码转换至ASCII 码
  ebcdic    由ASCII 码转换至EBCDIC 码
  ibm        由ASCII 码转换至替换的EBCDIC 码
  block        将结束字符块里的换行替换成等长的空格
  unblock    将cbs 大小的块中尾部的空格替换为一个换行符
  lcase        将大写字符转换为小写
  notrunc    不截断输出文件
  ucase        将小写字符转换为大写
  swab        交换每一对输入数据字节
  noerror    读取数据发生错误后仍然继续
  sync        将每个输入数据块以NUL 字符填满至ibs 的大小;当配合block
        或unblock 时,会以空格代替NUL 字符填充
  noerror    读取数据发生错误后仍然继续
  sync        把每个输入的块以 NUL 填充至 ibs 的大小
        如果配合 block 或 unblock 使用, 则以空格代替 NUL 填充
  fdatasync    结束前将输出文件数据写入磁盘
  fsync    类似上面,但是元数据也一同写入

FLAG 符号可以是:

  append    追加模式(仅对输出有意义;隐含了conv=notrunc)
  direct    使用直接I/O 存取模式
  directory    除非是目录,否则 directory 失败
  dsync        使用同步I/O 存取模式
  sync        与上者类似,但同时也对元数据生效
  fullblock    为输入积累完整块(仅iflag)
  nonblock    使用无阻塞I/O 存取模式
  noatime    不更新存取时间
  noctty    不根据文件指派控制终端
  nofollow    不跟随链接文件

对运行中的"dd"进程发送一个USR1 信号会使得
I/O 的统计信息被打印到标准错误设备然后恢复复制操作。

  $ dd if=/dev/zero of=/dev/null& pid=$!
  $ kill -USR1 $pid; sleep 1; kill $pid
  18335302+0 records in
  18335302+0 records out
  9387674624 bytes (9.4 GB) copied, 34.6279 seconds, 271 MB/s


posted on 2011-11-12 14:03  无心出岫  阅读(496)  评论(0编辑  收藏  举报