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 |
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 |
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 |
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 |
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 |
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 |