Become superuser or assume an equivalent role.
Determine whether the bad superblock is in the root (/), /usr, or /var file system and select one of the following:
If the bad superblock is in either the root (/), /usr, or /var file system, then boot from the network or a locally connected CD.
From a locally-connected CD, use the following command:
ok boot cdrom -s |
From the network where a boot or install server is already setup, use the following command:
ok boot net -s |
If you need help stopping the system, see Chapter 12, Booting a Solaris System (Tasks), in System Administration Guide: Basic Administration or Booting an x86 Based System by Using GRUB (Task Map) in System Administration Guide: Basic Administration.
If the bad superblock is not in either the root (/), /usr, /var file system, change to a directory outside the damaged file system and unmount the file system.
# umount /mount-point |
Be sure to use the newfs -N in the next step. If you omit the -N option, you will destroy all of the data in the file system and replace it with an empty file system.
Display the superblock values by using the newfs -N command.
# newfs -N /dev/rdsk/device-name |
The command output displays the block numbers that were used for the superblock copies when the newfs command created the file system, unless the file system was created with special parameters. For information on creating a customized file system, see Customizing UFS File System Parameters.
Provide an alternate superblock by using the fsck command.
# fsck -F ufs -o b=block-number /dev/rdsk/device-name |
The fsck command uses the alternate superblock you specify to restore the primary superblock. You can always try 32 as an alternate block. Or, use any of the alternate blocks shown by the newfs -N command.
The following example shows how to restore the superblock copy 5264.
# newfs -N /dev/rdsk/c0t3d0s7 /dev/rdsk/c0t3d0s7: 163944 sectors in 506 cylinders of 9 tracks, 36 sectors 83.9MB in 32 cyl groups (16 c/g, 2.65MB/g, 1216 i/g) super-block backups (for fsck -b #) at: 32, 5264, 10496, 15728, 20960, 26192, 31424, 36656, 41888, 47120, 52352, 57584, 62816, 68048, 73280, 78512, 82976, 88208, 93440, 98672, 103904, 109136, 114368, 119600, 124832, 130064, 135296, 140528, 145760, 150992, 156224, 161456, # fsck -F ufs -o b=5264 /dev/rdsk/c0t3d0s7 Alternate superblock location: 5264. ** /dev/rdsk/c0t3d0s7 ** Last Mounted on ** Phase 1 - Check Blocks and Sizes ** Phase 2 - Check Pathnames ** Phase 3 - Check Connectivity ** Phase 4 - Check Reference Counts ** Phase 5 - Check Cyl groups 36 files, 867 used, 75712 free (16 frags, 9462 blocks, 0.0% fragmentation) ***** FILE SYSTEM WAS MODIFIED ***** # |