Filesystem Manager

## This help page is incomplete

### Introduction

The purpose of this module is to simplify mounting of local disks, remote file shares and virtual memory. Before a Unix system can access files on any hard disk, CDROM, Jaz drive, floppy disk or file server it must be `mounted` at some point in the filesystem. The system keeps a list of filesystems that it knows about, typically to mount at bootup time. Filesystems can also be mounted temporarily, to be forgotten about when they are unmounted or the system is rebooted.

All Unix systems when installed will mount at least one filesystem at bootup time, and almost certainly more. There will always be one filesystem mounted as the root directory `/`, and maybe others as `/usr`, `/proc` or `/net`. Unless your Unix system is a diskless workstation, the root directory will be mounted from a local hard disk. Others filesystems may be mounted from file servers, local disks or even be 'magic' filesystems like `/proc` that do not contain real files.

One special case is virtual memory. Your system should always have at least one virtual memory swap file, which is used by the OS as an extension of physical memory. A swap file can either be a normal file in some filesystem, or a dedicated partition on a local disk.

This module works by reading and updating the file `/etc/fstab` or `/etc/vfstab` to manage known filesystems. Currently mounted filesystems are found by reading the file `/etc/mtab` or `/etc/mnttab`. Webmin will totally ignore any comments in the known filesystems table.

### Listing Current Filesystems

The main page of the `Filesystem Manager` module lists all the known filesystems. For each filesystem, the following details will be displayed :

- Mount point
  The directory at which this filesystem is mounted, or Virtual Memory if this is a swap file. Only one filesystem can be mounted at one mount point.

- Filesystem type
  The full name of this filesystem type. This depends on the type of mount (local or remote) and how the disk was formatted. Mounts from local disks have types like `Linux Native Filesystem`, `MS-DOS Filesystem` or `Solaris Unix Filesystem`. Remote mounts will almost always have the type `Network Filesytem`.

  If you want to use the short names for filesystem types (such as `ext2fs` instead of `Linux Native Filesystem`), change the `Use long filesystem types` option in the module options.

- Mounted from
  The device file or remote system name and directory that this filesystem was mounted from. Under Unix, all local disks have a device file in the `/dev/` directory that is used to access that disk. Device files have pathnames like `/dev/dsk/c0t1d0s3` or `/dev/hda1`. When you edit or create a mount, Webmin will covert the device file name to a disk and partition number automatically.

- In use?
  Yes if this filesystem is currently mounted, No if not.

- Permanent?
  Yes if this filesystem is permanently recorded, no if it will be forgotten when unmounted.

### Adding a New Filesystem

To add a new mount, choose the filesystem type from the selector below the list of existing mounts. This will display a form for entering the mount point, mount source and other options for the new mount. Each filesystem type for each Unix version has a different set of options, and many types have different possibilities for mount sources.

No matter what filesystem type you choose, some inputs will be the same on the `Create Mount` form. The most important is the mount point, which is the directory at which the filesystem is to be mounted. All filesystem types except virtual memory require you to enter this. If the directory you enter does not exist, Webmin will attempt to create it for you.

For most types of filesystem you will have 3 options for saving the mount :

- Save and mount at boot
  The mount will be recorded permanently, and mounted at bootup time when the system is started.

- Save
  The mount will be permanent, but not mounted at boot time.

- Don't save
  The mount will only be temporary.

For most filesystem types, you can also choose whether to mount now or not. Choosing not to mount or save a new filesystem is pointless, and will display an error.

There are however some types of filesystem which will not present all the options listed above. Some examples are :

- `Virtual Memory` under Linux
  Whenever this type is mounted it is saved, and whenever it is unmounted it is deleted. Saved VM mounts are always added at bootup time.

- `Windows Networking` under Linux
  This filesystem type can only be mounted using the `smbmount` command, so cannot be saved.

- `Automounter Filesystems`
  Permanent Automounter filesystems are always mounted at boot time.

All filesystem types require you to choose the mount source and mount options. Because the source and options differ significantly between different Unix flavours and filesystem types they are described individually in the list below :

- Redhat Linux 4.0+ and Slackware Linux 3.0+
  For most Linux filesystem types, the mount source can be one of the following :
  - IDE device
    For this choice you must enter the IDE device letter and partition. The device letter is typically `a` for the 1st internal hard disk, `b` for the 2nd internal disk, and `c` for the CD-ROM. The partition number depends on which partition you want to mount. Use the `fdisk` command to see the available partitionson your disks.

  - SCSI device
    For this option you must enter the SCSI device letter and partition. The device letter does NOT correspond to the SCSI target number - each SCSI device is assigned a letter by Linux in the order they are found by the OS.

  - Floppy disk
    This choice only requires you to enter the floppy device number. This will be `0` for your primary drive or `1` for the secondary.

  - Other device
    If you choose this option, you can type in any device pathname that you want to mount. This is useful for mounting other RAOD devices, PCMCIA cards and other paths that Webmin doesn't know about.

  Before a filesystem on a local IDE or SCSI disk partition can be mounted, the partition must have been created and a filesystem built on it. The Partition Manager module can be used to do this, or you can use the Linux `fdisk` and `mkfs` commands.

  The `Network Filesystem (nfs)`, `Windows Networking Filesystem (smbfs)`, `Automounter Filesystem (auto)` and `Virtual Memory (swap)` mount types use a different form for the mount source. See the section about that filesystem type below for more details.

  Once you have chosen the mount source, you can also set various filesystem-specific options. Some options however are common to almost all Linux filesystems. They are :

  Read-only | If yes, then nobody can write, create, delete or change anything on this filesystem
  Allow SUID files | If no, then setuid programs on this filesystem will not be run as their owner. Useful when mounting remote filesystems that you don't trust

  The filesystem-specific options are :

  - Linux Native Filesystem (ext2fs)
    This is the latest filesystem type for local hard disks on Linux.
    The following additional options are available :

  - Network Filesystem (nfs)
    NFS is the standard Unix way of sharing files between systems. For NFS, the mount source is not a local disk but instead a hostname and remote directory. The hostname is the name (or IP address) of the system you want to mount from. The remote directory is a directory on the remote system that is exported to your system.
    NFS filesystems have the following additional options :

    NFS version | The version of NFS (1-3) to use

  - Virtual Memory (swap)
    The mount source for virtual memory can be a local IDE disk, SCSI disk or normal file. If you enter a filename that does not exist, Webmin will ask for the size of the swap file to create and then add it as swap. Unless your Linux kernel has been configured to allow it, a swap cannot be on an NFS mounted filesystem.
    There are no options for virtual memory mounts.

  - Windows Networking Filesystem (smbfs)
    Windows networking refers to the file sharing protocol used by Samba, Windows 95 and NT (also known as SMB or LANManager). If a Windows fileserver is sharing a directory, you can mount it under Linux and access the contents as normal files.

    The mount source for a Windows networking filesystem is a share name like `\\ntbox\somedir`. The first part is the NetBIOS name of the server, and the second the name of a share on the server. Ideally a server's NetBIOS name should be the same as its TCP/IP hostname, but if not you can use the mount options to specify the correct hostname or IP address to connect to.
    The following options are available :

    Username | The username to login to the fileserver with. Not needed for public shares
    Password | The password used with the username. If you do not have a valid username and password on the server then the mount will fail. Not needed for public shares

  - MS-DOS Filesystem (fat)
    Floppy or hard disks formatted under Windows 3.1 and versions of MS-DOS before 7.0 use this filesystem type. Files in this filesystem are limited to the 8.3 filename standard used by DOS. If you try to create a file with a longer name, it will be truncated to the 8.3 format. Because DOS has no concept of file ownership or real file permissions, all files in the mounted directory will have the same owner and access mode. The ownership or rights of individual files cannot be changed.
    The following options are available :

  - Windows 95 Filesystem (vfat)
    This filesystem is found on disks formatted by Windows 95 and possibly NT. Like the MS-DOS filesystem above it has no concept of file ownership or permissions. However, it can support long filenames.
    Available options are :

  - ISO9660 Filesystem (iso9660)
    This is the standard format for CD-ROMs. The basic format only supports 8.3 filenames like `fat`, but there is an extended format called Rock Ridge that allows files to have long names and Unix permissions.
    The options for this filesystem are :

  - OS/2 Filesystem (hpfs)
    Hard disks formatted by OS/2 use this filesystem format. Long filenames are supported, but Unix permissions and file ownership are not.
    Available options are :

  - Linux on MS-DOS Filesystem (umsdos)
    This filesystem is used only for installing Linux on a system has only an MS-DOS filesystem, and cannot be re-partitioned. It works by using the directory \linux on the DOS filesystem as the root for the Linux filesystem. When mounted under Linux, long filenames, file ownership and permissions are supported. This filesystem is not supported by default in RedHat Linux, and should only be used if you have no other option as performance is poor.
    The valid options for `umsdos` are :

- Solaris 2.5+
  For disk-based Solaris filesystems, the mount source can be one of :
  - SCSI Disk
    Under Solaris, every SCSI disk is identified by 4 numbers:
    - Controller - The SCSI controller the disk is connected to. Always 0 for the built-in controller on Sparc boxes.
    - Target - The SCSI unit number. For internal hard drives this is 0 or 1. For external drives it is typically settable by a selector on the drive box.
    - Unit - Almost always 0.
    - Partition - The number of the partition to mount.

  - MetaDisk Device
    If you have striped, mirrored or RAIDed devices created using Sun's Metadevice software, choose this option and enter the Metadevice number.

  - Other Device
    This choice requires you to enter the full path to the device file to mount.

  Before a filesystem on a local SCSI disk can be mounted, the partition must be setup and a filesystem built on it. The Partition Manager module can be used to do this, or you can use the `format` and `newfs` Unix commands.

  Under Solaris, CDROMs and floppy disks are mounted automatically by the volume manager. Unless this has been disabled, floppies and CDROMs never need to be manually mounted. Devices mounted by the volume manager are not displayed in the list of mounted filesystems on the main page. This may also apply to removable SCSI devices (such a Jaz or Syquest drives), depending on how volume management is set up on your system.

  Once the filesystem mount source has been chosen, you can also set a number of filesystem-specific options :

  - Solaris Unix Filesystem (ufs)
    This is the standard filesystem type used by Solaris for local disks.
    The available options are :

    Read-only | If yes, then nobody can write, create, delete or chmod anything on this filesystem

  - Network Filesystem (nfs)
    NFS is the standard Unix way of sharing files between systems. For NFS, the mount source is not a local disk but instead a hostname and remote directory. The hostname is the name (or IP address) of the system you want to mount from. The remote directory is a directory on the remote system that is exported to your system.
    NFS filesystems have the following additional options :

  - Virtual Memory (swap)
    The mount source for virtual memory can be a SCSI disk, MetaDisk device or normal file. If you enter a filename that does not exist, Webmin will ask you for the size of the swap file to create. Once the file is created, it will be mounted as swap.
    There are no options for Virtual Memory mounts.

  - Caching Filesystem (cachefs)
    This filesystem uses space on a local disk to cache files from another filesystem, typically NFS. This means that commonly accessed files from an NFS server are kept locally, resulting in a significant speedup. When you create a new Caching Filesystem mount, Webmin assumes that the back filesystem is of type NFS.

    The mount source for `cachefs` filesystems is the NFS server and directory to cache. ??? When you mount a Caching filesystem, two mounts are really made - the back mount and the `cachefs` mount on the actual directory. Webmin does not show back mounts on the list of mounted filesystems.

    `cachefs` uses a cache directory to store cached files, specified in the mount options. You can either use the `cfsadmin` Unix command to create a cache directory with the parameters you want, or let Webmin set it up automatically. In the latter case, the cache will be limit to 10% of the size of the filesystem it is on.
    Valid options for this filesystem are:

  - Ram Disk Filesystem (tmpfs)
    Files stored in a filesystem of this type exist only in RAM, and are lost when unmounted or the system is rebooted. The `/tmp` directory in Solaris uses this filesystem type. Because it is stored only in memory, there is no mount source section of the filesystem form.
    The only option is :

  - Automounter Filesystem (autofs)
    The Automounter does automatic mounting and unmounting of NFS directories on demand. A subdirectory under an automounter directory will come into existance and mount a file server when the user first refers to it, such as by cd'ing into the subdirectory. After some idle time, the subdirectory will be unmounted an disappear.

    The mount source for filesystems of this type has 3 different options :

    - All NFS Servers (-net)
      When the user cd's into a subdirectory, it is taken as the hostname of an NFS server. If this server exists, all the available exports from the server will be mounted under the new subdirectory.
      Solaris by default has the `/net` directory mounted with this source, so a user can do something like
      `cd /net/bar.foo.com/usr/local/bin`
      `ls -l`

    - XFN Server (-xfn)
      No idea???

    - Automounter map
      For this option, the name of an NIS map or local file containing an automounter map must be given. The configuration of which servers and directories to mount is specified in this map. For more information, see the `automount` man page.

    The options for automounter filesystems are the same as those for NFS. These options apply to the automatically mounted subdirectories inside the automount directory.

  - MS-DOS Filesystem (pcfs)
    Disks formatted under MS-DOS use this filesystem. Files in are limited to 8.3 filenames, and have no Unix ownership or permissions. Typically, you will never need to use Webmin to mount `pcfs` filesystem floppy, as they are handled automatically by the volume management system.
    The options available for MS-DOS filesystems are :

  - CDROM Filesystem (hsfs)

### Editing an Existing Filesystem

To edit an existing mount, click on the mount point from the list on the main page. This will display the form used for creating a new mount with the current mount point, source and options filled in. You can now change any of these on the form, in the same way as you would create a new mount (described above).

An existing mount will be either permanently saved, currently mounted or both. If you change the mount to be not saved or mounted, then it will be deleted from the mount list. Note that some filesystem types will not have both these options.

Under Unix a directory cannot be unmounted if it is currently in use, either by a process having a file in the directory open or by a user having some subdirectory as his current directory. Similarly, a swap file cannot be unmounted if the amount of free memory is less than the size of the swap file. When you change the directory, source or options of an existing mount, Webmin will unmount and remount it to apply the changes. This will fail if the directory or swap file is in use, and an error displayed.

Return to module