HPlogo HP-UX Reference > V

vxfsconvert(1M)

HP-UX 11i Version 2: December 2007 Update
» 

Technical documentation

 » Table of Contents

 » Index

NAME

vxfsconvert — convert a file system to a vxfs file system or upgrade a VxFS disk layout version.

SYNOPSIS

/sbin/fs/vxfs/vxfsconvert [-l logsize] [-s size] [-efnNvyY] special

DESCRIPTION

vxfsconvert converts a file system of a supported type to a VxFS file system with a Version 4 disk layout. Currently vxfsconvert only supports conversion of an HFS file system to a VxFS file system. Conversion of all file system block and fragment sizes is supported. After a file system is converted to VXFS, its block size is the value of the fragment size before conversion. vxfsconvert also converts VxFS Version 2 and Version 3 disk layouts to Version 4 disk layouts.

Do a full backup of the file system before running vxfsconvert. File system conversion is complex and while most file systems will convert without problems, some may not. You could lose data if you don't have a backup. See the WARNINGS section.

vxfsconvert requires sufficient disk space to convert existing metadata to vxfs metadata. The space is acquired from free space within the file system or from the space available immediately after the end of the file system. In either case, the space must be available on the same device or volume that contains the file system. vxfsconvert requires approximately 12%-15% of the total file system size as free space, depending on the number of directories and files.

special is the character disk or volume manager device. Running vxfsconvert on the character device is usually faster than running it on a block device.

vxfsconvert converts HFS access control list (ACL) entries to the respective VxFS ACL entries with limitations. Only the entries that comply with the VxFS ACL standard are converted. See the description of the conversion process, below, for details.

vxfsconvert takes approximately 2 to 3 times longer to convert a file system than running a full fsck on an HFS file system.

Options

vxfsconvert recognizes the following options:

-e

Estimate the amount of space required to complete the conversion. This option does not convert the file system to VxFS. No data is written to the file system and the file system remains clean.

-e generally overestimates the free space because it considers the worst case scenario for allocating blocks (that is, fully fragmented).

-f

Display the list of supported file system types. Currently only HFS, the VxFS Version 2 disk layout, and the VxFS Version 3 disk layout.

-l logsize

Specifies the size of the file system intent log. The minimum value for logsize is the number of blocks that make the log no less than 256K. The maximum value for logsize is the number of blocks that make the log no greater than 16384K. The default logsize is usually 1024 blocks; for a small file system the default can be smaller to avoid wasting space.

-n|N

Assume a no response to all questions asked by vxfsconvert. This option implies that the conversion is never committed and the file system is not converted to VxFS.

-s size

Directs vxfsconvert to use free disk space past the current end of the file system to store VxFS metadata (such as the intent log). size specifies the amount of available disk space past the end of the file system in kilobytes. vxfsconvert uses the space past the current end of the file system for the conversion process. With this option, all disk space required for the conversion process is taken from the end of the file system; the existing free space within the file system remains intact. If the device is a raw partition, you can use -s only if there is sufficient space on the partition past the end of the file system.

If -s is not specified, vxfsconvert uses free blocks from within the layout of the file system being converted. File systems converted with -s cannot be shrunk to a size smaller than their initial post-conversion size.

-v

Specify verbose mode. Verbose mode shows the progress of the conversion process. For every inode converted, one of the following characters is displayed.

-

The inode is a regular file.

b

The inode is a block special file.

c

The inode is a character special file.

d

The inode is a directory.

l

The inode is a symbolic link.

p

The inode is a fifo.

s

The inode is a socket.

?

The inode type is unknown.

-y | Y

Assume a yes response to all questions asked by vxfsconvert. This option implies that the conversion is committed unless vxfsconvert fails to allocate the required disk space. If an unknown inode type is detected during the conversion, vxfsconvert ignores it.

Operands

vxfsconvert recognizes the following operand:

special

Name of the character (raw) device that contains the file system to convert.

Notes

To take full advantage of the VxFS file system, use fsadm to reorganize the file system after the conversion. The online reorganization feature of fsadm is available in only with the HP OnLineJFS product.

vxfsconvert cannot convert a Version 4 disk layout to a Version 5 disk layout. Use the vxupgrade online upgrade procedure instead.

Use the vxupgrade command to upgrade mounted file systems.

To take full advantage of the VxFS file system, use fsadm to reorganize the file system after the conversion. The online reorganization feature of fsadm is available in only with the HP OnLineJFS product.

The converted VxFS file system uses the Version 4 disk layout, which is only recognized by JFS 3.3 and later versions. Do not convert a file system which is shared by a system running HP-UX 10.x or HP-UX 11.00 without JFS 3.3.

The ability to shrink a VxFS file system after conversion depends on the amount and location of free space in the original file system. If an attempt to shrink a converted file system fails, try shrinking again specifying a smaller shrink size. Shrinking is generally not possible for conversions performed using the -s option. For VxFS file systems on a Volume Manager volume, always shrink the file system before shrinking the volume. Use the fsadm command to shrink a file system.

You must call vxfsconvert with its full pathname: /sbin/fs/vxfs/vxfsconvert.

Quota conversion is not supported.

Conversion Process

To prepare a file system for conversion:

  • Install VxFS 3.2 or higher release on your system. vxfsconvert creates a Version 4 disk layout.

  • Clean and unmount the file system to convert. vxfsconvert cannot convert a mounted or dirty file system.

  • Unmount the filesystem and make sure it is clean (you may need to use fsck to clean the filesystem). vxfsconvert cannot convert a mounted or dirty file system.

  • Do a full backup on the file system before starting the conversion process.

Now run vxfsconvert. vxfsconvert does the following steps to convert a file system:

1.

Examines the superblock to make sure it is marked CLEAN.

2.

Based on information in the file system superblock, sets up VxFS metadata. This includes initializing all metadata required by the VxFS Version 4 disk layout (for example OLT, log, structural fileset). At this time, the original file system superblock is marked DIRTY unless you specified the -e or -s option.

3.

Reads every inode in the file system and converts it to a VxFS inode.

4.

For every regular file inode, vxfsconvert allocates and initializes enough extent data to map all of the file's data blocks. This translates only the representation of the file's data blocks from the old format to that of VxFS. It never copies or relocates user data blocks.

5.

For every directory inode, vxfsconvert allocates sufficient disk space to hold all the directory entries. For every directory entry in that directory, vxfsconvert converts it to a VxFS directory entry and writes all converted directory blocks.

6.

Converts all symbolic link, character special, block special, fifo, and socket inodes to VxFS.

7.

Converts HFS ACL entries to the respective VxFS ACL entries. Only the entries that comply with the VxFS ACL standard are converted. The compliant entries are those that specify permissions for either a user or a group, but not both. That is, entries of format (user.%) and (%.group) will be converted, while entries of format (user.group) will be omitted. For files with both supported and unsupported entries all supported entries will be converted, but unsupported entries will be omitted.

Up to this point, all metadata of the original file system is intact and the conversion process can be stopped. The file system can be used after you run the original file system-specific fsck. If you specified the -e or -s option, running the file system-specific fsck is not required.

8.

If all above steps completed successfully vxfsconvert asks whether to commit the conversion. It waits for the user response unless the -y or -n option was specified.

9.

vxfsconvert replaces the original superblock with the VxFS superblock and clears any alternate superblocks written by the original file system. The VxFS superblock is never written if you have specified the -n or -e option. After the superblock is overwritten, the original file system is no longer accessible; it is now a VxFS file system.

At this point, make appropriate changes to the mnttab and fstab files to indicate that the file system is now a VxFS file system.

Run the VxFS-specific full fsck on the converted file system. During pass 4, fsck displays several error messages that require a yes response to complete the conversion process. These errors occur because vxfsconvert does not create all metadata files; you must run fsck to complete the process. No error messages display during passes zero through three. The following is sample fsck output after successful conversion.

# fsck -F vxfs -y -o full /dev/vg01/rlvol5 superblock indicates that intent logging was disabled cannot perform log replay pass0 - checking structural files pass1 - checking inode sanity and blocks pass2 - checking directory linkage pass3 - checking reference counts pass4 - checking resource maps fileset 1 au 0 imap incorrect - fix (ynq)y fileset 1 au 0 iemap incorrect - fix (ynq)y fileset 999 au 0 imap incorrect - fix (ynq)y fileset 999 au 0 iemap incorrect - fix (ynq)y corrupted CUT entries, clear? (ynq)y au 0 emap incorrect - fix? (ynq)y au 0 summary incorrect - fix? (ynq)y au 1 emap incorrect - fix? (ynq)y au 1 summary incorrect - fix? (ynq)y au 1 state file incorrect - fix? (ynq)y fileset 1 iau 0 summary incorrect - fix? (ynq)y fileset 999 iau 0 summary incorrect - fix? (ynq)y free block count incorrect 0 expected 48878 fix? (ynq)y free extent vector incorrect fix? (ynq)y OK to clear log? (ynq)y set state to CLEAN? (ynq)y

EXAMPLES

The following example checks available free space in the /dev/vg01/lvol5 file system, unmounts the file system, and returns the amount of free space required for conversion. Available free space must always be greater than or equal to the required free space.

# df -k /dev/vg01/lvol5 /usr (/dev/vg01/lvol5) : 43264 total allocated Kb 30785 free allocated Kb 12479 used allocated Kb 28 % allocation used # umount /dev/vg01/lvol5 # /sbin/fs/vxfs/vxfsconvert -e /dev/vg01/rlvol5 vxfs vxfsconvert: Total of 1219K bytes required to complete the conversion

To convert the file system, enter:

# /sbin/fs/vxfs/vxfsconvert /dev/vg01/rlvol5 vxfs vxfsconvert: Do you wish to commit to conversion? (ynq) y vxfs vxfsconvert: CONVERSION WAS SUCCESSFUL

Upon successful conversion, check file system sanity, mount, and reorganize the file system (with fsadm) as in the following example:

# fsck -F vxfs -y -o full /dev/vg01/rlvol5 super-block indicates that intent logging was disabled cannot perform log replay pass0 - checking structural files pass1 - checking inode sanity and blocks pass2 - checking directory linkage fileset 999 directory 3 block 7591 offset 952 has reclen 0 clear block? (ynq)y pass3 - checking reference counts pass4 - checking resource maps fileset 1 au 0 imap incorrect - fix (ynq)y fileset 1 au 0 iemap incorrect - fix (ynq)y fileset 999 au 0 imap incorrect - fix (ynq)y fileset 999 au 0 iemap incorrect - fix (ynq)y fileset 999 au 0 imap incorrect - fix (ynq)y fileset 999 au 0 iemap incorrect - fix (ynq)y corrupted CUT entries, clear? (ynq)y au 0 emap incorrect - fix? (ynq)y au 0 summary incorrect - fix? (ynq)y au 1 state file incorrect - fix? (ynq)y au 1 emap incorrect - fix? (ynq)y au 1 summary incorrect - fix? (ynq)y au 1 state file incorrect - fix? (ynq)y fileset 1 iau 0 summary incorrect - fix? (ynq)y fileset 999 iau 0 summary incorrect - fix? (ynq)y fileset 999 iau 0 summary incorrect - fix? (ynq)y free block count incorrect 0 expected 35764 fix? (ynq)y free extent vector incorrect fix? (ynq)y OK to clear log? (ynq)y set state to CLEAN? (ynq)y # mount -F vxfs /dev/vg01/lvol5 /usr # fsadm -ed /mntpt fsadm: /etc/default/fs is used for determining the file system type

If the conversion fails, due to I/O failure, for example, run fsck to return to the original file system.

fsck -F hfs /dev/vg01/rlvol5

To convert a file system on a volume manager (for example, LVM) volume, using only disk space at the end of the file system (with the -s option), you may need to increase the volume size to provide the additional space to do the conversion. If LVM is used, you can do the following:

vxfsconvert -e /dev/vg01/rlvol5 lvextend -L new_size /dev/vg01/rlvol5 vxfsconvert -s required_space /dev/vg01/rlvol5

After the conversion completes, the increased volume space becomes a part of the converted VxFS file system.

Note: DO NOT reduce the volume after the conversion.

If the conversion fails, continue using the original file system. You do not need to run fsck. Reclaim the disk space by entering (on LVM):

lvreduce /dev/vg01/rlvol5 old_size

WARNINGS

Do not run vxfsconvert on the /stand or whole-disk bootable file systems.

In the rare case of unsuccessful conversion, there is a risk of data loss or corruption. Always do a full system backup before the conversion.

DIAGNOSTICS

All error messages, I/O failure, and exit messages display on standard output.

FILES

/etc/fstab

Contains static information about file systems.

/etc/mnttab

Table of mounted file systems.