Softpanorama

May the source be with you, but remember the KISS principle ;-)
Home Switchboard Unix Administration Red Hat TCP/IP Networks Neoliberalism Toxic Managers
(slightly skeptical) Educational society promoting "Back to basics" movement against IT overcomplexity and  bastardization of classic Unix

mount command

News Commercial_linuxes Recommended Links Reference /etc/fstab/ Loopback filesystem Filesystem mount options
fuser lsof Unix filesystems Linux Swap filesystem Linux tmpfs Device mapper udev—Persistent Device Naming
Moving non-critical partition such as /tmp or /home to a new disk Sharing NFS Resources Mounting NFS Resources Write Access to Unix Directories from NFS client Linux Logical Volume Snapshots Sticky attribute (sticky bit) in Unix World writable files problem
Partition labels Linux Disk Partitioning Mounting and Unmounting CD-ROM on Solaris Solaris mount Solaris vfstab Performing Mounts on Solaris Mount Options in Solaris
Managing Disks by ID Managing Disks by UUID Linux Multipath Admin Horror Stories Unix History Humor Etc

Introduction

The mount  command serves to attach the file system found on some device to the big file tree.

It takes two parameters: first is device and the second mount point. Essentially the same semantec as cp command.

Conversely, the umount  command will detach it again.  When mounting USB drive,

fdisk -l 

is your friend. It helps to find the right device name to mount

In Suse Linux the available devices are also visible in YAST/system/hardware.

The effect of overlay of root directory of partition on the "target" directory

When you mount a partition, this the root directory on which you mount  particular partition effectively substitutes the name of the directory on which it is mounted, but all attributes of the partition comes from the root direction on the mounted partition. 

So, for example, when you see /tmp directory on which a partition is mounted you see the root directory of this partition under the name of /tmp with all its attributes, not the /tmp directory that exists in root partition with its attaributes. That means that by the mere fact of mounting partition on  the directory, the permissions and ownership of the directory can change.

That's usually a big surprise for junior sysadmins. Typically such shock is experienced when you extent /tmp partition by creating a new partition and changing the mount point in /etc/fstab.  Unless you check new /tmp partition attributes, as a result after the reboot /tmp typically is not world writable and does not have a sticky attribute set ;-)

In other words, if you created a new partition (say on a new disk) and mount it, say, on /tmp (for example to enlarge partition) it is this new partition root directory attributes that are visible, not the attributes of the /tmp directory that exists in root directory whatever they are. That's why there is no sticky bit such a newly mounted /tmp partition and that's why typically it is not world-writable (aka "public") as /tmp should be (and BTW if you work as root this fact is not immediately visible as for root it is writable; this is another argument in favor of using sudo by sysadmins ;-).

When a partition is mounted then the root directory of the partition substitutes (overlay) the directory on which it is mounted.

That is connected with the implemented in Unix concept of mounting. When a partition is mounted then the root directory of the partition substitutes (overlay) the directory on which it is mounted.

mount [-t type] device dir tells the kernel to attach the file system found on device  (which is of type type) at the directory dir. The previous contents (if any) and owner and mode of dir  become invisible, and as long as this file system remains mounted, the pathname dir  refers to the root of the file system on device.

And by default permission for this newly-created "hidden" root directory are defined by umask. It is something like 755, never 1777.  

Similarly if you unmount old /tmp and mount it of, say, /srv, this directory magically will get permission 1777 despite the fact that before that the permission on the /srv directory were 755.

Remounting and moving mount points

Remounting read-only partition as  read-write

Sometime dir to errors in RAID  controller or disks the partition isswitch to read write. If error is episodic you can switch it back for some period of time, befire it bane read only afain.

To remount file system in read-write mode use below command –

# mount -o remount,rw /home

To see the results see

# mount -v | grep home

Note: It is recommended to fsck file system before re mounting it.

Sometimes if there are errors in /etc/fstab  the system can't boot properly and come in rescue mode. In this mode the only drive (root) is mounted as read-only. To remount the root volume as writable you can use the command:

mount -o remount,rw /

If you make changes to /etc/fstab  you can remount  all filesystems listed in /etc/fstab/.

mount -o remount -a

The -o remount may not be able to change mount parameters (all ext3-specific parameters, except sb, are changeable with a remount, for example, but you can't change gid or umask for the fatfs).

Moving a mounted partition to new mounting point

Linux has a unique option in mount command which permits to move a mounted partition to new mounting point.

mount --move olddir newdir 
 

Pseudopartition (Loopback filesystem) mounting

Some files such as ISO files, DD images, and archives (for example zip archives) etc can be viewed as pseudopartitions.

The most typical use of this feature is mounting ISO images.

mount -o loop /tmp/test.img /mnt/image

See Linux Loopback filesystem for details

Problems with unmounting partitition

to unmount partition you can use umount command.  For example

umount /home

But it is not always succeed. One  reason that  the partition can't be  unmounted is that it is used by some application.  Thre revelnet command to detect why are lsof and fuser

When you can't unable to unmount a partition with a filesystem

Fist you need to understand the situation. The first step is to find out what processes have activities on the device/partition. This can be done using lsof command. for example:

# lsof | grep '/dev/sda1'

Now you know what processes to stop. As soon those process are killed (you can use fuser -km mount_point for that), the device will no longer be busy and you can unmount it with the following command

You can also try to find which user is preventing the partition from unmount using that command fuser -u mount_point

After that you can kill all processes at once using the command fuser -km  file_or_directory

Lazy unmount

With kernel version 2.6 you try to use option -l to initiated so called lazy unmount. System will unmount the filesystem as soon as it is not busy anymore. For example:

# umount -l /opt

Forced unmount of NFS partition

for NFS special option -f exist, which forces unmount of unreachable NFS filesystem.

# umount -f /opt/sge

Examples

  1. Remounting. Sometimes if there are errors in /etc/fstab  the system can't boot properly and come in rescue mode. In this mode the only drive (root) is mounted as read-only. To remount the root volume as writable you can use the command:
    mount -o remount,rw /
    If you make changes to /etc/fstab  you can remount  all filesystems listed in /etc/fstab/.
    mount -o remount -a	
  2. Specifying type of filesystem. In case DVD is not mounted automatically you can try to mount it manually using the command:
    mount -f iso9660 /dev/dvd  /media
  3. ISO mount
    mount -o loop /tmp/test.img /mnt/image
  4. [Unique for linux] moves a mounted partition to new mounting point.
    mount --move olddir newdir 
  5. Binding

    mount --bind olddir newdir

     remount the filesystem mounted on olddir to  newdir. This call attaches only (part of) a single filesystem, not possible submounts. The entire file hierarchy including submounts is attached a second place using. After this call the same contents is accessible in two places. One can also remount a single file (on a single file).

    mount --rbind olddir newdir

    Note:  the filesystem mount options will remain the same as those on the original mount point, and cannot be changed by passing the -o option along with --bind/--rbind.
     

  6. mount -t type device dir tells the kernel to attach the file system found on device  (which is of type type) at the directory dir. The previous contents (if any) and owner and mode of dir  become invisible, and as long as this file system remains mounted, the pathname dir  refers to the root of the file system on device.
     
  7. mount -h prints a help message;
     
  8. mount -V prints the of mount installed on the system version
     
  9. mount [-L] [-t type] lists all mounted file systems (of type type). The option -L adds the (ext2, ext3 and XFS) labels in this listing. That means that you can mount partitions using labels.

Most devices are indicated by a file name (of a block special device), like /dev/sda1, but there are other possibilities. For example, in the case of an NFS mount, device  may look like knuth.cwi.nl:/dir. It is possible to indicate a block special device using its volume label or UUID (see the -L and -U options).

Mounting devices  in /etc/fstab

The file /etc/fstab  (see fstab(5)), may contain lines describing what devices are usually mounted where, using which options. This file is used in three ways:

When mounting a file system mentioned in fstab, it suffices to give only the device, or only the mount point.

Normally, only the superuser can mount file systems. However, when fstab  contains the user  option on a line, anybody can mount the corresponding system. Thus, given a line

/dev/cdrom /media/dvd iso9660 ro,user,noauto,unhide
any user can mount the iso9660 file system found on his CDROM using the command
	mount /dev/cdrom
or
	mount /media/dvd
For more details, see fstab(5).

Only the user that mounted a filesystem can unmount it again. If any user should be able to unmount, then use users  instead of user  in the fstab  line.

The owner  option is similar to the user  option, with the restriction that the user must be the owner of the special file. This may be useful e.g. for /dev/fd  if a login script makes the console user owner of this device. The group  option is similar, with the restriction that the user must be member of the group of the special file.

The programs mount  and umount  maintain a list of currently mounted file systems in the file /etc/mtab. If no arguments are given to mount, this list is printed.

When the proc  filesystem is mounted (say at /proc), the files /etc/mtab  and /proc/mounts  have very similar contents. The former has somewhat more information, such as the mount options used, but is not necessarily up-to-date (cf. the -n  option below). It is possible to replace /etc/mtab  by a symbolic link to /proc/mounts, and especially when you have very large numbers of mounts things will be much faster with that symlink, but some information is lost that way, and in particular working with the loop device will be less convenient, and using the "user" option will fail.

Marking a mount and its submounts as shared, private, slave or unbindable

Since Linux 2.6.15 it is possible to mark a mount and its submounts as shared, private, slave or unbindable.

Detailed semantics is documented in Documentation/sharedsubtree.txt file in the kernel source tree.

mount --make-shared mountpoint 
mount --make-slave mountpoint 
mount --make-private mountpoint 
mount --make-unbindable mountpoint 

The following commands allows one to recursively change the type of all the mounts under a given mountpoint.

mount --make-rshared mountpoint 
mount --make-rslave mountpoint 
mount --make-rprivate mountpoint 
mount --make-runbindable mountpoint 

The proc  file system is not associated with a special device, and when mounting it, an arbitrary keyword, such as proc  can be used instead of a device specification. (The customary choice none  is less fortunate: the error message 'none busy' from umount  can be confusing.)


Top Visited
Switchboard
Latest
Past week
Past month

NEWS CONTENTS

Old News ;-)

[Jan 14, 2018] How to remount filesystem in read write mode under Linux

/n/n
/n
Jan 14, 2018 | kerneltalks.com
/n /n/n

Most of the time on newly created file systems of NFS filesystems we see error/n like below :

/n/n /n /n /n/n /n /n
1 2 3 4root @ kerneltalks # touch file1 touch : cannot touch ' file1 ' : Read - only file/n system
/n/n

This is because file system is mounted as read only. In such scenario you have to mount it/n in read-write mode. Before that we will see how to check if file system is mounted in read only/n mode and then we will get to how to re mount it as a read write filesystem.

/n
/n How to check if file system is read only/n/n

To confirm file system is mounted in read only mode use below command –

/n/n /n /n /n/n /n /n
1 2 3 4# cat /proc/mounts | grep datastore / dev / xvdf / datastore ext3 ro , seclabel ,/n relatime , data = ordered 0 0
/n/n

Grep your mount point in cat /proc/mounts and observer third column which shows/n all options which are used in mounted file system. Here ro denotes file system is/n mounted read-only.

/n/n

You can also get these details using mount -v command

/n/n /n /n /n/n /n /n
1 2 3 4root @ kerneltalks # mount -v |grep datastore / dev / xvdf on / datastore type ext3 (/n ro , relatime , seclabel , data = ordered )
/n/n

In this output. file system options are listed in braces at last column.

/n
/n Re-mount file system in read-write mode/n/n

To remount file system in read-write mode use below command –

/n/n /n /n /n/n /n /n
1 2 3 4 5 6root @ kerneltalks # mount -o remount,rw /datastore root @ kerneltalks # mount -v |grep/n datastore / dev / xvdf on / datastore type ext3 ( rw , relatime , seclabel , data = ordered/n )
/n/n

Observe after re-mounting option ro changed to rw . Now, file/n system is mounted as read write and now you can write files in it.

/n/n
/n

Note : It is recommended to fsck file system before re mounting it.

/n
/n/n

You can check file system by running fsck on its volume.

/n/n /n /n /n/n /n /n
1 2 3 4 5 6 7 8 9 10root @ kerneltalks # df -h /datastore Filesystem Size Used Avail Use % Mounted on / dev/n / xvda2 10G 881M 9.2G 9 % / root @ kerneltalks # fsck /dev/xvdf fsck from util - linux/n 2.23.2 e2fsck 1.42.9 ( 28 - Dec - 2013 ) / dev / xvdf : clean , 12 / 655360 files , 79696 //n 2621440 blocks
/n/n

Sometimes there are some corrections needs to be made on file system which needs reboot to/n make sure there are no processes are accessing file system.

/n /n /n
/n/n

[Dec 05, 2015] How to forcefully unmount a Linux disk partition

/n/n
/n
January 27, 2006 | www.cyberciti.biz
/n/n/n

... ... ...

/n/n

Linux / UNIX will not allow you to unmount a device that is busy. There are many reasons for this /n (such as program accessing partition or open file) , but the most important one is to prevent /n the data loss. Try the following command to find out what processes have activities on the /n device/partition. If your device name is /dev/sdb1, enter the following command as root user:

/n/n
# lsof | grep '/dev/sda1'
/n Output:
vi 4453       vivek    3u      BLK        8,1                 8167 /dev/sda1
/n/n

Above output tells that user vivek has a vi process running that is using /dev/sda1. All you have /n to do is stop vi process and run umount again. As soon as that program terminates its task, the device /n will no longer be busy and you can unmount it with the following command:

/n/n
# umount /dev/sda1
/n/n How do I list the users on the file-system /nas01/?

Type the following command:

/n/n
# fuser -u /nas01/
/n # fuser -u /var/www/
/n Sample outputs:
/var/www:             3781rc(root)  3782rc(nginx)  3783rc(nginx)  3784rc(nginx)  3785rc(nginx)  3786rc(nginx)  3787rc(nginx)  3788rc(nginx)  3789rc(nginx)  3790rc(nginx)  3791rc(nginx)  3792rc(nginx)  3793rc(nginx)  3794rc(nginx)  3795rc(nginx)  3796rc(nginx)  3797rc(nginx)  3798rc(nginx)  3800rc(nginx)  3801rc(nginx)  3802rc(nginx)  3803rc(nginx)  3804rc(nginx)  3805rc(nginx)  3807rc(nginx)  3808rc(nginx)  3809rc(nginx)  3810rc(nginx)  3811rc(nginx)  3812rc(nginx)  3813rc(nginx)  3815rc(nginx)  3816rc(nginx)  3817rc(nginx)
/n/n

The following discussion allows you to unmount device and partition forcefully using mount or fuser /n Linux commands.

/n Linux fuser command to forcefully unmount a disk partition

Suppose you have /dev/sda1 mounted /n on /mnt directory then you can use fuser command as follows:

/n WARNING! These examples may result into data loss if not executed properly (see /n "Understanding /n device error busy error" for more information).

Type the command to unmount /mnt forcefully:

/n/n
# fuser -km /mnt
/n Where,/n/n

Linux umount command to unmount a disk partition.

/n/n

You can also try the umount command with –l option on a Linux based system:

/n/n
# umount -l /mnt
/n Where,/n/n

If you would like to unmount a NFS mount point then try following command:

/n/n
# umount -f /mnt
/n Where,/n/n

Please note that using these commands or options can cause data loss for open files; programs /n which access files after the file system has been unmounted will get an error.

/n/n
See also:
/n /n /n/n
/n

[Dec 05, 2015] How do I forcefully unmount a Linux disk partition by Vivek Gite

January 27, 2006 | www.cyberciti.biz

... ... ...

Linux / UNIX will not allow you to unmount a device that is busy. There are many reasons for this (such as program accessing partition or open file) , but the most important one is to prevent the data loss. Try the following command to find out what processes have activities on the device/partition. If your device name is /dev/sdb1, enter the following command as root user:

# lsof | grep '/dev/sda1'
Output:
vi 4453       vivek    3u      BLK        8,1                 8167 /dev/sda1

Above output tells that user vivek has a vi process running that is using /dev/sda1. All you have to do is stop vi process and run umount again. As soon as that program terminates its task, the device will no longer be busy and you can unmount it with the following command:

# umount /dev/sda1

How do I list the users on the file-system /nas01/?

Type the following command:

# fuser -u /nas01/
# fuser -u /var/www/

Sample outputs:

/var/www:             3781rc(root)  3782rc(nginx)  3783rc(nginx)  3784rc(nginx)  3785rc(nginx)  3786rc(nginx)  3787rc(nginx)  3788rc(nginx)  3789rc(nginx)  3790rc(nginx)  3791rc(nginx)  3792rc(nginx)  3793rc(nginx)  3794rc(nginx)  3795rc(nginx)  3796rc(nginx)  3797rc(nginx)  3798rc(nginx)  3800rc(nginx)  3801rc(nginx)  3802rc(nginx)  3803rc(nginx)  3804rc(nginx)  3805rc(nginx)  3807rc(nginx)  3808rc(nginx)  3809rc(nginx)  3810rc(nginx)  3811rc(nginx)  3812rc(nginx)  3813rc(nginx)  3815rc(nginx)  3816rc(nginx)  3817rc(nginx)

The following discussion allows you to unmout device and partition forcefully using mount or fuser Linux commands.

Linux fuser command to forcefully unmount a disk partition

Suppose you have /dev/sda1 mounted on /mnt directory then you can use fuser command as follows:

WARNING! These examples may result into data loss if not executed properly (see "Understanding device error busy error" for more information).

Type the command to unmount /mnt forcefully:

# fuser -km /mnt
Where,

Linux umount command to unmount a disk partition.

You can also try the umount command with –l option on a Linux based system:

# umount -l /mnt
Where,

If you would like to unmount a NFS mount point then try following command:

# umount -f /mnt
Where,

Please note that using these commands or options can cause data loss for open files; programs which access files after the file system has been unmounted will get an error.

See also:

[Apr 22, 2010] new fstab mount option guide for fixed drives - suggestions ...

(note: I started this thread at http://ubuntuforums.org/showthread.php?t=412717), but it hasn't been getting much response there. I'm hoping it will fit in better here. http://www.suseforums.net/index.php?showtopic=34332 is also a related post in the SUSE forums.)

I've been reading various tutorials on fstab and mounting, but I still don't really understand. There are varying ways to achieve the same end results -- and nowhere among the most popular general fstab guides/tutorials are there many examples of typical partition types and their common mount strategies.

So, what I would like to do is to make a different kind of guide. I'd like to compile a list of typical partition types and common fstab entries for them and give concise explanations for why each element is chosen. I will edit this as feedback comes in and it will essentially publish itself here.

If this kind of guide already exists, it is well hidden. So, please, help me form this into something useful.

If this ever gets done -- done well, please feel free to post this somewhere else or to translate the commentary. Please do link back to this as the source and help me keep this thread updated. Email me (conquest [at] spamcop [dot] net) if the thread gets old and you'd like to see an alteration of the top post. Maybe making a wiki would be good for this too. I'll do that if it seems appropriate.

Situation 1: Windows partitions (NT, 2000, XP, 2003, Vista)
1A

Code:
/dev/xxxx   /media/mountpoint   ntfs   user,ro,auto   0   0
(user allows anyone to mount, ro makes it read-only since ntfs is a MS-protected format, auto mounts it at boot automatically)
or
1B Code:
/dev/xxxx   /media/mountpoint   ntfs   nls=utf8,umask=0222   0   0
(nls=utf8 includes unicode for non-English users, umask=0222 (-r-xr-xr-x) does what?)
or
1C Code:
/dev/xxxx   /media/mountpoint   ntfs   defaults,nls=utf8,umask=007,gid=46   0   1
(nls=utf8 includes unicode for non-English users, umask=007 ??? Makes for 659 permissions?, gid=46 ??? )

Situation 2: ntfs data partitions (generally from Windows):

Code:
(same as above???)
Situation 3: fat-32 data partitions (ideal shared partition between linux, windows, and apple's mac os):
Code:
/dev/xxxx   /media/mountpoint   vfat   iocharset=utf8,umask=000   0   0
(iocharset=utf8 includes unicode for non-English users, umask=000 allows most liberal file permissions)

Situation 4: ext3 data partitions (partitions shared between different linuxes, mac osx, and even Windows (using "Ext2 Installable File System for Windows", for example)):

Code:
I don't know. I can find no examples of this on the fstab tutorials.
Maybe
/dev/xxxx   /media/mountpoint   ext3   defaults   0   2
Situation 5: other linuxes themselves, their root partition:
Code:
???
again, maybe
/dev/xxxx   /media/mountpoint   ext3   defaults   0   2
The format of fstab is also changing, from something like this:
Code:
/dev/sda2   /media/sda2   ntfs   defaults,nls=utf8,umask=007,gid=46   0   1
to something like this:
Code:
# /dev/sda2
UUID=9068AF8E68AF7220   /media/sda2   ntfs   defaults,nls=utf8,umask=007,gid=46   0   1
However, I cannot find any authoritative links on this:
http://ubuntuforums.org/showthread.php?t=405630 (My device are now "sda" than "hda")
http://www.linuxquestions.org/questi...d.php?t=544734 (ide drives show up as special device)
Can anyone point out where this transition is explained, please? An announcement somewhere?

Thank you,
Greg Conquest

key phrases: typical mount options, example fstab's, example fstab,

references:
umask
http://www.zzee.com/solutions/linux-permissions.shtml (linux permissions)
http://www.tech-faq.com/umask.shtml
gid
http://linux.about.com/cs/linux101/g/gid.htm (About.com's short note on GID)
uuid
http://www.die.net/doc/linux/man/man1/uuid.1.html (man page for uuid)
mount
http://www.die.net/doc/linux/man/man8/mount.8.html (man page for mount)


more links:
http://www.tuxfiles.org/linuxhelp/fstab.html (top guide according to google -- no fixed-drive examples are given, though)
http://www.psychocats.net/ubuntu/mountwindows has several example fstab entries, but it has little to no explanation of those mount options.
http://www.linuxquestions.org/linux/..._and_explained (another fstab tutorial)
http://wiki.archlinux.org/index.php/Fstab

Reference

The full set of options used by an invocation of mount is determined by first extracting the options for the file system from the fstab table, then applying any options specified by the -o argument, and finally applying a -r or -w option, when present.

Options available for the mount command:

-V
Output version.
-h
Print a help message.
-v
Verbose mode.
-a
Mount all filesystems (of the given types) mentioned in fstab.
-F
(Used in conjunction with -a.) Fork off a new incarnation of mount for each device. This will do the mounts on different devices or different NFS servers in parallel. This has the advantage that it is faster; also NFS timeouts go in parallel. A disadvantage is that the mounts are done in undefined order. Thus, you cannot use this option if you want to mount both /usr and /usr/spool.
-f
Causes everything to be done except for the actual system call; if it's not obvious, this ''fakes'' mounting the file system. This option is useful in conjunction with the -v flag to determine what the mount command is trying to do. It can also be used to add entries for devices that were mounted earlier with the -n option.
-i
Don't call the /sbin/mount.<filesystem> helper even if it exists.
-l
Add the ext2, ext3 and XFS labels in the mount output. Mount must have permission to read the disk device (e.g. be suid root) for this to work. One can set such a label for ext2 or ext3 using the e2label(8) utility, or for XFS using xfs_admin(8), or for reiserfs using reiserfstune(8).
-n
Mount without writing in /etc/mtab. This is necessary for example when /etc is on a read-only file system.
-pnum
In case of a loop mount with encryption, read the passphrase from file descriptor num instead of from the terminal.
-s
Tolerate sloppy mount options rather than failing. This will ignore mount options not supported by a filesystem type. Not all filesystems support this option. This option exists for support of the Linux autofs-based automounter.
-r
Mount the file system read-only. A synonym is -o ro.
-w
Mount the file system read/write. This is the default. A synonym is -o rw.
-L label
Mount the partition that has the specified label.
-U uuid
Mount the partition that has the specified uuid. These two options require the file /proc/partitions (present since Linux 2.1.116) to exist.
-t vfstype
The argument following the -t is used to indicate the file system type. The file system types which are currently supported include: adfs, affs, autofs, cifs, coda, coherent, cramfs, debugfs, devpts, efs, ext, ext2, ext3, hfs, hpfs, iso9660, jfs, minix, msdos, ncpfs, nfs, nfs4, ntfs, proc, qnx4, ramfs, reiserfs, romfs, smbfs, sysv, tmpfs, udf, ufs, umsdos, usbfs, vfat, xenix, xfs, xiafs. Note that coherent, sysv and xenix are equivalent and that xenix and coherent will be removed at some point in the future -- use sysv instead. Since kernel version 2.1.21 the types ext and xiafs do not exist anymore. Earlier, usbfs was known as usbdevfs.

For most types all the mount program has to do is issue a simple mount(2) system call, and no detailed knowledge of the filesystem type is required. For a few types however (like nfs, nfs4, cifs, smbfs, ncpfs) ad hoc code is necessary. The nfs ad hoc code is built in, but cifs, smbfs, and ncpfs have a separate mount program. In order to make it possible to treat all types in a uniform way, mount will execute the program /sbin/mount.TYPE (if that exists) when called with type TYPE. Since various versions of the smbmount program have different calling conventions, /sbin/mount.smbfs may have to be a shell script that sets up the desired call.

If no -t option is given, or if the auto type is specified, mount will try to guess the desired type. If mount was compiled with the blkid library, the guessing is done by this library. Otherwise, mount guesses itself by probing the superblock; if that does not turn up anything that looks familiar, mount will try to read the file /etc/filesystems, or, if that does not exist, /proc/filesystems. All of the filesystem types listed there will be tried, except for those that are labeled "nodev" (e.g., devpts, proc, nfs, and nfs4). If /etc/filesystems ends in a line with a single * only, mount will read /proc/filesystems afterwards.

The auto type may be useful for user-mounted floppies. Creating a file /etc/filesystems can be useful to change the probe order (e.g., to try vfat before msdos or ext3 before ext2) or if you use a kernel module autoloader. Warning: the probing uses a heuristic (the presence of appropriate 'magic'), and could recognize the wrong filesystem type, possibly with catastrophic consequences. If your data is valuable, don't ask mount to guess.

More than one type may be specified in a comma separated list. The list of file system types can be prefixed with no to specify the file system types on which no action should be taken. (This can be meaningful with the -a option.)

For example, the command:

mount -a -t nomsdos,ext mounts all file systems except those of type msdos and ext.
-O
Used in conjunction with -a, to limit the set of filesystems to which the -a is applied. Like -t in this regard except that it is useless except in the context of -a. For example, the command:
mount -a -O no_netdev mounts all file systems except those which have the option _netdev specified in the options field in the /etc/fstab file.

It is different from -t in that each option is matched exactly; a leading no at the beginning of one option does not negate the rest.

The -t and -O options are cumulative in effect; that is, the command

mount -a -t ext2 -O _netdev
mounts all ext2 filesystems with the _netdev option, not all filesystems that are either ext2 or have the _netdev option specified.
-o
Options are specified with a -o flag followed by a comma separated string of options. Some of these options are only useful when they appear in the /etc/fstab file. The following options apply to any file system that is being mounted (but not every file system actually honors them - e.g., the sync option today has effect only for ext2, ext3, fat, vfat and ufs):
async
All I/O to the file system should be done asynchronously.
atime
Update inode access time for each access. This is the default.
auto
Can be mounted with the -a option.
defaults
Use default options: rw, suid, dev, exec, auto, nouser, and async.
dev
Interpret character or block special devices on the file system.
exec
Permit execution of binaries.
group
Allow an ordinary (i.e., non-root) user to mount the file system if one of his groups matches the group of the device. This option implies the options nosuid and nodev (unless overridden by subsequent options, as in the option line group,dev,suid).
mand
Allow mandatory locks on this filesystem. See fcntl(2).
_netdev
The filesystem resides on a device that requires network access (used to prevent the system from attempting to mount these filesystems until the network has been enabled on the system).
noatime
Do not update inode access times on this file system (e.g, for faster access on the news spool to speed up news servers).
nodiratime
Do not update directory inode access times on this filesystem.
noauto
Can only be mounted explicitly (i.e., the -a option will not cause the file system to be mounted).
nodev
Do not interpret character or block special devices on the file system.
noexec
Do not allow direct execution of any binaries on the mounted file system. (Until recently it was possible to run binaries anyway using a command like /lib/ld*.so /mnt/binary. This trick fails since Linux 2.4.25 / 2.6.0.)
nomand
Do not allow mandatory locks on this filesystem.
nosuid
Do not allow set-user-identifier or set-group-identifier bits to take effect. (This seems safe, but is in fact rather unsafe if you have suidperl(1) installed.)
nouser
Forbid an ordinary (i.e., non-root) user to mount the file system. This is the default.
owner
Allow an ordinary (i.e., non-root) user to mount the file system if he is the owner of the device. This option implies the options nosuid and nodev (unless overridden by subsequent options, as in the option line owner,dev,suid).
remount
Attempt to remount an already-mounted file system. This is commonly used to change the mount flags for a file system, especially to make a readonly file system writeable. It does not change device or mount point.
ro
Mount the file system read-only.
rw
Mount the file system read-write.
suid
Allow set-user-identifier or set-group-identifier bits to take effect.
sync
All I/O to the file system should be done synchronously. In case of media with limited number of write cycles (e.g. some flash drives) "sync" may cause life-cycle shortening.
dirsync
All directory updates within the file system should be done synchronously. This affects the following system calls: creat, link, unlink, symlink, mkdir, rmdir, mknod and rename.
user
Allow an ordinary user to mount the file system. The name of the mounting user is written to mtab so that he can unmount the file system again. This option implies the options noexec, nosuid, and nodev (unless overridden by subsequent options, as in the option line user,exec,dev,suid).
users
Allow every user to mount and unmount the file system. This option implies the options noexec, nosuid, and nodev (unless overridden by subsequent options, as in the option line users,exec,dev,suid).
context=context, fscontext=context and defcontext=context
The context= option is useful when mounting filesystems that do not support extended attributes, such as a floppy or hard disk formatted with VFAT, or systems that are not normally running under SELinux, such as an ext3 formatted disk from a non-SELinux workstation. You can also use context= on filesystems you do not trust, such as a floppy. It also helps in compatibility with xattr-supporting filesystems on earlier 2.4.<x> kernel versions. Even where xattrs are supported, you can save time not having to label every file by assigning the entire disk one security context.

A commonly used option for removable media is context=system_u:object_r:removable_t.

Two other options are fscontext= and defcontext=, both of which are mutually exclusive of the context option. This means you can use fscontext and defcontext with each other, but neither can be used with context.

The fscontext= option works for all filesystems, regardless of their xattr support. The fscontext option sets the overarching filesystem label to a specific security context. This filesystem label is separate from the individual labels on the files. It represents the entire filesystem for certain kinds of permission checks, such as during mount or file creation. Individual file labels are still obtained from the xattrs on the files themselves. The context option actually sets the aggregate context that fscontext provides, in addition to supplying the same label for individual files.

You can set the default security context for unlabeled files using defcontext= option. This overrides the value set for unlabeled files in the policy and requires a file system that supports xattr labeling.

For more details see selinux(8)

--bind
Remount a subtree somewhere else (so that its contents are available in both places). See above.
--move
Move a subtree to some other place. See above.

Filesystem Specific Mount Options

The following options apply only to certain file systems. We sort them by file system. They all follow the -o flag.

What options are supported depends a bit on the running kernel. More info may be found in the kernel source subdirectory Documentation/filesystems.

Mount options for ext2

The 'ext2' file system is the standard Linux file system. Since Linux 2.5.46, for most mount options the default is determined by the filesystem superblock. Set them with tune2fs(8).
acl / noacl
Support POSIX Access Control Lists (or not).
bsddf / minixdf
Set the behaviour for the statfs system call. The minixdf behaviour is to return in the f_blocks field the total number of blocks of the file system, while the bsddf behaviour (which is the default) is to subtract the overhead blocks used by the ext2 file system and not available for file storage.
Thus
% mount /k -o minixdf; df /k; umount /k
Filesystem   1024-blocks  Used Available Capacity Mounted on
/dev/sda6      2630655   86954  2412169      3%   /k
% mount /k -o bsddf; df /k; umount /k
Filesystem   1024-blocks  Used Available Capacity Mounted on
/dev/sda6      2543714      13  2412169      0%   /k
(Note that this example shows that one can add command line options to the options given in /etc/fstab.)
check=none / nocheck
No checking is done at mount time. This is the default. This is fast. It is wise to invoke e2fsck(8) every now and then, e.g. at boot time.
debug
Print debugging info upon each (re)mount.
errors=continue / errors=remount-ro / errors=panic
Define the behaviour when an error is encountered. (Either ignore errors and just mark the file system erroneous and continue, or remount the file system read-only, or panic and halt the system.) The default is set in the filesystem superblock, and can be changed using tune2fs(8).
grpid or bsdgroups / nogrpid or sysvgroups
These options define what group id a newly created file gets. When grpid is set, it takes the group id of the directory in which it is created; otherwise (the default) it takes the fsgid of the current process, unless the directory has the setgid bit set, in which case it takes the gid from the parent directory, and also gets the setgid bit set if it is a directory itself.
grpquota / noquota / quota / usrquota
These options are accepted but ignored.
nobh
Do not attach buffer_heads to file pagecache. (Since 2.5.49.)
nouid32
Disables 32-bit UIDs and GIDs. This is for interoperability with older kernels which only store and expect 16-bit values.
oldalloc or orlov
Use old allocator or Orlov allocator for new inodes. Orlov is default.
resgid=n and resuid=n
The ext2 file system reserves a certain percentage of the available space (by default 5%, see mke2fs(8) and tune2fs(8)). These options determine who can use the reserved blocks. (Roughly: whoever has the specified uid, or belongs to the specified group.)
sb=n
Instead of block 1, use block n as superblock. This could be useful when the filesystem has been damaged. (Earlier, copies of the superblock would be made every 8192 blocks: in block 1, 8193, 16385, ... (and one got thousands of copies on a big filesystem). Since version 1.08, mke2fs has a -s (sparse superblock) option to reduce the number of backup superblocks, and since version 1.15 this is the default. Note that this may mean that ext2 filesystems created by a recent mke2fs cannot be mounted r/w under Linux 2.0.*.) The block number here uses 1k units. Thus, if you want to use logical block 32768 on a filesystem with 4k blocks, use "sb=131072".
user_xattr / nouser_xattr
Support "user." extended attributes (or not).

Mount options for ext3

The 'ext3' file system is a version of the ext2 file system which has been enhanced with journalling. It supports the same options as ext2 as well as the following additions:
journal=update
Update the ext3 file system's journal to the current format.
journal=inum
When a journal already exists, this option is ignored. Otherwise, it specifies the number of the inode which will represent the ext3 file system's journal file; ext3 will create a new journal, overwriting the old contents of the file whose inode number is inum.
noload
Do not load the ext3 file system's journal on mounting.
data=journal / data=ordered / data=writeback
Specifies the journalling mode for file data. Metadata is always journaled. To use modes other than ordered on the root file system, pass the mode to the kernel as boot parameter, e.g. rootflags=data=journal.
journal
All data is committed into the journal prior to being written into the main file system.
ordered
This is the default mode. All data is forced directly out to the main file system prior to its metadata being committed to the journal.
writeback
Data ordering is not preserved - data may be written into the main file system after its metadata has been committed to the journal. This is rumoured to be the highest-throughput option. It guarantees internal file system integrity, however it can allow old data to appear in files after a crash and journal recovery.
commit=nrsec
Sync all data and metadata every nrsec seconds. The default value is 5 seconds. Zero means default.

Mount options for fat

(Note: fat is not a separate filesystem, but a common part of the msdos, umsdos and vfat filesystems.)
blocksize=512 / blocksize=1024 / blocksize=2048
Set blocksize (default 512).
uid=value and gid=value
Set the owner and group of all files. (Default: the uid and gid of the current process.)
umask=value
Set the umask (the bitmask of the permissions that are not present). The default is the umask of the current process. The value is given in octal.
dmask=value
Set the umask applied to directories only. The default is the umask of the current process. The value is given in octal.
fmask=value
Set the umask applied to regular files only. The default is the umask of the current process. The value is given in octal.
check=value
Three different levels of pickyness can be chosen:
r[elaxed]
Upper and lower case are accepted and equivalent, long name parts are truncated (e.g. verylongname.foobar becomes verylong.foo), leading and embedded spaces are accepted in each name part (name and extension).
n[ormal]
Like "relaxed", but many special characters (*, ?, <, spaces, etc.) are rejected. This is the default.
s[trict]
Like "normal", but names may not contain long parts and special characters that are sometimes used on Linux, but are not accepted by MS-DOS are rejected. (+, =, spaces, etc.)
codepage=value
Sets the codepage for converting to shortname characters on FAT and VFAT filesystems. By default, codepage 437 is used.
conv=b[inary] / conv=t[ext] / conv=a[uto]
The fat file system can perform CRLF<-->NL (MS-DOS text format to UNIX text format) conversion in the kernel. The following conversion modes are available:
binary
no translation is performed. This is the default.
text
CRLF<-->NL translation is performed on all files.
auto
CRLF<-->NL translation is performed on all files that don't have a "well-known binary" extension. The list of known extensions can be found at the beginning of fs/fat/misc.c (as of 2.0, the list is: exe, com, bin, app, sys, drv, ovl, ovr, obj, lib, dll, pif, arc, zip, lha, lzh, zoo, tar, z, arj, tz, taz, tzp, tpz, gz, tgz, deb, gif, bmp, tif, gl, jpg, pcx, tfm, vf, gf, pk, pxl, dvi).

Programs that do computed lseeks won't like in-kernel text conversion. Several people have had their data ruined by this translation. Beware!

For file systems mounted in binary mode, a conversion tool (fromdos/todos) is available.

cvf_format=module
Forces the driver to use the CVF (Compressed Volume File) module cvf_module instead of auto-detection. If the kernel supports kmod, the cvf_format=xxx option also controls on-demand CVF module loading.
cvf_option=option
Option passed to the CVF module.
debug
Turn on the debug flag. A version string and a list of file system parameters will be printed (these data are also printed if the parameters appear to be inconsistent).
fat=12 / fat=16 / fat=32
Specify a 12, 16 or 32 bit fat. This overrides the automatic FAT type detection routine. Use with caution!
iocharset=value
Character set to use for converting between 8 bit characters and 16 bit Unicode characters. The default is iso8859-1. Long filenames are stored on disk in Unicode format.
quiet
Turn on the quiet flag. Attempts to chown or chmod files do not return errors, although they fail. Use with caution!
sys_immutable, showexec, dots, nodots, dotsOK=[yes|no]
Various misguided attempts to force Unix or DOS conventions onto a FAT file system.

Mount options for iso9660

ISO 9660 is a standard describing a filesystem structure to be used on CD-ROMs. (This filesystem type is also seen on some DVDs. See also the udf filesystem.)

Normal iso9660 filenames appear in a 8.3 format (i.e., DOS-like restrictions on filename length), and in addition all characters are in upper case. Also there is no field for file ownership, protection, number of links, provision for block/character devices, etc.

Rock Ridge is an extension to iso9660 that provides all of these unix like features. Basically there are extensions to each directory record that supply all of the additional information, and when Rock Ridge is in use, the filesystem is indistinguishable from a normal UNIX file system (except that it is read-only, of course).

norock
Disable the use of Rock Ridge extensions, even if available. Cf. map.
nojoliet
Disable the use of Microsoft Joliet extensions, even if available. Cf. map.
check=r[elaxed] / check=s[trict]
With check=relaxed, a filename is first converted to lower case before doing the lookup. This is probably only meaningful together with norock and map=normal. (Default: check=strict.)
uid=value and gid=value
Give all files in the file system the indicated user or group id, possibly overriding the information found in the Rock Ridge extensions. (Default: uid=0,gid=0.)
map=n[ormal] / map=o[ff] / map=a[corn]
For non-Rock Ridge volumes, normal name translation maps upper to lower case ASCII, drops a trailing ';1', and converts ';' to '.'. With map=off no name translation is done. See norock. (Default: map=normal.) map=acorn is like map=normal but also apply Acorn extensions if present.
mode=value
For non-Rock Ridge volumes, give all files the indicated mode. (Default: read permission for everybody.) Since Linux 2.1.37 one no longer needs to specify the mode in decimal. (Octal is indicated by a leading 0.)
unhide
Also show hidden and associated files. (If the ordinary files and the associated or hidden files have the same filenames, this may make the ordinary files inaccessible.)
block=[512|1024|2048]
Set the block size to the indicated value. (Default: block=1024.)
conv=a[uto] / conv=b[inary] / conv=m[text] / conv=t[ext]
(Default: conv=binary.) Since Linux 1.3.54 this option has no effect anymore. (And non-binary settings used to be very dangerous, possibly leading to silent data corruption.)
cruft
If the high byte of the file length contains other garbage, set this mount option to ignore the high order bits of the file length. This implies that a file cannot be larger than 16MB.
session=x
Select number of session on multisession CD. (Since 2.3.4.)
sbsector=xxx
Session begins from sector xxx. (Since 2.3.4.)

The following options are the same as for vfat and specifying them only makes sense when using discs encoded using Microsoft's Joliet extensions.

iocharset=value
Character set to use for converting 16 bit Unicode characters on CD to 8 bit characters. The default is iso8859-1.
utf8
Convert 16 bit Unicode characters on CD to UTF-8.

Mount options for msdos

See mount options for fat. If the msdos file system detects an inconsistency, it reports an error and sets the file system read-only. The file system can be made writeable again by remounting it.

Mount options for nfs

Instead of a textual option string, parsed by the kernel, the nfs file system expects a binary argument of type struct nfs_mount_data. The program mount itself parses the following options of the form 'tag=value', and puts them in the structure mentioned: rsize=n, wsize=n, timeo=n, retrans=n, acregmin=n, acregmax=n, acdirmin=n, acdirmax=n, actimeo=n, retry=n, port=n, mountport=n, mounthost=name, mountprog=n, mountvers=n, nfsprog=n, nfsvers=n, namlen=n. The option addr=n is accepted but ignored. Also the following Boolean options, possibly preceded by no are recognized: bg, fg, soft, hard, intr, posix, cto, ac, tcp, udp, lock. For details, see nfs(5).

Especially useful options include

rsize=32768,wsize=32768
This causes the NFS client to try to negotiate a buffer size up to the size specified. A large buffer size does improve performance, but both the server and client have to support it. In the case where one of these does not support the size specified, the size negotiated will be the largest that both support.
intr
This will allow NFS operations (on hard mounts) to be interrupted while waiting for a response from the server.
nolock
Do not use locking. Do not start lockd.

Mount options for nfs4

Instead of a textual option string, parsed by the kernel, the nfs4 file system expects a binary argument of type struct nfs4_mount_data. The program mount itself parses the following options of the form 'tag=value', and puts them in the structure mentioned: rsize=n, wsize=n, timeo=n, retrans=n, acregmin=n, acregmax=n, acdirmin=n, acdirmax=n, actimeo=n, retry=n, port=n, proto=n, clientaddr=n, sec=n. The option addr=n is accepted but ignored. Also the following Boolean options, possibly preceded by no are recognized: bg, fg, soft, hard, intr, cto, ac, For details, see nfs(5).

Especially useful options include

rsize=32768,wsize=32768
This causes the NFS4 client to try to negotiate a buffer size up to the size specified. A large buffer size does improve performance, but both the server and client have to support it. In the case where one of these does not support the size specified, the size negotiated will be the largest that both support.
intr
This will allow NFS4 operations (on hard mounts) to be interrupted while waiting for a response from the server.

Mount options for ntfs

iocharset=name
Character set to use when returning file names. Unlike VFAT, NTFS suppresses names that contain unconvertible characters. Deprecated.
nls=name
New name for the option earlier called iocharset.
utf8
Use UTF-8 for converting file names.
uni_xlate=[0|1|2]
For 0 (or 'no' or 'false'), do not use escape sequences for unknown Unicode characters. For 1 (or 'yes' or 'true') or 2, use vfat-style 4-byte escape sequences starting with ":". Here 2 give a little-endian encoding and 1 a byteswapped bigendian encoding.
posix=[0|1]
If enabled (posix=1), the file system distinguishes between upper and lower case. The 8.3 alias names are presented as hard links instead of being suppressed.
uid=value, gid=value and umask=value
Set the file permission on the filesystem. The umask value is given in octal. By default, the files are owned by root and not readable by somebody else.

Mount options for proc

uid=value and gid=value
These options are recognized, but have no effect as far as I can see.

Mount options for ramfs

Ramfs is a memory based filesystem. Mount it and you have it. Unmount it and it is gone. Present since Linux 2.3.99pre4. There are no mount options.

Mount options for romfs

None.

Mount options for smbfs

Just like nfs, the smbfs implementation expects a binary argument (a struct smb_mount_data) to the mount system call. This argument is constructed by smbmount(8) and the current version of mount (2.12) does not know anything about smbfs.

Mount options for sysv

None.

Mount options for tmpfs

The following parameters accept a suffix k, m or g for Ki, Mi, Gi (binary kilo, mega and giga) and can be changed on remount.
size=nbytes
Override default maximum size of the filesystem. The size is given in bytes, and rounded down to entire pages. The default is half of the memory.
nr_blocks=
Set number of blocks.
nr_inodes=
Set number of inodes.
mode=
Set initial permissions of the root directory.

Mount options for udf

udf is the "Universal Disk Format" filesystem defined by the Optical Storage Technology Association, and is often used for DVD-ROM. See also iso9660.
gid=
Set the default group.
umask=
Set the default umask. The value is given in octal.
uid=
Set the default user.
unhide
Show otherwise hidden files.
undelete
Show deleted files in lists.
nostrict
Unset strict conformance.
iocharset
Set the NLS character set.
bs=
Set the block size. (May not work unless 2048.)
novrs
Skip volume sequence recognition.
session=
Set the CDROM session counting from 0. Default: last session.
anchor=
Override standard anchor location. Default: 256.
volume=
Override the VolumeDesc location. (unused)
partition=
Override the PartitionDesc location. (unused)
lastblock=
Set the last block of the filesystem.
fileset=
Override the fileset block location. (unused)
rootdir=
Override the root directory location. (unused)

Mount options for ufs

ufstype=value
UFS is a file system widely used in different operating systems. The problem are differences among implementations. Features of some implementations are undocumented, so its hard to recognize the type of ufs automatically. That's why the user must specify the type of ufs by mount option. Possible values are:
old
Old format of ufs, this is the default, read only. (Don't forget to give the -r option.)
44bsd
For filesystems created by a BSD-like system (NetBSD,FreeBSD,OpenBSD).
sun
For filesystems created by SunOS or Solaris on Sparc.
sunx86
For filesystems created by Solaris on x86.
hp
For filesystems created by HP-UX, read-only.
nextstep
For filesystems created by NeXTStep (on NeXT station) (currently read only).
nextstep-cd
For NextStep CDROMs (block_size == 2048), read-only.
openstep
For filesystems created by OpenStep (currently read only). The same filesystem type is also used by Mac OS X.
onerror=value
Set behaviour on error:
panic
If an error is encountered, cause a kernel panic.
[lock|umount|repair]
These mount options don't do anything at present; when an error is encountered only a console message is printed.

Mount options for umsdos

See mount options for msdos. The dotsOK option is explicitly killed by umsdos.

Mount options for vfat

First of all, the mount options for fat are recognized. The dotsOK option is explicitly killed by vfat. Furthermore, there are
uni_xlate
Translate unhandled Unicode characters to special escaped sequences. This lets you backup and restore filenames that are created with any Unicode characters. Without this option, a '?' is used when no translation is possible. The escape character is ':' because it is otherwise illegal on the vfat filesystem. The escape sequence that gets used, where u is the unicode character, is: ':', (u & 0x3f), ((u>>6) & 0x3f), (u>>12).
posix
Allow two files with names that only differ in case.
nonumtail
First try to make a short name without sequence number, before trying name~num.ext.
utf8
UTF8 is the filesystem safe 8-bit encoding of Unicode that is used by the console. It can be be enabled for the filesystem with this option. If 'uni_xlate' gets set, UTF8 gets disabled.
shortname=[lower|win95|winnt|mixed]
Defines the behaviour for creation and display of filenames which fit into 8.3 characters. If a long name for a file exists, it will always be preferred display. There are four modes:
lower
Force the short name to lower case upon display; store a long name when the short name is not all upper case.
win95
Force the short name to upper case upon display; store a long name when the short name is not all upper case.
winnt
Display the shortname as is; store a long name when the short name is not all lower case or all upper case.
mixed
Display the short name as is; store a long name when the short name is not all upper case.

The default is "lower".

Mount options for usbfs

devuid=uid and devgid=gid and devmode=mode
Set the owner and group and mode of the device files in the usbfs file system (default: uid=gid=0, mode=0644). The mode is given in octal.
busuid=uid and busgid=gid and busmode=mode
Set the owner and group and mode of the bus directories in the usbfs file system (default: uid=gid=0, mode=0555). The mode is given in octal.
listuid=uid and listgid=gid and listmode=mode
Set the owner and group and mode of the file devices (default: uid=gid=0, mode=0444). The mode is given in octal.

Mount options for xfs

biosize=size
Sets the preferred buffered I/O size (default size is 64K). size must be expressed as the logarithm (base2) of the desired I/O size. Valid values for this option are 14 through 16, inclusive (i.e. 16K, 32K, and 64K bytes). On machines with a 4K pagesize, 13 (8K bytes) is also a valid size. The preferred buffered I/O size can also be altered on an individual file basis using the ioctl(2) system call.
dmapi " / " xdsm
Enable the DMAPI (Data Management API) event callouts.
logbufs=value
Set the number of in-memory log buffers. Valid numbers range from 2-8 inclusive. The default value is 8 buffers for filesystems with a blocksize of 64K, 4 buffers for filesystems with a blocksize of 32K, 3 buffers for filesystems with a blocksize of 16K, and 2 buffers for all other configurations. Increasing the number of buffers may increase performance on some workloads at the cost of the memory used for the additional log buffers and their associated control structures.
logbsize=value
Set the size of each in-memory log buffer. Valid sizes are 16384 (16K) and 32768 (32K). The default value for machines with more than 32MB of memory is 32768, machines with less memory use 16384 by default.
logdev=device and rtdev=device
Use an external log (metadata journal) and/or real-time device. An XFS filesystem has up to three parts: a data section, a log section, and a real-time section. The real-time section is optional, and the log section can be separate from the data section or contained within it. Refer to xfs(5).
noalign
Data allocations will not be aligned at stripe unit boundaries.
noatime
Access timestamps are not updated when a file is read.
norecovery
The filesystem will be mounted without running log recovery. If the filesystem was not cleanly unmounted, it is likely to be inconsistent when mounted in norecovery mode. Some files or directories may not be accessible because of this. Filesystems mounted norecovery must be mounted read-only or the mount will fail.
nouuid
Ignore the filesystem uuid. This avoids errors for duplicate uuids.
osyncisdsync
Make writes to files opened with the O_SYNC flag set behave as if the O_DSYNC flag had been used instead. This can result in better performance without compromising data safety. However if this option is in effect, timestamp updates from O_SYNC writes can be lost if the system crashes.
quota / usrquota / uqnoenforce
User disk quota accounting enabled, and limits (optionally) enforced.
grpquota / gqnoenforce
Group disk quota accounting enabled and limits (optionally) enforced.
sunit=value and swidth=value
Used to specify the stripe unit and width for a RAID device or a stripe volume. value must be specified in 512-byte block units. If this option is not specified and the filesystem was made on a stripe volume or the stripe width or unit were specified for the RAID device at mkfs time, then the mount system call will restore the value from the superblock. For filesystems that are made directly on RAID devices, these options can be used to override the information in the superblock if the underlying disk layout changes after the filesystem has been created. The swidth option is required if the sunit option has been specified, and must be a multiple of the sunit value.

the Loop Device

One further possible type is a mount via the loop device. For example, the command
mount /tmp/fdimage /mnt -t msdos -o loop=/dev/loop3,blocksize=1024
will set up the loop device /dev/loop3 to correspond to the file /tmp/fdimage, and then mount this device on /mnt.

This type of mount knows about three options, namely loop, offset and encryption, that are really options to losetup(8). (These options can be used in addition to those specific to the filesystem type.)

If no explicit loop device is mentioned (but just an option '-o loop' is given), then mount will try to find some unused loop device and use that. If you are not so unwise as to make /etc/mtab a symbolic link to /proc/mounts then any loop device allocated by mount will be freed by umount. You can also free a loop device by hand, using 'losetup -d', see losetup(8).

Return Codes

mount has the following return codes (the bits can be ORed):
  1. success
  2. incorrect invocation or permissions
  3. system error (out of memory, cannot fork, no more loop devices)
  4. internal mount bug or missing nfs support in mount
  5. user interrupt
  6. problems writing or locking /etc/mtab
  7. mount failure
  8. some mount succeeded

Files

/etc/fstab
file system table
/etc/mtab
table of mounted file systems
/etc/mtab~
lock file
/etc/mtab.tmp
temporary file
/etc/filesystems
a list of filesystem types to try

See Also

mount(2), umount(2), fstab(5), umount(8), swapon(8), nfs(5), xfs(5), e2label(8), xfs_admin(8), mountd(8), nfsd(8), mke2fs(8), tune2fs(8), losetup(8)

Bugs

It is possible for a corrupted file system to cause a crash.

Some Linux file systems don't support -o sync and -o dirsync (the ext2, ext3, fat and vfat file systems do support synchronous updates (a la BSD) when mounted with the sync option).

The -o remount may not be able to change mount parameters (all ext2fs-specific parameters, except sb, are changeable with a remount, for example, but you can't change gid or umask for the fatfs).

Mount by label or uuid will work only if your devices have the names listed in /proc/partitions. In particular, it may well fail if the kernel was compiled with devfs but devfs is not mounted.

It is possible that files /etc/mtab and /proc/mounts don't match. The first file is based only on the mount command options, but the content of the second file also depends on the kernel and others settings (e.g. remote NFS server. In particular case the mount command may reports unreliable information about a NFS mount point and the /proc/mounts file usually contains more reliable information.)

Checking files on NFS filesystem referenced by file descriptors (i.e. the fcntl and ioctl families of functions) may lead to inconsistent result due to the lack of consistency check in kernel even if noac is used.

History

A mount command existed in Version 5 AT&T UNIX.



Etc

Society

Groupthink : Two Party System as Polyarchy : Corruption of Regulators : Bureaucracies : Understanding Micromanagers and Control Freaks : Toxic Managers :   Harvard Mafia : Diplomatic Communication : Surviving a Bad Performance Review : Insufficient Retirement Funds as Immanent Problem of Neoliberal Regime : PseudoScience : Who Rules America : Neoliberalism  : The Iron Law of Oligarchy : Libertarian Philosophy

Quotes

War and Peace : Skeptical Finance : John Kenneth Galbraith :Talleyrand : Oscar Wilde : Otto Von Bismarck : Keynes : George Carlin : Skeptics : Propaganda  : SE quotes : Language Design and Programming Quotes : Random IT-related quotesSomerset Maugham : Marcus Aurelius : Kurt Vonnegut : Eric Hoffer : Winston Churchill : Napoleon Bonaparte : Ambrose BierceBernard Shaw : Mark Twain Quotes

Bulletin:

Vol 25, No.12 (December, 2013) Rational Fools vs. Efficient Crooks The efficient markets hypothesis : Political Skeptic Bulletin, 2013 : Unemployment Bulletin, 2010 :  Vol 23, No.10 (October, 2011) An observation about corporate security departments : Slightly Skeptical Euromaydan Chronicles, June 2014 : Greenspan legacy bulletin, 2008 : Vol 25, No.10 (October, 2013) Cryptolocker Trojan (Win32/Crilock.A) : Vol 25, No.08 (August, 2013) Cloud providers as intelligence collection hubs : Financial Humor Bulletin, 2010 : Inequality Bulletin, 2009 : Financial Humor Bulletin, 2008 : Copyleft Problems Bulletin, 2004 : Financial Humor Bulletin, 2011 : Energy Bulletin, 2010 : Malware Protection Bulletin, 2010 : Vol 26, No.1 (January, 2013) Object-Oriented Cult : Political Skeptic Bulletin, 2011 : Vol 23, No.11 (November, 2011) Softpanorama classification of sysadmin horror stories : Vol 25, No.05 (May, 2013) Corporate bullshit as a communication method  : Vol 25, No.06 (June, 2013) A Note on the Relationship of Brooks Law and Conway Law

History:

Fifty glorious years (1950-2000): the triumph of the US computer engineering : Donald Knuth : TAoCP and its Influence of Computer Science : Richard Stallman : Linus Torvalds  : Larry Wall  : John K. Ousterhout : CTSS : Multix OS Unix History : Unix shell history : VI editor : History of pipes concept : Solaris : MS DOSProgramming Languages History : PL/1 : Simula 67 : C : History of GCC developmentScripting Languages : Perl history   : OS History : Mail : DNS : SSH : CPU Instruction Sets : SPARC systems 1987-2006 : Norton Commander : Norton Utilities : Norton Ghost : Frontpage history : Malware Defense History : GNU Screen : OSS early history

Classic books:

The Peter Principle : Parkinson Law : 1984 : The Mythical Man-MonthHow to Solve It by George Polya : The Art of Computer Programming : The Elements of Programming Style : The Unix Hater’s Handbook : The Jargon file : The True Believer : Programming Pearls : The Good Soldier Svejk : The Power Elite

Most popular humor pages:

Manifest of the Softpanorama IT Slacker Society : Ten Commandments of the IT Slackers Society : Computer Humor Collection : BSD Logo Story : The Cuckoo's Egg : IT Slang : C++ Humor : ARE YOU A BBS ADDICT? : The Perl Purity Test : Object oriented programmers of all nations : Financial Humor : Financial Humor Bulletin, 2008 : Financial Humor Bulletin, 2010 : The Most Comprehensive Collection of Editor-related Humor : Programming Language Humor : Goldman Sachs related humor : Greenspan humor : C Humor : Scripting Humor : Real Programmers Humor : Web Humor : GPL-related Humor : OFM Humor : Politically Incorrect Humor : IDS Humor : "Linux Sucks" Humor : Russian Musical Humor : Best Russian Programmer Humor : Microsoft plans to buy Catholic Church : Richard Stallman Related Humor : Admin Humor : Perl-related Humor : Linus Torvalds Related humor : PseudoScience Related Humor : Networking Humor : Shell Humor : Financial Humor Bulletin, 2011 : Financial Humor Bulletin, 2012 : Financial Humor Bulletin, 2013 : Java Humor : Software Engineering Humor : Sun Solaris Related Humor : Education Humor : IBM Humor : Assembler-related Humor : VIM Humor : Computer Viruses Humor : Bright tomorrow is rescheduled to a day after tomorrow : Classic Computer Humor

The Last but not Least Technology is dominated by two types of people: those who understand what they do not manage and those who manage what they do not understand ~Archibald Putt. Ph.D


Copyright © 1996-2021 by Softpanorama Society. www.softpanorama.org was initially created as a service to the (now defunct) UN Sustainable Development Networking Programme (SDNP) without any remuneration. This document is an industrial compilation designed and created exclusively for educational use and is distributed under the Softpanorama Content License. Original materials copyright belong to respective owners. Quotes are made for educational purposes only in compliance with the fair use doctrine.

FAIR USE NOTICE This site contains copyrighted material the use of which has not always been specifically authorized by the copyright owner. We are making such material available to advance understanding of computer science, IT technology, economic, scientific, and social issues. We believe this constitutes a 'fair use' of any such copyrighted material as provided by section 107 of the US Copyright Law according to which such material can be distributed without profit exclusively for research and educational purposes.

This is a Spartan WHYFF (We Help You For Free) site written by people for whom English is not a native language. Grammar and spelling errors should be expected. The site contain some broken links as it develops like a living tree...

You can use PayPal to to buy a cup of coffee for authors of this site

Disclaimer:

The statements, views and opinions presented on this web page are those of the author (or referenced source) and are not endorsed by, nor do they necessarily reflect, the opinions of the Softpanorama society. We do not warrant the correctness of the information provided or its fitness for any purpose. The site uses AdSense so you need to be aware of Google privacy policy. You you do not want to be tracked by Google please disable Javascript for this site. This site is perfectly usable without Javascript.

Last modified: February, 19, 2020