免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2388 | 回复: 2
打印 上一主题 下一主题

ufsdump&ufsrestore安装Solaris x86出现故障的解决 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-09-02 13:49 |只看该作者 |倒序浏览
由于mail server (192.168.22.70)性能不太稳定,我们决定要把22.70的操作系统迁移到新的硬件上来。
由于都是x86平台,所以我们选择了ufsdump&ufsrestore来进行恢复。

简要步骤如下:

1 在新的硬件平台上安装操作系统
这样是为了能够让新的硬件环境下获取到原系统的dump文件


2 ufsdump备份22.70上的数据
在22.70上将df -h看到的需要ufsdump独立文件系统,分别进行0级ufsdump,并将dump文件传到新的系统上去。
最好是通过NFS共享,

3 在新的系统上对22.70的数据文件系统进行恢复
直接在新的对应新的文件系统进行ufsrestore

4 在新的系统上对22.70的/文件系统进行恢复
对/文件系统的恢复,需要进入的x86的failsafe模式进行恢复。
# ufsrestore rf /path/dumpfile
完成ufsrestore之后,需要安装bootblk
# installgrub /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c1t0d0s0

5 启动故障的处理
在恢复了/文件系统之后,由于将22.70上所有的硬件信息,物理地址,逻辑名链接等等恢复到新的硬件上来,造成了与新的硬件系统不对应,从而导致Solaris系统无法启动。
当Solaris从正常模式启动,系统会dump并重启。报错信息如下:
panic[cpu0]/thread=fffffffffbc3f1a0: cannot mount root path
这个错误的解决办法是在failsafe模式下使用format命令查看启动硬盘的物理路径,并且在/boot/solaris/bootenv.rc修改对应的bootpath
这时bootenv.rc文件的内容应该是:
setprop bootpath /pci@0,0/pci-ide@1f,2/ide@0/cmdk@0,0:a
但是实际上新的硬件平台并没有这个对应的硬盘信息,那么使用format查看正确的硬盘信息
# format
Searching for disks...done


AVAILABLE DISK SELECTIONS:
       0. c1t0d0 <DEFAULT cyl 3913 alt 2 hd 255 sec 63>
          /pci@0,0/pci15ad,1976@10/sd@0,0

更换bootpath上的硬盘路径为format的输出,并且在最后面加上:a表示第一个分区,即s0
setprop bootpath /pci@0,0/pci15ad,1976@10/sd@0,0:a

这样系统可以继续往下启动了,但是还是没有完全解决。
启动过程中,svc:/system/filesystem/usr:default起不来,系统进入maintenance模式。
这时/是作为read only模式挂接上去的,并且format找不到硬盘。devfsadm无法执行,因为/var/tmp还没有挂起来,path_to_inst文件也不对应。
所以不得已又得回到failsafe模式下去将/分区挂接起来,确保可以对/分区进行读写,并且能够看到硬盘信息。
在failsafe模式下执行以下操作
# mv /a/etc/path_to_inst /a/etc/path_to_inst.bkp
这样系统在启动时会自动根据硬件信息创建新的path_to_inst文件
# rm /a/dev/rdsk/*;rm /a/dev/dsk*

# cd /dev/rdsk/; tar cvf /a/dev/rdsk/rdsk.tar *
# cd /dev/dsk/; tar cvf /a/dev/dsk/dsk.tar *
这些链接文件直接删除重启应该和path_to_inst文件一样可以由系统自动生成,不过我的做法是将failsafe模式下的/dev/rdsk和/dev/dsk的文件进行了复制。

# cd /a/dev/dsk; tar xf dsk.tar
# cd /a/dev/rdsk; tar xf rdsk.tar
# ls -l
查看硬盘分区信息是否对应到了争取的硬盘物理路径
# reboot
重启之后,新的系统终于能够顺利启动了

论坛徽章:
0
2 [报告]
发表于 2010-09-02 13:53 |只看该作者
做完了发现很简单,出现问题还是因为对x86平台的有些做法不熟悉。
需要提应大家的是/boot/solaris/bootenv.rc, 还有硬件设备树如何在系统下生成这些问题。
因为实在不知道x86下boot -r对应的做法是什么。
解决的过程中,这个帖子帮了不少忙
http://blogs.sun.com/scottp/entry/booting_and_the_boot_archive

论坛徽章:
0
3 [报告]
发表于 2010-09-02 16:36 |只看该作者
顶这种心得型的帖子。

收藏了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP