Top
PRIMECLUSTERGlobal Disk Services Configuration and AdministrationGuide 4.5
FUJITSU Software

6.3.3 Restoring (When the System Cannot Be Booted)

1) Boot the system from the CD-ROM unit (or network).

For the procedure, see the Solaris manual.

Note

  • To restore Solaris 10, to which the kernel patch 137111-08 or earlier has been applied, the version of an OS booted from a CD-ROM device (also network or emergency startup disk for restoration) must correspond to the version of the OS, to which the kernel patch 137111-08 or earlier has been applied, you are restoring.

  • To restore Solaris 10, to which the kernel patch 137137-09 or later has been applied, the version of an OS booted from a CD-ROM device (also network or emergency startup disk for restoration) must correspond to the version of the OS, to which the kernel patch 137137-09 or later has been applied, you are restoring.

  • To restore Solaris 11, the version of an OS booted from a CD-ROM device (also network or emergency startup disk for restoration) must correspond to the version of the OS you are restoring.

  • In a system where mirroring is conducted by GDS, booting from a CD-ROM device (or network) and performing an illegal operation may disrupt the mirroring environment. Be sure to follow the procedure described here and to avoid operations not provided in this procedure.

  • When mounting the file system on a physical slice at the time of recovery, mounting as read-only is recommended to write-lock.


2) Check the device names of physical slices that will be the restore destinations for the root (/), /usr, and /var file systems.

# eeprom nvramrc | grep sdx-root-slice
devalias sdx-root-slice-1 /devices/pci@1f,4000/scsi@3/sd@0,0:a,raw
devalias sdx-root-slice-2 /devices/pci@1e,4000/scsi@3/sd@0,0:a,raw
# eeprom nvramrc | grep sdx-usr-slice
devalias sdx-usr-slice-1 /devices/pci@1f,4000/scsi@3/sd@0,0:g,raw
devalias sdx-usr-slice-2 /devices/pci@1e,4000/scsi@3/sd@0,0:g,raw
# eeprom nvramrc | grep sdx-var-slice
devalias sdx-var-slice-1 /devices/pci@1f,4000/scsi@3/sd@0,0:b,raw
devalias sdx-var-slice-2 /devices/pci@1e,4000/scsi@3/sd@0,0:b,raw

In this example, the physical slice device names are:

/ : /devices/pci@1f,4000/scsi@3/sd@0,0:a,raw
/usr : /devices/pci@1f,4000/scsi@3/sd@0,0:g,raw
/var : /devices/pci@1f,4000/scsi@3/sd@0,0:b,raw

The mirror physical slice device names are:

/ : /devices/pci@1e,4000/scsi@3/sd@0,0:a,raw
/usr : /devices/pci@1e,4000/scsi@3/sd@0,0:g,raw
/var : /devices/pci@1e,4000/scsi@3/sd@0,0:b,raw

Note

If multiplicity of the mirroring configuration is 3 or more, there are multiple mirror physical slices.

For disk of Expansion File Unit that is connected to 6 Gbps SAS card or internal disk of SPARC M12/M10, SPARC T4-4/T4-2/T4-1/T3-4/T3-2/T3-1, perform the following procedure and identify the device.

# eeprom nvramrc | grep sdx-boot-device
devalias sdx-boot-device-1 /pci@8000/pci@4/pci@0/pci@0/scsi@0/disk@w50000394980066de,0:a devalias sdx-boot-device-2 /pci@8000/pci@4/pci@0/pci@0/scsi@0/disk@w5000039488226256,0:a

Information

  • If /usr and /var file systems do not exist, the physical slice names are not displayed as shown below.

    # eeprom nvramrc | grep sdx-usr-slice
    # eeprom nvramrc | grep sdx-var-slice
  • For MPLB disks, check the physical slice names of paths after the first one as follows. In an environment booted from the network, if paths after the first one are defined, it is also possible to create backups from the physical slices of the paths.

    # eeprom nvramrc | grep sdx-root-slice (First path)
    devalias sdx-root-slice-1 /devices/pci@1f,4000/fibre-channel@4/sd@10,0:a,raw
    ...
    # eeprom nvramrc | grep sdx-root-alt-slice (Second path)
    devalias sdx-root-alt-slice-1b /devices/pci@1f,4000/fibre-channel@5/sd@10,0:a,raw
    ...

3) Identify the name of the physical slice to be restored.

The procedure on obtaining the name of the physical slice to be restored differs between the disk of Expansion File Unit that is connected to 6 Gbps SAS card or internal disk of SPARC M12/M10, SPARC T4-4/T4-2/T4-1/T3-4/T3-2/T3-1 and other cases.

[Disk of Expansion File Unit that is connected to 6 Gbps SAS card or internal disk of SPARC M12/M10, SPARC T4-4/T4-2/T4-1/T3-4/T3-2/T3-1]
Identify the name of the physical disk whose device name includes the target-port acquired in step 2).

# format </dev/null | grep -i t50000394980066ded
1. c0t50000394980066ded0 <sfdsk type1.0; TOSHIBA-MBF2600RC-3706 cyl 64986 alt 2 hd 27 sec 668> 01000002

For the argument of the grep command, specify "t" + <target-port> + "d."
In this example, the physical disk name to be restored is c0t50000394980066ded0.

Check the physical slice name from the physical disk name.

# ls -l /dev/rdsk/c0t50000394980066ded0* | grep ":a,raw"
lrwxrwxrwx 1 root root 86 Jul 28 23:59 c0t50000394980066ded0s0    -> ../../devices/pci@8000/pci@4/pci@0
/pci@0/scsi@0/iport@f/disk@w50000394980066de,0:a,raw

For the argument of the grep command, specify the part after ":" of the device name confirmed in step 2).
In this example, the main physical slice name of the root (/) is c0t50000394980066ded0s0.

[Other than the above]

Check the physical slice name from the device name of physical slice confirmed in step 2).

# ls -l /dev/rdsk | grep /devices/pci@1f,4000/scsi@3/sd@0,0:a,raw
lrwxrwxrwx   1 root     root          45 Oct 19 23:36 c0t0d0s0 -> ../../devices/pci@1f,4000/scsi@3/sd@0,0:a,raw
# ls -l /dev/rdsk | grep /devices/pci@1e,4000/scsi@3/sd@0,0:a,raw
lrwxrwxrwx   1 root     root          45 Oct 19 23:36 c1t0d0s0 -> ../../devices/pci@1e,4000/scsi@3/sd@0,0:a,raw
# ls -l /dev/rdsk | grep /devices/pci@1f,4000/scsi@3/sd@0,0:g,raw
lrwxrwxrwx   1 root     root          45 Oct 19 23:36 c0t0d0s6 -> ../../devices/pci@1f,4000/scsi@3/sd@0,0:g,raw
# ls -l /dev/rdsk | grep /devices/pci@1e,4000/scsi@3/sd@0,0:g,raw
lrwxrwxrwx   1 root     root          45 Oct 19 23:36 c1t0d0s6 -> ../../devices/pci@1e,4000/scsi@3/sd@0,0:g,raw
# ls -l /dev/rdsk | grep /devices/pci@1f,4000/scsi@3/sd@0,0:b,raw
lrwxrwxrwx   1 root     root          45 Oct 19 23:36 c0t0d0s1 -> ../../devices/pci@1f,4000/scsi@3/sd@0,0:b,raw
# ls -l /dev/rdsk | grep /devices/pci@1f,4000/scsi@3/sd@0,0:b,raw
lrwxrwxrwx   1 root     root          45 Oct 19 23:36 c1t0d0s1 -> ../../devices/pci@1f,4000/scsi@3/sd@0,0:b,raw

For the grep command arguments, specify the device names confirmed in step 2).

In this example, the physical slice names are:

/ : c0t0d0s0
/usr : c0t0d0s6
/var : c0t0d0s1

The mirror physical slice names are:

/ : c1t0d0s0
/usr : c1t0d0s6
/var : c1t0d0s1


4) Restore the backup data on a tape medium back to the original physical slices respectively.

The following example shows the procedure for restoring backup data created with the ufsdump(1M) command.

# newfs /dev/rdsk/c0t0d0s0
# mount -F ufs /dev/dsk/c0t0d0s0 /mnt
# cd /mnt
# ufsrestore rvf /dev/rmt/0
# cd /
# umount /mnt

# newfs /dev/rdsk/c0t0d0s6
# mount -F ufs /dev/dsk/c0t0d0s6 /mnt
# cd /mnt
# ufsrestore rvf /dev/rmt/0
# cd /
# umount /mnt

# newfs /dev/rdsk/c0t0d0s1
# mount -F ufs /dev/dsk/c0t0d0s1 /mnt
# cd /mnt
# ufsrestore rvf /dev/rmt/0
# cd /
# umount /mnt

Note

  • If restoring data to an original physical slice fails due to an I/O error and so on, restore data to the mirror physical slice.

  • Data should not be restored from backup data created before the system disk was mirrored.

See

For details on the ufsrestore(1M) command, see the Solaris manual. After understanding the usage and the meaning of options, specify options properly.


5) Install the boot block to the root partition of system disk.

# installboot /usr/platform/`uname -i`/lib/fs/ufs/bootblk /dev/rdsk/c0t0d0s0

6) Check the sector size and cylinder size of disk and make a note of them.

# prtvtoc /dev/rdsk/c0t0d0s0
... * Dimensions: * 512 bytes/sector * 248 sectors/track * 19 tracks/cylinder * 4712 sectors/cylinder ...

In this example, the sector size is 512 (bytes) = 1 (block) and the cylinder size is 512 x 4712 (bytes) = 4712 (blocks).


7) Check the physical slice that contains the first sector (VTOC area) of the disk.

In the prtvtoc(1M) command output, a physical slice with 0 in the First Sector field contains the disk's first sector.

# prtvtoc /dev/rdsk/c0t0d0s0
... * First Sector Last * Partition Tag Flags Sector Count Sector Mount Directory 0 2 00 0 409656 409655 1 7 00 409656 307242 716897 2 5 00 0 4117568 4117567 3 3 01 737906 388648 1126553 4 33 00 716898 21008 737905 5 4 00 1126554 942734 2069287 6 4 00 2069288 2048280 4117567 ...

In this example, the physical slice (Partition 0) contains the first sector.

Information

Partition 2 is a special partition that corresponds to the entire disk.


8) Copy data from the restored original physical slices to the mirror physical slices.

Copy data by following step 8a) if the physical slice does not contain the first sector or by following step 8b) if the physical slice contains the first sector.

Note

  • If the multiplicity of the mirroring configuration is 3 or more, there are multiple mirror physical slices. Be sure to copy data to all of the mirror physical slices.

  • Make sure to copy the data of the original slices that was restored in step 4).
    The unrestored data of the original slices does not have to be copied.

8a) If the physical slice does not contain the first sector:

To reduce copying time, specify the cylinder size found in step 7) to the bs option (I/O block size) of the dd(1M) command.

# dd if=/dev/rdsk/c0t0d0s6 of=/dev/rdsk/c1t0d0s6 bs=4712b
# dd if=/dev/rdsk/c0t0d0s1 of=/dev/rdsk/c1t0d0s1 bs=4712b

8b) If the physical slice contains the first sector:

Take the following steps.

8b-1) Copy only the first cylinder of the physical slice first. Skip the first sector not to overwrite the first sector (VTOC area) of the mirror slice and copy by sector.

To skip the first sector, specify 1 to the iseek option and the oseek option of the dd(1M) command. Specify the sector size found in step 6) to the bs option. Specify the cylinder size (in blocks) found in step 6) subtracting 1 to the count option.

# dd if=/dev/rdsk/c0t0d0s0 of=/dev/rdsk/c1t0d0s0 bs=512 iseek=1 oseek=1 count=4711

8b-2) Copy the rest of cylinders of the physical slice next.

To reduce copying time, specify the cylinder size found in step 6) to the bs option of the dd(1M) command. To skip the first sector copied in step 8b-1), specify 1 to the iseek option and the oseek option of the dd(1M) command.

# dd if=/dev/rdsk/c0t0d0s0 of=/dev/rdsk/c1t0d0s0 bs=4712b iseek=1 oseek=1

9) When using the shared class or local class, and the GDS configuration parameter SDX_DB_FAIL_NUM=0 was not set in "6.3.1 Backing Up", set the GDS configuration parameter in the following procedure.

9-1) Enter the OpenBoot environment.

# halt

9-2) Boot the system in single-user mode.

ok boot -s

9-3) Add the setting of SDX_DB_FAIL_NUM=0 to the end of /etc/opt/FJSVsdx/sdx.cf configuration file.

# vi /etc/opt/FJSVsdx/sdx.cf
... SDX_DB_FAIL_NUM=0 <- Added

10) Reboot the system in multi-user mode.

# shutdown -g0 -i6 -y

11) Check if there are no errors in the configuration and state of the shared and local classes.

# sdxinfo

12) When using the shared class or local class, undo the GDS configuration parameter.

Comment out the line of SDX_DB_FAIL_NUM=0 in the /etc/opt/FJSVsdx/sdx.cf configuration file.

# vi /etc/opt/FJSVsdx/sdx.cf
... # SDX_DB_FAIL_NUM=0