免费注册 查看新帖 |

Chinaunix

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

变动硬盘位置或dd对拷更换硬盘后系统无法正常启动的解决方法 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-08-07 17:32 |只看该作者 |倒序浏览
    一台机器有两个IDE,原来硬盘接在第一个IDE上,由于IDE接口问题,需要将硬盘移到第二个IDE的位置,但是移动后无法正常进入run level 3。因为更换了硬盘IDE,原来的分区位置发生变化,例如原来root分区是c0t2d0s0,现在变成了c0t0d0s0。但是仅仅更改/etc/vfstab文件还是不能够正常启动的,还需要重建设备树。
    还有一种情况是用dd将旧硬盘对拷到新硬盘上,然后用新硬盘替换原来的旧硬盘,即使IDE口不变,但是因为硬盘的WWN(World Wide Number)不一样了,也会导致这样的情况,解决方法一样。详细步骤如下:

注意:硬盘安装前需要注意其跳线是否设置正确,还有光驱的跳线,否则可能会导致识别不到硬盘或者光驱。

1、硬盘安装完成后从光盘或者网络(
JumpStart
)引导,进入单用户模式
ok boot cdrom -s
    或者
ok boot net -s

2、将root文件系统挂载到/mnt目录下
# mount /dev/dsk/c0t0d0s0 /mnt

3、修改vfstab文件,将其中的c0t2d0s?更新为c0t0d0s?,注意dsk和rdsk都要对应改
# cd /mnt/etc
# vi vfstab
#device  device      mount   FS  fsck    mount       mount
#to mount    to fsck point   type    pass    at boot options
#
fd       -   /dev/fd fd  -   no      -
/proc        -   /proc       proc    -   no      -
/dev/dsk/c0t0d0s1    -   -   swap    -   no      -
/dev/dsk/c0t0d0s0    /dev/rdsk/c0t0d0s0  /   ufs 1   no  -
/dev/dsk/c0t0d0s3    /dev/rdsk/c0t0d0s3  /var    ufs 1   no  -
swap     -   /tmp        tmpfs   -   yes     -

4、重新生成原/dev和/devices目录下的设备树
    1)更新path_to_inst文件,与当前设备保持一致(在Solaris 8之前的系统中没有devfsadm这个命令,使用drvconfig来执行):
# devfsadm -r /mnt -p /mnt/etc/path_to_inst

    2)将当前/devices目录下的设备同步到/mnt/devices目录下(如果/mnt/devices目录下已经存在正确的设备树,这一步可以不用执行。):
# cd /devices
# find . -print | cpio -pduVm /mnt/devices
..................................................
..................................................
..................................................
..................................................
...........
0 blocks

    3)建立从正确的逻辑设备到物理设备的链接。这些做完之后查看/dev/dsk目录下的设备,会看到指向的物理地址已经发生了变更:
# disks -r /mnt
# ls -l /mnt/dev/dsk/c0t0d0s0
lrwxrwxrwx   1   root    root        38 Aug 5 00:02  c0t0d0s0 -> ../../devices/pci@1f,0/ide@d/dad@0,0:a

    看到一篇文档说如果使用Solaris 8的光盘引导或者从8的镜像进行网络引导的话,可以用下面这种方法来重建设备树(为什么特指8,不明白,暂时也未有条件来测试):
# mv /mnt/etc/path_to_inst /mnt/etc/orig.path_to_inst
# rm /mnt/dev/rdsk/c* ; rm /mnt/dev/dsk/c* ; rm /mnt/dev/rmt/*
# devfsadm -r /mnt -p /mnt/etc/path_to_inst

5、设置从新的硬盘设备引导
    有两种方法,一个是在Solaris中执行如下命令,通过指定root分区的逻辑名称来设置OpenBoot PROM的boot-device,使用新的物理设备地址:
# luxadm set_boot_dev /dev/dsk/c0t0d0s0
Do you want to change boot-device to the new setting? (y/n) y
# eeprom | grep boot-device
boot-device=/pci@1f,0/ide@d/disk@0,0:a

    还有就是到ok模式下进行boot-device的设置:
ok devalias
disk         /pci@1f,0/ide@d/disk@2,0
...
cdrom            /pci@1f,0/ide@d/cdrom@3,0:f
disk3            /pci@1f,0/ide@d/disk@3,0
disk2            /pci@1f,0/ide@d/disk@2,0
disk1            /pci@1f,0/ide@d/disk@1,0
disk0          /pci@1f,0/ide@d/disk@0,0
...
ok printenv boot-device
boot-device =        disk net
ok setenv boot-device disk0 net
boot-device =        disk0 net
    设置完后便可在ok键入boot来从新的设备位置引导:
ok boot

    首次启动时,可能会报这样的错误:
savecore: open("/dev/dsk/c0t2d0s1"): No such file or directory
dumpadm: cannot use /dev/dsk/c0t2d0s1 as dump device: No such file or directory
    是因为dumpadm用的还是旧的分区位置作为Dump device的,不过这里不需要手动去修改,dumpadm会自动更新为新的位置,执行dumpadm命令或者查看/etc/dumpadm.conf,可以看到Dump device已更新:
# dumpadm
      Dump content: kernel pages
       Dump device: /dev/dsk/c0t0d0s1 (swap)
Savecore directory: /var/crash/cool06n
  Savecore enabled: yes



本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/80598/showart_2020912.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP