首页 > 编程知识 正文

linux系统复制到另一块硬盘,win10硬盘对拷不能用

时间:2023-05-03 19:29:56 阅读:263387 作者:1680

一台机器有两个IDE,原来硬盘接在第一个IDE上,由于IDE接口问题,需要将硬盘移到第二个IDE的位置,但是移动后无法正常进入run level 3。因为更换了硬盘IDE,原来的分区位置发生变化,例如原来root分区是c0t2d0s0,现在变成了c0t0d0s0。但是仅仅更改/etc/vfstab文件还是不能够正常启动的,还需要重建设备树。

还有一种情况是用dd将旧硬盘对拷到新硬盘上,然后用新硬盘替换原来的旧硬盘,即使IDE口不变,但是因为硬盘的WWN(World Wide Number)不一样了,也会导致这样的情况,解决方法一样。详细步骤如下:

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

1、硬盘安装完成后从光盘或者网络(

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

#devicedevicemountFSfsckmountmount

#to mountto fsckpointtypepassat bootoptions

#

fd-/dev/fdfd-no-

/proc-/procproc-no-

/dev/dsk/c0t0d0s1--swap-no-

/dev/dsk/c0t0d0s0/dev/rdsk/c0t0d0s0/ufs1no-

/dev/dsk/c0t0d0s3/dev/rdsk/c0t0d0s3/varufs1no-

swap-/tmptmpfs-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

lrwxrwxrwx1rootroot38 Aug 5 00:02c0t0d0s0 -> ../../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

168飞艇6种不亏钱的方法oot_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

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。