Gdy chcemy zamontować system plików musimy podać poleceniu mount jego typ, urządzenie, na którym on się znajduje i punkt montowania.
[root@222-mo3-2 fs]# mount -t vfat /dev/hda1 /mnt/win_c/ [root@222-mo3-2 fs]# mount | grep win_c /dev/hda1 on /mnt/win_c type vfat (rw)Kiedy system plików jest zamontowany informacja o nim jest dodawana do pliku /etc/mnttab (w Linuxie /etc/mtab).
[root@222-mo3-2 fs]# cat /etc/mtab /dev/hdb1 / reiserfs rw,notail 0 0 none /proc proc rw 0 0 none /proc/bus/usb usbdevfs rw 0 0 none /dev devfs rw 0 0 none /dev/pts devpts rw,mode=0620 0 0 /dev/hdb6 /home reiserfs rw,notail 0 0 /dev/hdb7 /usr reiserfs rw,notail 0 0 /dev/hda1 /mnt/win_c vfat rw 0 0Wszystkie wersje UNIXa mają funkcje umożliwiające manipulację na tablicy montowania. Najczęściej są to dwie funkcje, których nagłówki znajdują sie w <sys/mnttab.h>:
char *mnt_special; /* Urządzenie, na którym znajduje się system plików */ char *mnt_mountp; /* Punkt montowania */ char *mnt_fstypee; /* Typ systemu plików */ char *mnt_mntopts; /* Operacje montowania */ char *mnt_time; /* Czas montowania */W Linuxie format tablicy montowań jest trochę inny i funkcje operują na strukturze mntent, która różni się nieco od mnttab. Oto prosty przykład programu odczytującego dane z tablicy:
#include <stdio.h> #include <mntent.h> main() { struct mntent *mt; FILE *fp; fp = fopen("/etc/mtab", "r"); printf("%-20s%-20s%-30s\n", "punkt montowania", "typ systemu plikow", "urzadzenie"); while ((mt = getmntent(fp)) != NULL) { printf("%-20s%-20s%-30s\n", mt->mnt_dir, mt->mnt_type, mt->mnt_fsname); } }I wynik jego działania:
[root@222-mo3-2 fs]# ./mymount punkt montowania typ systemu plikow urzadzenie / reiserfs /dev/hdb1 /proc proc none /proc/bus/usb usbdevfs none /dev devfs none /dev/pts devpts none /home reiserfs /dev/hdb6 /usr reiserfs /dev/hdb7 /mnt/win_c vfat /dev/hda1
Odmontowuje system plików polecenie umount, której można podać zarówno urządzenie, na którym system plików się znajduje, jak i punkt jego montowania.