• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

dd命令使用,进行完全备份

发布: 2007-6-08 22:43 | 作者: seanhe | 来源: | 查看: 26次 | 进入软件测试论坛讨论

领测软件测试网
dd命令使用
―――在系统中增加一块新硬盘,并进行完全备份

说明:dd – 作用:转换和拷贝文件。是对设备进行使用的!
将ds10的资料从源盘完全拷贝到目标盘上!(注:两块硬盘容量一样36G)
操作系统tru64 5.1b 
整个操作过程如下:
目标盘:/dev/rdisk/dsk1c  ,
源盘: /dev/rdisk/dsk0c  

1) ds10通过scsi卡来接第二块硬盘时,必须使用跳线,(我是用的光驱跳线帽了^_^)。
2) 开机,show dev , 找到两块硬盘  ,boot 启动。
3) 以超级用户登录,diskconfig看到两块硬盘。可以将目标盘先配置为advfs格式,将整个硬盘选上,此处是用c来表示整个硬盘! 在/dev/disk目录下也会看到dsk0 ,dsk1说明有两块硬盘。
4) 查看目前的主盘,sizer –r 可以看到是dsk0  ,表示当前的主盘(源盘)。
5) 使用硬件管理命令:hwmgr 查看当前硬件组成。 hwmgr –view device 显示如下
# hwmgr -view device
 HWID: Device Name          Mfg      Model            Location
 ------------------------------------------------------------------------------
    3: /dev/dmapi/dmapi                               
    4: /dev/scp_scsi                                  
    5: /dev/kevm                                      
   33: /dev/disk/floppy0c            3.5in floppy     fdi0-unit-0
   43: /dev/disk/cdrom0c    HL-DT-ST CD-ROM GCR-8480B bus-1-targ-0-lun-0
   45: /dev/random                                    
   46: /dev/urandom                                   
   47: /dev/disk/dsk0c      COMPAQ   BD03695CC8       bus-2-targ-0-lun-0
 48:/dev/disk/dsk1c     ……
6) /dev/disk/dsk1c即目标盘,通过使用label,它的作用是读、写一个磁盘组套的标志并且格式化硬盘分区。操作命令如下:
# disklabel –wr /dev/rdisk/dsk1c  scsi
对rdisk进行说明是表示“raw disk”即原来的磁盘。 -wr 表示:间接的或从磁盘读写label,而不是在在内存中拷贝label。(w的作用很重要,如果没有该参数,以后重新启动的时候会遇到osf_boot 不能打开的问题的问题的!)
针对:“ open osf_boot”
有一个补救方法:进入原来的双硬盘系统中,
#disklabel –r /dev/rdisk/dsk1a > /tmp/rd1label
#disklabel –t advfs –r –R /dev/rdisk/dsk1a  /tmp/rd1label  scsi  
以后下同11)。
7) 在进行复制之前必须取消disk label ,
# disklabel –z dev/rdisk/dsk1c  -z 表示:清除磁盘的label 。否则会提示错误。
8) 可以进行整个磁盘的拷贝了:
# dd if=/dev/rdisk/dsk0c of=/dev/rdisk/dsk1c bs=512k conv=swab,notrunc 解释各个参数  if : input file 表示输入文件的源是dsk0c  , of : output file 表示输出到文件地址 dsk1c , bs :  bs=bytes ,一次读和写 bytes 字节。最大可以设置到65536k,默认是512k。它是scsi卡传输所决定的!注意:swap和notrunc之间只有“,”,没有空格。
9) 喝杯咖啡吧,小憩!(大概50分钟吧,不过是原汁原味了!等,也是值得的!)
10) 停机,将跳线去掉,调换两块硬盘的位置。
11) 以单用户进入
#mount -a  会出现一些错误,不要理会,此时是报告一些分区没有加载上。使用:
#dn_setup init   清除原来的设置,包括指向的swap ,boot等
# dsfmgr  –k   

12) mount –a  或者 bcheckrc  ,刚才的error全部不见了。分区加载上了。
13) init  3  
14) 进入图形界面,呵呵大功告成!




下面的3篇参考文章 , 在此表示谢谢!
http://www.fanqiang.com/a1/b1/20010508/135910.html
http://www.chinaunix.net/forum/viewtopic.php?t=13058
http://www.chinaunix.net/jh/11/31484.html

******************************************************************************
请参考dd , disklabel , hwmgr , advfs 的帮助文档。Edited  by  czyf2001  ,   2004-3-19
 
 :lol:

 orange13130 回复于:2004-03-19 16:19:49
好贴,写的很详细

 w++ 回复于:2004-03-19 19:42:50
瞎子的帖子,顶一下

 czyf2001 回复于:2004-03-20 13:03:14
kao!这都给你看出来了!

 我爱臭豆腐 回复于:2004-03-21 07:18:25
希望你有更多的好帖子。先给你来一个精华:)

 李大牛 回复于:2004-03-23 21:48:43
非常感谢。

 lozh 回复于:2004-04-07 14:01:42
不过,好像有点问题,在V5.X操作系统中,盘的名称和位置无关,只和wwid有关,所以只是换个位置不行的,必须在P00下用另一个盘引导才可以证明是否成功,不过,该方法应该还是很有效的一种。

 czyf2001 回复于:2004-04-07 14:16:17
注意:在 第 13)时,假如还不能进入系统,请按reset键,此后,进入单用户重复第 11),应该是没有问题的了!
我这样操作已经进行了5-6回了!

 qzhu 回复于:2004-04-08 02:45:56
可以用dsfmgr -e 或 -m  把dsk1 换回 dsk0,  这样就可以保持
device special files 的一致性

 czyf2001 回复于:2004-04-09 08:40:03
将第11)-13)步:改为:
                   #dsfmgr -e dsk0 dsk1
                                 #init 3
                          成功进入图形界面!
感谢qzhu的提示!
谢谢!

 JimXi 回复于:2004-04-15 16:54:22
使用dd后,18G盘只能按照9G使用,不知道是否有办法不仅可以dd硬盘,同时还能使用多余的空间。
谢谢

 我爱小笼包 回复于:2004-04-15 17:04:34
可以试着重改写一下disklabel然后就可以利用后面的空间了。

 czyf2001 回复于:2004-04-15 18:41:10
试试diskconfig,看看还有没有空闲的空间了!
假设你已经使用 dsk0a, dsk0b , 
dsk0d 。但还要:dks0e 
如果有的话,/dev/disk/dsk0e,将其使用mkfdmn , mkfset
g建立分区吧!我不知道能不能行?
你试试看!
建议哦!

 JimXi 回复于:2004-04-16 08:46:52
如果使用disklabel,那么盘上的内容就会丢失,必须重新dd。
dd后,目标盘上也看不到空闲分区。

 czyf2001 回复于:2004-04-16 11:39:22
好像还可以这样吧,你只dd一个分区不行吗?
我的意思是你先用diskconfig将第二个硬盘按照原来的进行分区,剩下的也分为另一个!
此后你用dd,但是试试一个一个的dd ,如:先dd    /dev/rdisk/dsk0a , 
然后再dd /dev/rdisk/0b ,等等了!
你试试看了!

 czyf2001 回复于:2004-04-16 14:01:18
对了,你可以用vdump,这个命令可以一个一个分区的进行拷贝的!
具体的你可以到论坛上找找精华吧!

 JimXi 回复于:2004-04-19 15:50:48
如果使用 dd if=/dev/rz8a of=/dev/rz9a,。。。也就是采用一个一个分区拷贝,系统提示:/device busy. 无法拷贝。

但是整盘就可以,即:
if = /dev/rz8c  of = /dev/rz9c.

是否需要umount 分区。但是root不能umount吧??

 czyf2001 回复于:2004-04-19 16:38:30
你到论坛上看看vdump的例子吧!
这个是可以针对每个分区进行拷贝的!
在那个例子中注意使用指定文件系统:  -t Advfs  它原来是newfs 

使用vdump是可以的,我们原来试过!

 JimXi 回复于:2004-04-19 17:16:55
看了一些例子和对vdump、vrestore的解释,基本明白了。是否可以把新盘的对应分区划分的大一些,例如源盘/usr分区大小为200M,是否可以新盘中指定为400M??

特别感谢!

 czyf2001 回复于:2004-04-19 17:27:59
你可以试试,我们还没有做过这样的更改!
应该有参数可以指定分区大小的!(I think ^_^)
有什么问题我们可以继续探讨!

 JimXi 回复于:2004-04-22 11:04:08
首先非常感谢:czyf2001 的帮助。

通过实验可以把9G的盘扩成18G的盘,各个分区都做了相应的扩充。解决了系统应用中磁盘空间不足的问题。

在diskconfig中参考源盘大小把目标盘的各个分区大小进行相应扩展即可。如果源盘有没有使用的分区,在目标盘上也可以增加新的分区。

 czyf2001 回复于:2004-04-22 14:11:50
也就是说你先用diskconfig将各个分区分配好了!
然后再dd ?
能详细点吗?
谢谢!

 JimXi 回复于:2004-05-09 16:06:37
通过disklabel把分区划分好后,使用vdump和vrestore复制各个分区。没有使用命令dd.

 supsyg 回复于:2004-05-25 14:50:41
不知道可不可以从大盘dd到小盘,其中的数据小于小盘的容量

 JimXi 回复于:2004-05-25 16:55:52
应该不行,不过用vdump和vrestore就应该可以。

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网