Mounting Devices

As was previously discussed in the section called File System Layout in Chapter 4, all the drives and devices in your computer are one big filesystem. Various hard drive partitions, CD-ROMs, and floppies are all placed in the same tree. In order to attach these drives to the filesystem so that you can access them, you have to use the mount(1) and umount(1) commands.

Some devices are automatically mounted when you boot up your computer. These are listed in the /etc/fstab file. Anything that you want to be mounted automatically gets an entry in that file. For other devices, you'll have to issue a command every time you want to use the device.

fstab

Let's look at an example of the /etc/fstab file:

   /dev/sda1       /               ext2        defaults        1   1
   /dev/sda2       /usr/local      ext2        defaults        1   1
   /dev/sda4       /home           ext2        defaults        1   1
   /dev/sdb1       swap            swap        defaults        0   0
   /dev/sdb3       /export         ext2        defaults        1   1
   none            /dev/pts        devpts      gid=5,mode=620  0   0
   none            /proc           proc        defaults        0   0
   /dev/fd0        /mnt            ext2        defaults        0   0
   /dev/cdrom      /cdrom          iso9660     ro              0   0
   

The first column is the device name. In this case, the devices are five partitions spread out across two SCSI hard drives, two special filesystems that don't need a device, a floppy, and a CD-ROM drive. The second column is where the device will be mounted. This needs to be a directory name, except in the case of a swap partition. The third column is the filesystem type of the device. For normal Linux filesystems, this will be ext2 (second extended filesystem). CD-ROM drives are iso9660, and Windows-based devices will either be msdos or vfat.

The fourth column is a listing of options that apply to the mounted filesystem. “defaults” is fine for just about everything. However, read-only devices should be given the ro flag. There are a lot of options that can be used. Check the fstab(5) man page for more information. The last two columns are used by fsck and other commands that need to manipulate the devices. Check the man page for that information, as well.

When you install Slackware Linux, the setup program will build much of the fstab file. Then only time you will need to edit it is if you add disks or want devices to be automatically mounted at boot time.

mount and umount

Attaching another device to your filesystem is easy. All you have to do is use the mount command, along with a few options. Using mount can also be made much more simple if the device has an entry in the /etc/fstab file. For example, let's say that I wanted to mount my CD-ROM drive and that my fstab file looked like the example from the previous section. I would call mount like so:

   # mount /cdrom
   

Since there is an entry in fstab for that mount point, mount knows what options to use. If there wasn't an entry for that device, I would have to use several options for mount:

   # mount -t iso9660 -o ro /dev/cdrom /cdrom
   

That command line includes the same information as the example fstab did, but we'll go over all the parts anyways. The -t iso9660 is the filesystem type of the device to mount. In this case, it would be the iso9660 filesystem which is what CD-ROM drives most commonly use. The -o ro tells mount to mount the device read-only. The /dev/cdrom is the name of the device to mount, and /cdrom is the location on the filesystem to mount the drive.

Before you can remove a floppy, CD-ROM, or other removable device that is currently mounted, you'll have to unmount it. That is done using the umount command. Don't ask where the “n” went because we couldn't tell you. You can use either the mounted device or the mount point as the argument to umount. For example, if you wanted to unmount the CD-ROM from the previous example, either of these commands would work:

   # umount /dev/cdrom
   # umount /cdrom