typing in: man fstab
at the command prompt will give you lots of information explaining how that file works, in detail, but i'll have a shot at it,...
As you know, the concept of a C-drive, D-drive, or drive letters in general does not exist. In windows, hard drives, cd's and even floppy disks also have to be `mounted`, but all this goes on behind the scenes, and the user is unaware of it. Windows (and DOS) will automatically assign drive letters to any drive it finds, and automatically 'mount' the drive on these 'drives'.
In linux, a drive, partition, or filesystem( could be an .iso image too for example ) can be mounted in any directory, and drive letters don't exist.
When the kernel (the core of the operating system) starts up, it will first see if any parameters were given along with it's startup (there is a root parameter which you can pass to the kernel in a boot loader, to tell it which drive/partition/filesystem should be mounted as 'root' filesystem). When referring to the 'root' filesystem, I am referring to the filesystem on which the directory / and all it's subdirectories are located. After mounting this filesystem, it will continue booting up, running what is called 'init' scripts which start different programs required on startup. And it will also check the /etc/fstab file to see which other filesystems it must mount. So naturally this file is of great importance to linux.
Lets look at a typical fstab file:
/dev/VolGroup00/LogVol00 / ext3 defaults 1 1
LABEL=/boot /boot ext3 defaults 1 2
devpts /dev/pts devpts gid=5,mode=620 0 0
tmpfs /dev/shm tmpfs defaults 0 0
proc /proc proc defaults 0 0
sysfs /sys sysfs defaults 0 0
/dev/sdb1 /media/windows ntfs uid=500,gid=500,user 0 0
/dev/cdrom /media/cdrom iso9660 ro,user,noauto,unhide,uid=500,gid=500 0 0
/dev/VolGroup00/LogVol01 swap swap defaults 0 0
The first column on each line, tells linux where to FIND the filesystem. Typically this will be something like /dev/sdb1 or /dev/hda1 etc,... (SATA drives are labeled as sda,sdb,sdc,etc,... IDE harddrives are labeled as hda,hdb,sdc,etc,... followed by the partition number)
The second column on each line tells linux where to MOUNT the filesystem. This is where you will find the files on that particular partition.
The third column on each line tells linux what TYPE of filesystem it is. (eg: ext2, ext3, ntfs, fat32, etc,...)
the Fourth column is for any additional OPTIONS you with to pass when mounting the filesystem (such as whether or not it should be allowed for regular (non-root) users to mount the partition, and what the default file permissions would be.
The last two columns (0 0 or 0 1 or 1 1 etc) are parameters telling how frequently that particular filesystem should be checked for errors on startup.
The particular example above may look a bit strange, because it uses LVM (Logical Volume Management) (see http://en.wikipedia....al_volume_management
) This is why you see stuff like the volgroup lines in there.
The devpts, tmpfs, procfs, and sysfs mount points are special directory trees containing information on running processes, hardware, temporary files, etc,...
For example, when you type the following command:
Various information about your CPU will be shown. This just goes to show that ANYTHING can be treated as a filesystem and can be mounted.
I really hope this clears up at least a little bit,... Please be brave, strong, and don't be intimidated by any of this to stop learning! It really isn't half bad once you get the hang of it! I understand it's easy to be overwhelmed, because there are vast culture differences between Windows and Linux. There may or may not be some GUI applications out there that update the fstab file automatically, but I still think it's important to know what goes on behind the GUI, because at least then you know what to do if the GUI doesn't work