Bestandssysteem / partitie in Linux mounten en unmounten (voorbeelden van mount/unmount-commando’s)
Als u nieuwe harde schijven in uw systeem plaatst, gebruikt u programma’s als fdisk of parted om partities te maken. Zodra u een partitie hebt gemaakt, gebruikt u het commando mkfs om een ext2-, ext3- of ext4-partitie te maken.
Als u een partitie hebt gemaakt, moet u het commando mount gebruiken om de partitie te mounten naar een mount-punt (een directory), zodat u het bestandssysteem kunt gaan gebruiken.
Deze handleiding legt alles uit wat u moet weten over zowel mount als umount commando’s met 15 praktische voorbeelden.
De algemene mount commando syntax om een apparaat te mounten:
mount -t type device destination_dir
Mount een CD-ROM
Het apparaat bestand voor CD zou bestaan onder /dev directory. Bijvoorbeeld, een CD-ROM apparaat wordt aangekoppeld zoals hieronder getoond.
# mount -t iso9660 -o ro /dev/cdrom /mnt
In het bovenstaande voorbeeld, geeft de optie “-o ro” aan dat de cdrom aangekoppeld moet worden met alleen-lezen toegang. Zorg er ook voor dat de doelmap (in bovenstaand voorbeeld /mnt) bestaat voordat u het mount commando uitvoert.
Alle mounts bekijken
Nadat u een partitie of bestandssysteem mount, voert u het mount commando uit zonder argumenten om alle mounts te bekijken.
In onderstaand voorbeeld, na het mounten van de USB drive op een systeem, ziet de output van mount er uit als hieronder. Zoals hieronder te zien is, is het USB-apparaat (d.w.z.:/dev/sdb) aangekoppeld op /media/myusb, wat wordt weergegeven als de laatste regel in het mount-commando.
# mount/dev/sda5 on / type ext4 (rw,errors=remount-ro)proc on /proc type proc (rw,noexec,nosuid,nodev)sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)none on /sys/fs/fuse/connections type fusectl (rw)none on /sys/kernel/debug type debugfs (rw)none on /sys/kernel/security type securityfs (rw)udev on /dev type devtmpfs (rw,mode=0755)devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755)none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880)none on /run/shm type tmpfs (rw,nosuid,nodev)/dev/sda6 on /mydata type ext2 (rw)/dev/sda7 on /backup type vfat (rw)gvfs-fuse-daemon on /home/bala/.gvfs type fuse.gvfs-fuse-daemon (rw,nosuid,nodev,user=bala)/dev/sdb on /media/myusb type vfat (rw,nosuid,nodev,uid=1000,gid=1000,shortname=mixed,dmask=0077,utf8=1,showexec,flush,uhelper=udisks)
U kunt ook het commando df gebruiken om alle mount-punten te bekijken.
# dfFilesystem 1K-blocks Used Available Use% Mounted on/dev/sda5 195069136 128345036 56958520 70% /udev 2008336 4 2008332 1% /devtmpfs 806244 928 805316 1% /runnone 5120 0 5120 0% /run/locknone 2015604 228 2015376 1% /run/shm/dev/sda6 17729076 176200 16657596 2% /mydata/dev/sda7 11707200 573312 11133888 5% /backup/dev/sdb 3910656 2807160 1103496 72% /media/myusb
Mount alle bestandssystemen vermeld in /etc/fstab
De bestandssystemen vermeld in /etc/fstab worden gemount tijdens het bootproces. Na het booten, kan de systeembeheerder sommige partities om verschillende redenen ontkoppelen. Als u wilt dat alle bestandssystemen worden gemount zoals gespecificeerd in /etc/fstab, gebruik dan -a optie met mount zoals hieronder getoond:
Voorbeeld /etc/fstab bestand entries:
# cat /etc/fstab#proc /proc proc nodev,noexec,nosuid 0 0# / was on /dev/sda5 during installation/dev/sda5 / ext4 errors=remount-ro 0 1# /mydata was on /dev/sda6 during installation/dev/sda6 /mydata ext2 defaults 0 2# /backup was on /dev/sda7 during installation/dev/sda7 /backup vfat defaults 0 3
Uitvoeren mount commando met -a optie om alle /etc/fstab entries te mounten.
# mount -a# mount/dev/sda5 on / type ext4 (rw,errors=remount-ro)proc on /proc type proc (rw,noexec,nosuid,nodev)sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)none on /sys/fs/fuse/connections type fusectl (rw)none on /sys/kernel/debug type debugfs (rw)none on /sys/kernel/security type securityfs (rw)udev on /dev type devtmpfs (rw,mode=0755)devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755)none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880)none on /run/shm type tmpfs (rw,nosuid,nodev)/dev/sda6 on /mydata type ext2 (rw)/dev/sda7 on /backup type vfat (rw)gvfs-fuse-daemon on /home/bala/.gvfs type fuse.gvfs-fuse-daemon (rw,nosuid,nodev,user=bala)
Dezelfde -a optie kan worden gebruikt met umount om alle bestandssystemen vermeld in /etc/mtab te unmounten
# umount -aumount: /run/shm: device is busy. (In some cases useful info about processes that use the device is found by lsof(8) or fuser(1))umount: /run: device is busy. (In some cases useful info about processes that use the device is found by lsof(8) or fuser(1))umount: /dev: device is busy. (In some cases useful info about processes that use the device is found by lsof(8) or fuser(1))umount: /: device is busy. (In some cases useful info about processes that use the device is found by lsof(8) or fuser(1))
Sommige bestandssystemen worden niet unmounted omdat ze bezet zijn of momenteel in gebruik. Merk op dat de bestanden /etc/mtab en /proc/mounts inhoudelijk gelijk zijn.
Mount alleen een specifiek bestandssysteem uit /etc/fstab
Wanneer je alleen de directory naam doorgeeft om te mounten, zoekt het naar mount point entries, indien niet gevonden, zoekt dan continue naar een apparaat in /etc/fstab en wordt gemount.
# mount | grep /mydata# cat /etc/fstab | grep mydata##########/mydata was on /dev/sda6 during installation########## /dev/sda6 /mydata ext2 defaults 0 2
Zoals hierboven te zien is, is de map /mydata geen koppelpunt, maar hij staat wel in /etc/fstab.
# mount /mydata# mount | grep /mydata/dev/sda6 on /mydata type ext2 (rw)
Als u hetzelfde nogmaals uitvoert, krijgt u de volgende foutmelding:
# mount /mydatamount: /dev/sda6 already mounted or /mydata busymount: according to mtab, /dev/sda6 is already mounted on /mydata
Hier kunt u ook de apparaatnaam doorgeven in plaats van de mapnaam (die wordt opgehaald uit /etc/fstab-bestand).
# mount /dev/sda6
Merk op dat de inhoud van de bestanden /etc/mtab en /proc/mounts vergelijkbaar zou zijn.
Bekijk alle gemounte partities van een specifiek type
Het is mogelijk om alleen het specifieke type bestandssysteem dat is gemount op te sommen met de optie -l met -t zoals hieronder getoond:
# mount -l -t ext2/dev/sda6 on /mydata type ext2 (rw)# mount -l -t ext4/dev/sda5 on / type ext4 (rw,errors=remount-ro)
Zoals hierboven te zien is, is /dev/sda6 de enige ext2 partitie en /dev/sda5 is de enige ext4 partitie dienovereenkomstig.
Mount een Floppy Disk
Het apparaatbestand voor een floppy disk zou bestaan onder de /dev directory. Bijvoorbeeld, een floppy disk wordt gemount zoals hieronder getoond.
# mount /dev/fd0 /mnt# cd /mnt
Na de succesvolle mount, zou u in staat zijn om de inhoud van de floppy disk te benaderen. Als u klaar bent, gebruikt u umount voordat u de diskette fysiek van het systeem verwijdert.
# umount /mnt
Bind mount-punten aan een nieuwe directory
Het mount-punt kan aan een nieuwe directory worden gekoppeld. Zodat u de inhoud van een bestandssysteem via meer dan één mountpoints tegelijk kunt benaderen.
Gebruik de -B optie met olddir en newdir om als volgt te binden,
# mount -B /mydata /mnt
Nu is de binding klaar en u kunt het als volgt verifiëren,
# mount | grep /mydata/dev/sda6 on /mydata type ext2 (rw)/mydata on /mnt type none (rw,bind)
Zoals hierboven te zien is, is de binding goed uitgevoerd. Dus wanneer u wijzigingen in het bestandssysteem op een plaats aanbrengt, kunt u de weerspiegeling daarvan in een ander koppelpunt zien, zoals hieronder te zien is:
# cd /mydata# lstest# mkdir dir1# mkdir dir2# lstest dir1 dir2# cd /mnt# lstest dir1 dir2
Toegang tot de inhoud van een nieuw koppelpunt
Mount staat u toe om toegang te krijgen tot de inhoud van een koppelpunt vanaf een nieuw koppelpunt. Het is niets anders dan het verplaatsen van een aangekoppelde boom naar een andere plaats.
In onderstaand voorbeeld wordt het koppelpunt /mydata benaderd vanuit /mnt met de optie -M zoals hieronder getoond:
# mount -M /mydata /mnt/
Als het eenmaal klaar is, kunt u het oude koppelpunt niet meer gebruiken omdat het naar een nieuw koppelpunt is verplaatst en dit kan worden geverifieerd zoals hieronder getoond:
# mount | grep /mydata# mount | grep /mnt/dev/sda6 on /mnt type ext2 (rw)
Mount zonder entry in /etc/mtab te schrijven
Tijdens een alleen-lezen mount van /etc/, kunnen de items in het /etc/mtab bestand niet worden gewijzigd door het mount commando. U kunt echter mounten zonder naar /etc/mtab te schrijven door de optie -n als volgt te gebruiken,
# mount -n /dev/sda6 /mydata
U ziet geen enkele entry voor deze /mydata in de uitvoer van het mount commando en ook niet in het /etc/mtab bestand als volgt:
# mount | grep /mydata# cat /etc/mtab | grep /mydata
Toegang tot de inhoud van een gemounte directory /mydata:
# cd /mydata# lsdir1 dir2 test
Mount bestandssysteem met lees- of lees/schrijftoegang
Om een partitie als alleen-lezen te mounten, gebruikt u de optie -r, die synoniem is met -o ro.
# mount /dev/sda6 /mydata -r# mount | grep /mydata/dev/sda6 on /mydata type ext4 (ro)
ext3 en ext4 bestandssystemen staan u nog steeds toe om te schrijven wanneer het bestandssysteem vervuild is. U moet dus “ro,noload” gebruiken om dit soort schrijfoperaties te voorkomen.
# mount /dev/sda6 /mydata -t ext4 -o ro -o noload# mount | grep /mydata/dev/sda6 on /mydata type ext4 (ro,noload)
Om een partitie met lees/schrijftoegang te mounten, gebruikt u de optie -w die hetzelfde is als “-o rw” (d.w.z. : standaard).
Hermount het gemounte bestandssysteem
Om een reeds gemount bestandssysteem te mounten, gebruikt u de optie remount. Deze optie wordt normaal gesproken gebruikt om het bestandssysteem opnieuw te mounten met lees/schrijftoegang, wanneer het voorheen gemount was met leestoegang.
Het /mydata koppelpunt wordt opnieuw gemount met lees/schrijftoegang van leestoegang zoals hieronder getoond:
# mount | grep /mydata/dev/sda6 on /mydata type ext4 (ro,noload)# mount -o remount,rw /mydata# mount | grep /mydata/dev/sda6 on /mydata type ext4 (rw)
Mount een iso image in een directory
Het iso image kan gemount worden zoals hieronder getoond wordt:
# mount -t iso9660 -o loop pdf_collections.iso /mnt# cd /mnt# lsperl/ php/ mysql/
Mount meer dan een mount punt
Umount staat u toe om meer dan een mount punt te unmounten in een enkele uitvoering van umount of commando als volgt:
# umount /mydata /backup# mount | grep /mydata# mount | grep /backup
Lazy unmount van een bestandssysteem
Dit is een speciale optie in umount, voor het geval dat u een partitie wilt unmounten nadat schijfoperaties zijn gedaan. U kunt het commando umount -l geven voor die partitie en de unmount wordt uitgevoerd nadat de schijfoperatie is voltooid.
Bijv. een scenario dat een taak (i.e.: script of een ander commando) een kopieeroperatie uitvoert op een schijf en u tegelijkertijd een unmount met -l mag uitvoeren, zodat de unmount wordt uitgevoerd zodra de kopie is voltooid (i.e.: de schijfoperatie).
# umount /mydata -l
Een bestandssysteem geforceerd unmounten
umount biedt de mogelijkheid om een bestandssysteem geforceerd te unmounten met optie -f wanneer het apparaat bezet is, zoals hieronder getoond:
# umount -f /mnt
Als dit niet werkt voor u, dan kunt u kiezen voor luie unmount.
In de tussentijd kunt u ook de uitvoer van het ps commando bekijken om te zien welk proces het mountpoint momenteel gebruikt, zoals hieronder te zien is:
# ps ajx | grep /mydata 2540 3037 3037 2468 pts/2 3037 D+ 0 0:00 cp -r /home/geekstuff/ProjectData/ /mydata
U kunt ook het fuser commando uitvoeren om te achterhalen welk proces de directory voor operaties vasthoudt.
# fuser -cu /mydata/mydata: 3087(root)
Het geeft u het proces id met gebruikersnaam (niets anders dan de eigenaar van het proces). Als je weet wat dat proces is, kun je dat proces misschien stoppen en dan de umount opnieuw proberen.