hsgzr 回复于:2004-05-19 16:42:15 |
此贴难道不好吗?怎么无一人发表个人见解 |
hsgzr 回复于:2004-05-19 16:42:15 |
此贴难道不好吗?怎么无一人发表个人见解 |
hsgzr 回复于:2004-05-19 16:44:10 |
本来想陆续将UNIX下的常用工具的使用方法介绍一下 看来大家都会 没必要了 人也就不费心了 |
seastars 回复于:2004-05-19 17:33:23 |
好,非常好,请楼主继续,TX! |
hygs 回复于:2004-05-19 18:52:34 |
非常好,请楼主继续多帖;
老鸟无用,菜鸟求之不得! |
hygs 回复于:2004-05-19 18:56:52 |
最好还能具体一点,比如“用法:...... 举例:.........”等等。 |
黄山の刀 回复于:2004-05-19 19:50:05 |
继续啊
继续 |
camham 回复于:2004-05-20 12:00:47 |
顶
不是很了解这个命令的用途,收藏先 |
qym 回复于:2004-05-20 13:35:05 |
最好能举些例子,谢谢 |
springrain 回复于:2004-05-20 14:48:41 |
有没有详细的例子给大家看啊 |
sdclearcase/" target="_blank" >ccf 回复于:2004-05-20 15:07:40 |
例如制作软盘的镜像文件:
dd if=/dev/rfd0135ds18 of=file.dd 把镜像文件恢复到软盘: dd if=file.dd of=/dev/rfd0135ds18 使用 dd(c)指令,可以把一个文件转换成另一个文件,也可以选择文件的一部份传输,在传输的数据中,也可以交换字节顺序。 $dd if=/dev/fd0 of=/temp/save skip=5 count=86 bs=5k 上面的指令″/dev/fd0″ 是指电脑上的软盘,″skip=n″代表在复制到输出文件之前,跳过输入文件上的几个记录。″bs=n″则表示设置输入输出字节块长度,用 k 表示 1024 字节。″count=n″只复制输入记录的指定数。 同时,也可以利用 dd 指令检查归档(archive)情况,指令如下: $dd if=dev/fd0 of=/dev/null bs=1k 1200+0 record read in 1200+0 record read out |
sdccf 回复于:2004-05-20 15:17:55 |
DD命令分割文件的实际例子:
为了将一台安装SCO UNIX 5.0.5主机上的TAR打包文件备份, 需要将其通过网络传送到另外一台配有磁带机的UNIX主机上。两台主机通过TX530网卡相连,用FTP传送的时候,前几个文件分别在10M、20M字节大小,都能够顺利传送。但其中有一个文件压缩后体积已达98M之巨,传送了几次,要么只能传40M, 要么只能传20M左右就导致网络崩溃,换画面PING对方主机,本应为零的速率延迟降为2400多毫秒,而且误码率极高,只有重新启动两台主机才能恢复网络通讯。 UNIX的SHELL功能强大,非WINDOWS可比,从上面使用的TAR、FTP已可管窥。同样,UNIX已经提供了文件切割功能,不需要费力气去寻找第三方的文件切割程序。能完成这个功能的UNIX命令就是DD。 要切割的大文件为DGJD,共98336321字节,则: dd if=dgjd of=zz1 bs=1 count=20000000 dd if=dgjd of=zz2 bs=1 count=20000000 skip=20000000 dd if=dgjd of=zz3 bs=1 count=20000000 skip=40000000 dd if=dgjd of=zz4 bs=1 count=20000000 skip=60000000 dd if=dgjd of=zz5 bs=1 count=18336321 skip=80000000 其中IF(INPUT FILENAME)是要切割的大文件名,OF(OUTPUT FILENAME)是切割后的子文件名,BS是指明以多少字节作为一个切割记录单位,COUNT是要切割的单位记录数,SKIP是说明切割时的起点,单位同样以BS设定值为准。通过上述五条指令就将DGJD大文件切割成为4个2千万字节、1个18336321字节的子文件。要注意的是SKIP的值不能错。 由此 也不难看出,DD切割是“非损耗”式的切割,并且支持从任意位置开始的任意大小的切割。 要将生成的ZZ1、ZZ2、ZZ3、ZZ4四个子文件组装为XDGJD,则: dd if=zz1 of=xdgjd bs=1 count=20000000 dd if=zz2 of=xdgjd bs=1 count=20000000 seek=20000000 dd if=zz3 of=xdgjd bs=1 count=20000000 seek=40000000 dd if=zz4 of=xdgjd bs=1 count=20000000 seek=60000000 dd if=zz5 of=xdgjd bs=1 count=18336321 seek=80000000 其中SKIP参数改为SEEK参数,指明组装的新大文件XDGJD每次的开始位置是从文件头开始多少字节。如果缺省,则组装从文件头开始,显然这不是我们每次都希望的, 所以需用SEEK参数明确指出开始位置。通过以上5个指令,即可将5个子文件重新组装为一个大文件。将切割后生成的子文件重新用FTP传送,结果有的能够顺利传送, 有的仍然导致网络瘫痪,不怕,继续切割,切成每个一千万字节,再传,OK!成功传送! 测试表明,每次传送的文件最好小于12M字节,否则可能导致网络故障。另外,DD这个命令最初是为了进行编码转换而设计的,用于在大型机中将EBCDIC字符代码转换为ASCII代码,但此功能已不常用,现在DD成了文件系统备份的工具,以及做一些类似文件切割的“另类业务”,正所谓“有心栽花花不开,无心插柳柳成荫”,不过对于用户来说,重要的是软件能否完成自己需要的功能,它的“本职工作”是什么并不重要,“不管白猫黑猫,捉住老鼠就是好猫”!实用为本,软件的生命力就在于实用。 |
whai 回复于:2004-05-20 15:29:57 |
找了好久的好东东,谢谢精灵王,谢谢老法王! |
sdccf 回复于:2004-05-20 15:34:37 |
dd命令复制硬盘 :
1)确保原盘和目的盘几何特性相同 2)成为超级用户 3)在用主盘的系统中输入touch /reconfigure,有主盘的系统需要/reconfigure文件,以便在重新启动时发现复制盘 4)输入init 0关闭系统 5)将复制盘连接到系统并开机 6)在OK提示符下输入boot 7)输入dd if=/dev/dsk/device-name of=/dev/dsk/device-name bs=blocksize (输入文件if是主盘设备,输入文件of是复制盘设备) 8)输入fsck /dev/rdsk/device-name (检测新的文件系统) 9)输入mount /dev/rdsk/device-name /mnt 加载复制盘的root文件系统。 10)编辑复制盘上的/etc/vfstab文件,指向正确的设备名。 11)输入umount/mnt ,卸载复制盘的root文件系统。 12)输入init 0关闭系统。 13)输入boot diskN -s以单用户模式引导复制盘。 14)输入sys-uconfig恢复配置复制盘,在该盘配置恢复后系统关闭。 15)输入boot diskN 引导复制盘 16)提供相关的系统信息。(HOSTNAME TIMEZONE IP...) 17)系统完成,即作为超级用户登录验证系统信息。 例: #dd if=/dev/dsk/c0t0d0s2 of=/dev/dsk/c0t1d0s2 bs=100k #fsck /dev/rdsk/c0t1d0s2 #mount /dev/rdsk/c0t1d0s2 /mnt #cd /mnt/etc #vi /etc/vfstab #cd /;umount /mnt #init 0 OK boot disk2 -s #sys-unconfig OK boot disk2 -s |
sdccf 回复于:2004-05-20 15:36:13 |
SCO UNIX 环境下用dd命令进行不同容量硬盘的对拷 :
在开始硬盘对拷之前,首先应将已安装好系统的源盘和空白目标盘分别设置跳线,安装在计算机上。开机,进入CMOS设置两块硬盘的参数,然后进入源盘的超级用户root,就可以开始拷贝了。 以下是在digital P200微机上,SCO Open Server Release 5环境下进行硬盘对拷的过程。 1.增加一块硬盘 #mkdev hd 1 0 Your root hard disk is attached to an IDE controller. Pick one of the choices below or you may quit and Invoke mkdev hd -u for a detail usage message. 1)Add a hard disk to IDE controller 2)Add a hard disk to SCSI controller 3)Add a hard disk to an IDA controller(EISA) Enter 1,2,3,or enter 'q' to quit:(输入1) …… If you wish to exit the entire installation at this menu, Press the <DEL>key. Hard Disk Drive 1 Configuration 1.Display current disk parameters 2.Modify current disk parameters 3.Select default disk parameters Enter an option or 'q' to quit: (这是dkinit程序的菜单。在此可以选1显示目标硬盘参数,如不符要求,可选2进行修改,然后输入q继续) …… 1.Display Partition Table 2.Use Entire Disk for UNIX 3.Use Rest of Disk for UNIX 4.Create UNIX Partition 5.Activate Partition 6.Delete Partition 7.Create Partition Enter your choice or 'q' to quit: (这是fdisk程序的菜单。在此可以对目标硬盘按需要进行分区,然后输入q继续) …… 1.Print Current Bad Track Table 2.Scan Disk (You may choose Read-Only or Destructive later) 3.Add Entries to Current Bad Track Table by Cylinder/Head Number 4.Add Entries to Current Bad Track Table by Sector Number 5.Delete Entries Individually from Current Bad Track Table 6.Delete All Entries from Bad Track Table Please enter your choice or 'q' t 廯 t: (这是badtrk程序的菜单,选择2可以扫描查找硬盘上有问题的磁道,并对应到硬盘别处的正常磁道上,另外还建立一个坏道表。输入q继续) Enter the number of bad tracks to allocate space for (or press<return>to use the recommended value of 15): (回车) There are 2110657 blocks in the UNIX area. Please enter the number of file systems you want this area To be divided into,or press<Return>to get the default of 2 file system(s). (回车) The layout of the filesystems and swap area is now prepared. Do you wish to make any manual adjustments to the sizes or names of the filesystems or swap area before they are created on the hard disk?(y/n) (输入n) Making filesystems Hard disk initialization procedure completed. 2.用dd命令将SCO UNIX硬盘自举程序从源盘拷入目标盘 #dd if=/dev/hd0a of=/dev/hdla bs=1024 count=40 3.用divvy命令在目标盘上建立可安装的文件系统 #divvy-im /dev/rhdla There are 2095537 lk blocks in the UNIX area. Between 16000 and 512000 lk blocks should be reserved for the swap area. Please enter the swap-space allocation ,or press <Return> To get the default allocation of 24000 lk blocks: (回车) There are 2095537 lk blocks in the UNIX area. Between 15000 and 64000 lk blocks should be reserved for the boot filesystem. Please enter the boot-space allocation,or press <Return> To get the default allocation of 20000 lk blocks: (回车) Do you want a separate /u filesystem?(y/n) (输入n) The layout of the filesystems and swap area is now prepared. Do you wish to make any manual adjustments to the sizes or names of the filesystems or swap area before they are created on the hard disk?(y/n) (输入n) Making filesystems 4.用divvy 命令查看并修改内分区(division)名 #divvy/dev/rhdla Name Type New FS # First Block Last Block dll50 EAFS no 0 0 19999 d1151 NON Fs no 1 20000 43999 HTFS no 2 44000 2045725 Not USED no 3 - - Not USED no 4 - - Not USED no 5 - - recover NON FS no 6 2045726 2045735 hdla WHOLE DISK no 7 0 2061831 2045736 lk blocks for divisions,16096 lk blocks reserved for the system. n[ame] Name or rename a division. c[reate] Create a new file system on this division. t[ype] Select or change filesystem type on new filesystems. p[revent] Prevent a new file system from being created on this. s[tart] Start a division on a different block. e[nd] End a division on a different block. r[estore] Restore the original division table. Please enter your choice or 'q' to quit: (输入n修改内分区名。在此分别将0,1,2内分区名修改为rb ,rs,rr) i[nstall] Install the division set-up shown. r[eturn] Return to the previous menu. e[xit] Exit without installing a division table. Please enter your choice: (输入i将内分区情况安装在目标盘上) Making filesystems. 5.将目标盘引导文件系统安装到源盘上,并拷贝其内容 #mount/dev/rb/mnt #cd/stand #find.-print|cpio-pdumv /mnt #umount/mnt 6.将目标盘根文件系统安装到源盘上,并拷贝其内容 # mount/dev/rr/mnt #find/-mount print|cpio-pdumv/mnt 7.建立目标盘根文件系统中的文件系统安装点 #cd /mnt #mkdir mnt stand;chmod 755 mnt stand;chgrp bin mnt stand #umount /mnt 至此,拷贝完毕。□ |
blackmask9823 回复于:2004-05-20 15:38:12 |
好东东!顶!继续努力,支持你们!
收藏先! |
f7704 回复于:2005-03-09 16:05:04 |
说说具体的操作命令啊,不要光说没有练的 |
zhaodahe 回复于:2005-03-22 20:58:11 |
好 |
zhangshebao 回复于:2005-03-22 23:17:12 |
介绍得不少,缺比较。
少说了一个重要选项conv=bmode,没有它,只能读写前2GB。 对顺序介质,skip与iseek等同;对随机存取介质,iseek快,直接跳过,skip是读了不写的方式跳过。 |
zhyesno 回复于:2005-03-23 11:52:09 |
还是sdccf 斑竹的详细。
楼主的不过是man而已。 |
stone_jinhao 回复于:2005-03-23 12:09:03 |
老大我觉得很好,没人回复,并不代表没人关心,希望你能接着贴 |
wanyaozong 回复于:2005-03-24 15:27:36 |
很感谢,偶已经收藏,谢谢 |
sysgxb 回复于:2005-03-24 15:43:33 |
dd 的用法真多阿,要学的东西太多,学无止境啊! |
xxpostlw 回复于:2005-05-27 10:33:09 |
顶,喜欢这种初学者喜欢的帖子 |
12xuwei 回复于:2005-05-27 15:07:42 |
呵说的不是太明白,清楚点 |
zhkun 回复于:2005-05-28 08:30:41 |
不错。 |
xuzheng 回复于:2005-05-28 11:30:01 |
不要太复杂简单就行 呵呵
例如: dd if=disk.img(文件名) of=/dev/fd0 ds18(设备名) dd if=/dev/fd0 ds18 of=/tmp/disk.img ok |
HNPOST_NETKING 回复于:2005-05-28 12:24:45 |
顶
!!!! |