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

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

通过mount第二个硬盘解决故障系统备份问题(by Simon Zhan V3.0)

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

领测软件测试网
:idea: 
因为又是五一节,在值班无聊,有点空,就把原来存在的一点疑问部分重新做了一遍,以下红色字体部分是新增的内容,总算补全了。

 机器配置Sco unix 505,赛扬500,64M,COMPAQ微机,两块硬盘都挂在第一个IDE口的线缆上,主硬盘接在主口,目标硬盘接在从口。硬盘容量都是8G的,但unix分区只有3G左右。

1、mkdev hd 1 0 (两个数字间有空格,第一个数字代表同一条硬盘线上端口号:0=master 1 =slave;第二个数字代表IDEr控制器口:0=primary 1=secondary).
提示可能覆盖硬盘数据,是否继续?按Y

2、系统自动调用/etc/dkinit,提示选择硬盘参数(共3项)
选3(即选择默认参数),回车后又提示选择参数界面,不要怀疑刚才有按错键,按q退出。

3、系统自动调用fdisk,因为我们要的是原来的分区,所以这一步千万不能重新分区,按q跳过。

4、系统自动调用badtrk,提示已有合法的分区表,要保留原有的数据,不能改变现有的坏道表,是否要继续?输入0后按y.接着要再按两次Q。

5、[color=red:2df4e82bc6]注意:如果这时出现的提示是叫你输入在该区要分割的division数目,应该要立即按del键中断操作,否则你的目标盘数据将会跟你说再见的。因为此后的操作是在目标盘上分division了。原来的数据将全部删除了[/color:2df4e82bc6]系统自动调用divvy,出现的是目标盘上的分片(divison)表,其中除name一栏是空的以外,其他都是原来的分片表数据。这个name就是我们以下要命名的。按n(即name命名)命令,出现选择片号(divison)提示,输入你想要mount的分片号(一般是root片),一般是2,而且文件系统类型是htfs。(即root分片,为安全起见,可以事先在原来的系统中用divvy查看一下root片号是否为2),提示输入分片名,如newroot(名字随便起),回车即可看到更新的分片表。按q退出,又会出现是否安装等3项菜单,按i(install,安装)安装即可。退回到命令行。OK!至此前期工作已全部完成。

方法2(注:这个办法改编自此贴
http://bbs.chinaunix.net/forum/7/20041108/440581.html):

假如是IDE的硬盘,跳成slave接到一台好的SCO机器上做从盘, 
启动那台好的SCO机器 
mknod /dev/newroot b 1 106 
mount /dev/newroot /mnt 
拷贝出从盘root下的数据 
如果root后还有逻辑分区,那么把106+1是后面第1个,+2是第2个,如 
umount /mnt 
mknod /dev/d2u b 1 107 
mount /dev/d2u /mnt 
拷贝出从盘root后第1个分区的数据 
后面依次类推。



以下是所要应用的具体例子。
1、要mount新增的文件系统,输入mount /dev/newroot /mnt
2、要查看新的文件系统的分片表,可divvy /dev/newroot
注:以上操作不会破坏两块硬盘原有的数据。
[color=red:2df4e82bc6][b:2df4e82bc6][size=18:2df4e82bc6]重要说明:1.其实一般情况下,如果两块硬盘各接一个IDE口,即目标盘在第二个IDE口,前面的四个步骤可以不用做,直接做第五步,divvy /dev/hd10(此处的1 0与前面步骤1中的意义是一样的,但1和0之间没有空格)即可。注意,如果在接着出现的画面头两行有warning之类的提示,也要中断操作,虽然强行操作不会影响数据(不能一定保证),但在后续的工作中,比如mount,也会提示出错,不能mount成功的。出现这个提示通常是因为把两块硬盘接在一根信号线的缘故。其他操作同步骤5。
2.再次重申,由于以上操作危险性比较大,如果你没有严格按照上述硬盘接法操作步骤进行,比如做实验,请务必保证在做上述实验前,目标盘上没有重要的数据,否则如果操作不慎,目标盘的数据就byebye了。。[/size:2df4e82bc6][/b:2df4e82bc6][/color:2df4e82bc6]

 俺 回复于:2003-01-18 17:53:53
俺的系统中有一个IDE盘(IDE0:0没用过),一个IDE光驱(IDE1:0),一个SCSI盘(SCSI0:0启动盘),现在俺想把IDE盘加入系统中,俺该如何做?

这实际是俺下载的一个sco for vm的系统。其中的IDE盘用不上,俺想用来跑数据库

 simonzhan 回复于:2003-01-19 10:00:16
如果你的IDE盘是空的,那就是把上面的步骤从头到尾做一遍了,其中fdisk这一步肯定是要做了。然后下面的divvy这一步估计只要一个分片就可以了。不过我在有scsi盘的情况下没有试过。不知是否有不一样的地方。请自行试验。这也是最有乐趣的地方了。不是吗?

 sunweipost 回复于:2003-04-16 16:55:15
一个15G的硬盘在做第二步时显示默认参数都为空,按BIOS中的提示只能输入一部分参数,并老是提示找不到硬盘,有没有什么好办法???

 SuperRio 回复于:2003-04-26 09:15:57
首先,15G硬盘在bios里头能不能认到???

若可以,确认所在IDE的位置,本身的主从,记下参数,chs,三项就够了......

mkdev hd * *时候确认,即可。
再下一步,就可以选择第2选项,修改chs。

 simonzhan 回复于:2004-05-01 21:38:38
今天把这篇文档重新做了补充,顶上来让有需要的兄弟参考一下下!:)

 wenyue 回复于:2004-08-14 23:17:37
谢谢楼主!我正要这个东东!

SCSI硬盘能这样做吗?

 simonzhan 回复于:2004-08-16 01:17:18
scsi的我没有条件试,但在理论上是一样的,应该可以的。

 cust 回复于:2004-12-01 19:10:48
mknod  中 major , minor 是怎样确定???

 CNL 回复于:2004-12-01 21:11:47
major是设备驱动在/etc/conf/cf.d/mdevice中登记的号码,
minor需要自己计算,以前帖子有
搜标题:关键词"mknod"

 孟军 回复于:2004-12-09 17:44:32
版主: 您好!   我的硬盘也因突然停电而不能工作, 用您上面的方法divvy /dev/hd10,出现的是目标盘上的分片表,其中除name一栏是空的以外,其他都是原来的分片表数据。但root片(即2)的文件系统类型不是htfs,而变成了 NON FS 但分片大小未变,重新命名后也mount不上,请教各位高手该如何处理?我有较重要的数据在里面,如何弄出来?谢谢!

 CNL 回复于:2004-12-10 14:27:41
你的这种情况可以尝试一下mknod直接创建第2硬盘指定分区设备名的办法,
创建后使用fsck -ofull /dev/你建的设备名修复后再mount
搜索mknod,以前有贴。

 simonzhan 回复于:2004-12-12 20:13:55
CNL兄的方法更妥当,请参考一下。

 孟军 回复于:2004-12-13 16:37:23
谢谢两位版主的指点,我照您说的办法做了仍然不行.
我是这样做的,不知有什么问题?
#mknod /dev/d2root b 1 106
#fsck -ofull /dev/d2root
出现错误提示如下:
WARNING: wd0:Error on fixed disk  dev1/106, block=0, cmd=0x00000020 status 0x00005940,sector=821465,
cylinder/head=3208/0
fsck: cannot determine filesystem type of /dev/d2root

我输入如下命令时也出现类似提示
#mount /dev/d2root /mnt

WARNING: wd0:Error on fixed disk  dev1/106, block=0, cmd=0x00000020 status 0x00005940,sector=821465,
cylinder/head=3208/0
mount: cannot stat '/dev/d2root'

请问还有其它办法吗?谢谢

 CNL 回复于:2004-12-13 18:55:29
你的硬盘物理上有坏块,手工加入badtrk表后再fsck吧
成功的可能性是50%:
假如你建立的第2硬盘root分区名字是d2root,那么:
# /etc/badtrk -f /dev/rd2root (分区名前加r表示裸设备)
选择5. Add entries to bad block table
手工输入提示错误的cylinder/head等参数
循环把所有提示的坏块加完,
最后q退出
再fsck -ofull /dev/d2root
如果还有坏块,重复上述操作

 孟军 回复于:2004-12-14 16:40:23
版主:您好!照您所教的做了,警告没有了。
但仍然不能fsck和mount
出现的提示仍是:
fsck: cannot determine filesystem type of /dev/d2root 

mount: cannot stat '/dev/d2root' 

还有其它方法可试吗?现在只有死马当作活马医了。谢谢!

 CNL 回复于:2004-12-14 18:22:52
老大,希望虽然不大,你尝试一下吧:
1、指定文件类型,一般root分区都是HTFS
# fsck -F HTFS -ofull /dev/rd2root
# mount -r -f HTFS  /dev/d2root /mnt
2、如果不行,把硬盘拔到一台空闲机器设置为master,
用能杀引导区病毒的杀毒盘加电引导后杀杀毒再试

再不行,我也没招了,如果有关键业务数据送硬盘专业维修公司看看吧

 孟军 回复于:2004-12-15 10:05:24
CNL版主:您好!
谢谢您这几天来不厌其繁的指导,虽然我的盘还是没能弄好(可能是坏得太严重了).但我还是从您这里学到了许多知识.再一次谢谢您!

 lw371 回复于:2004-12-15 11:17:40
block=0是masterboot块,可按answer版主的办法试,还是有一丝希望的:
把坏盘挂回原机器,跳线全恢复原样,在类似配置的机器上做一套应急引导盘
[quote:5a9789ee3d]
解决步骤: 1)插入应急引导盘, 
出现 Boot: 输入 hd(40)unix 
2)进入单用户维护模式 
instbb hd /dev/hd0a 
将分区引导块写入硬盘 
3) dparam -w 
将主引导块代码写入硬盘的主引导块 
[/quote:5a9789ee3d]
无论系统硬件有多么强壮,及时备份数据的重要性都应该被强调再三,
血的教训太多了。

 孟军 回复于:2004-12-15 12:41:45
lw371:您好!
我的硬盘引导块应该没坏,应该是root分区损坏了,类型都变成了NON FS.
我也照您教的做了:
出现 Boot: 输入 hd(40)unix 
但根本就不能进入单用户模式:提示是
PINIC: srmountfum -Error 22 mounting rootdev hd(1/42)
Cannot dump 130975 pages to dumpdev hd(1/41):space for only 0 pages
Dump not completed
  **   safe to power off   **
**  press any key to reboot **

谢谢您!

延伸阅读

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


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

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