# FSIMs and file system operations

This chapter discusses the seven File System Interface Modules (FSIMs) shipped with EVMS, and then provides examples of adding file systems and coordinating file system checks with the FSIMs.

## The FSIMs supported by EVMS

EVMS currently ships with seven FSIMs. These file system modules allow EVMS to interact with file system utilities such as `mkfs` and `fsck`. Additionally, the FSIMs ensure that EVMS safely performs operations, such as expanding and shrinking file systems, by coordinating these actions with the file system.

You can invoke operations such as `mkfs` and `fsck` through the various EVMS user interfaces. Any actions you initiate through an FSIM are not saved to disk until the changes are saved in the user interface. Later in this chapter we provide examples of creating a new file system and coordinating file system checks through the EVMS GUI, Ncurses, and command-line interfaces.

The FSIMs supported by EVMS are:

- JFS

- XFS

- ReiserFS

- Ext2/3

- SWAPFS

- OpenGFS

- NTFS

### JFS

The JFS module supports the IBM journaling file system (JFS). Current support includes `mkfs`, `unmkfs`, `fsck`, and online file system expansion. You must have at least version 1.0.9 of the JFS utilities for your system to work with this EVMS FSIM. You can download the latest utilities from the JFS for Linux site.

For more information on the JFS FSIM, refer to .

### XFS

The XFS FSIM supports the XFS file system from SGI. Command support includes `mkfs`, `unmkfs`, `fsck`, and online expansion. Use version 1.2 or higher, which you can download from the SGI open source FTP directory.

For more information on the XFS FSIM, refer to .

### ReiserFS

The ReiserFS module supports the ReiserFS journaling file system. This module supports `mkfs`, `unmkfs`, `fsck`, online and offline expansion and offline shrinkage. You need version 3.x.1a or higher of the ReiserFS utilities for use with the EVMS FSIM modules. You can download the ReiserFS utilities from The Naming System Venture (Namesys) Web site.

For more information on the ReiserFS FSIM, refer to .

### Ext2/3

The EXT2/EXT3 FSIM supports both the ext2 and ext3 file system formats. The FSIM supports `mkfs`, `unmkfs`, `fsck`, and offline shrinkage and expansion.

For more information on the Ext2/3 FSIM, refer to .

### SWAPFS

The SWAPFS FSIM supports Linux swap devices. The FSIM lets you create and delete swap devices, and supports `mkfs`, `unmkfs`, shrinkage and expansion. Currently, you are responsible for issuing the `swapon` and `swapoff` commands either in the startup scripts or manually. You can resize swap device with the SWAPFS FSIM as long as the device is not in use.

### OpenGFS

The OpenGFS module supports the OpenGFS clustered journaling file system. This module supports `mkfs`, `unmkfs`, `fsck`, and online expansion. You need the OpenGFS utilities for use with the EVMS FSIM module. You can download the OpenGFS utilities from the OpenGFS project on SourceForge.

For more information on the OpenGFS FSIM, refer to .

### NTFS

The NTFS FSIM supports the NTFS file system format. The FSIM supports `mkfs`, `unmkfs`, and offline shrinkage and expansion. It also has support for running the `ntfsfix` and `netfsclone` from the `ntfsprogs` utilities. You can download the `ntfsprogs` utilities from the Linux NTFS project web site.

For more information on the NTFS FSIM, refer to .

## Example: add a file system to a volume

After you have made an EVMS or compatibility volume, add a file system to the volume before mounting it. You can add a file system to a volume through the EVMS interface of your choice.

> ### Add a JFS File System to a Volume

> This example creates a new JFS file system, named `jfs_vol`, on volume `/dev/evms/my_vol`.

### Using the EVMS GUI

Follow these steps to create a JFS file system with the EVMS GUI:

1. Select Actions File Systems Make.

2. Select JFS File System Interface Module.

3. Click Next.

4. Select /dev/evms/my_vol.

5. Click Next.

6. Type `jfs_vol` in the "Volume Label" field. Customize any other options you are interested in.

7. Click Make.

8. The operation is completed when you save.

Alternatively, you can perform some of the steps to create a file system with the GUI context sensitive menu:

1. From the Volumes tab, right click `/dev/evms/my_vol`.

2. Click Make Filesystem...

3. Continue creating the file system beginning with step 2 of the GUI instructions. You can skip steps 4 and 5 of the GUI instructions.

### Using Ncurses

Follow these steps to create a JFS file system with Ncurses:

1. Select Actions File SystemsMake.

2. Select JFS File System Interface Module.

3. Activate Next.

4. Select `/dev/evms/my_vol`.

5. Activate Next.

6. Scroll down using the down arrow until Volume Label is highlighted.

7. Press Spacebar.

8. At the "::" prompt enter `jfs_vol`.

9. Press Enter.

10. Activate Make.

Alternatively, you can perform some of the steps to create a file system with the context sensitive menu:

1. From the Volumes view, press Enter on `/dev/evms/my_vol`.

2. Activate the Make Filesystem menu item.

3. Continue creating the file system beginning with step 2 of the Ncurses instructions.

### Using the CLI

Use the `mkfs` command to create the new file system. The arguments to `mkfs` include the FSIM type (in our example, JFS), followed by any option pairs, and then the volume name. The command to accomplish this is:

    mkfs: JFS={vollabel=jfs_vol}, /dev/evms/my_vol

The command is completed upon saving.

If you are interested in other options that `mkfs` can use, look at the results of the following query:

    query: plugins, plugin=JFS, list options

## Example: check a file system

You can also coordinate file system checks from the EVMS user interfaces.

> ### Check a JFS File System

> This example shows how to perform a file system check on a JFS file system, named `jfs_vol`, on volume `/dev/evms/my_vol`, with verbose output.

### Using the EVMS GUI

Follow these steps to check a JFS file system with the EVMS GUI:

1. Select Actions File Systems Check/Repair.

2. Select /dev/evms/my_vol.

3. Click Next.

4. Click the Yes button by Verbose Output. Customize any other options you are interested in.

5. Click Check.

6. The operation is completed when you save.

Alternatively, you can perform some of the steps to check a file system with the GUI context sensitive menu:

1. From the Volumes tab, right click `/dev/evms/my_vol`.

2. Click `Check/Repair File System...`

3. Continue checking the file system beginning with step 3 of the GUI instructions.

### Using Ncurses

Follow these steps to check a JFS file system with Ncurses:

1. Select Actions File SystemCheck/Repair

2. Select `/dev/evms/my_vol`.

3. Activate Next.

4. Scroll down using the down arrow until Verbose Output is highlighted.

5. Press Spacebar to change Verbose Output to Yes.

6. Activate Check.

Alternatively, you can perform some of the steps to check a file system with the context sensitive menu:

1. From the Volumes view, press Enter on `/dev/evms/my_vol`.

2. Activate the Check/Repair File System menu item.

3. Continue checking the file system beginning with step 3 of the Ncurses instructions.

### Using the CLI

The CLI `check` command takes a volume name and options as input. The command to check the file system on `/dev/evms/my_vol` is the following:

    check: /dev/evms/my_vol, verbose=TRUE

Currently, a query command for viewing additional options is not available.