Linux系統中「一切皆文件」,所有文件都放置在以根目錄為樹根的樹形目錄結構中。Linux中任何硬體設備也都是文件,它們各有自己的一套文件系統(文件目錄結構)。
當Linux系統中使用這些硬體設備時,只有將Linux本身的文件目錄與硬體設備的文件目錄合二為一,硬體設備才能為我們所用。合二為一的過程稱為「掛載」。
掛載,指的就是將設備文件中的頂級目錄連接到Linux根目錄下的某一目錄(最好是空目錄),訪問此目錄就等同於訪問設備文件。而解除此關聯關系的過程稱之為「卸載」
並不是根目錄下任何一個目錄都可以作為掛載點,由於掛載操作會使得原有目錄中文件被隱藏,因此根目錄以及系統原有目錄都不要作為掛載點,會造成系統異常甚至崩潰,掛載點最好是新建的空目錄。
㈡ Linux裡面文件掛載點是什麼
1.提一句Windows下,mount掛載,就是給磁碟分區提供一個盤符(C,D,E,...)。比如插入U盤後系統自動分配給了它I:盤符其實就是掛載,退優盤的時候進行安全彈出,其實就是卸載unmount。
2.Linux下,不像Windows可以有C,D,E,多個目錄,Linux只有一個根目錄/。在裝系統時,我們分配給linux的所有區都在/下的某個位置,比如/home等等。
3.提問者插入了新硬碟,分了新磁碟區sdb1。它現在還不屬於/。
4.我們雖然可以在一些圖形桌面系統里找到他的位置,瀏覽管理裡面的文件,但在命令行卻不知怎麼訪問它的目錄,比如無法使用cd或者ls。也無法在編程時指定一個目錄對它操作。
5.這時提問者使用了 mount /dev/sdb1 ~/Share/ ,把新硬碟的區sdb1掛載到工作目錄的~/Share/文件夾下,之後訪問這個~/Share/文件夾就相當於訪問這個硬碟2的sdb1分區了。對/Share/的任何操作,都相當於對sdb1里文件的操作。
6.所以Linux下,mount掛載的作用,就是將一個設備(通常是存儲設備)掛接到一個已存在的目錄上。訪問這個目錄就是訪問該存儲設備。
7.linux操作系統將所有的設備都看作文件,它將整個計算機的資源都整合成一個大的文件目錄。我們要訪問存儲設備中的文件,必須將文件所在的分區掛載到一個已存在的目錄上,然後通過訪問這個目錄來訪問存儲設備。掛載就是把設備放在一個目錄下,讓系統知道怎麼管理這個設備里的文件,了解這個存儲設備的可讀寫特性之類的過程。
8.我們不是有/dev/sdb1 嗎,直接對它操作不就行了?這不是它的目錄嗎?
9.這不是它的目錄。雖然/dev是個目錄,但/dev/sdb1不是目錄。可以發現ls/dev/sdb1無法執行。/dev/sdb1,是一個類似指針的東西,指向這個分區的原始數據塊。mount前,系統並不知道這個數據塊哪部分數據代表文件,如何對它們操作。
10.插入CD,系統其實自動執行了 mount /dev/cdrom /media/cdrom。所以可以直接在/media/cdrom中對CD中的內容進行管理。
㈢ Linux怎麼卸載掛載文件
linux使用umount命令來卸載掛載的文件。例如:
umount /mnt/net1
umount命令說明
umount命令用於卸載已經載入的文件系統。利用設備名或掛載點都能umount文件系統,不過最好還是通過掛載點卸載,以免使用綁定掛載(一個設備,多個掛載點)時產生混亂。
語法
umount(選項)(參數)
選項
-a:卸除/etc/mtab中記錄的所有文件系統;
-h:顯示幫助;
-n:卸除時不要將信息存入/etc/mtab文件中;
-r:若無法成功卸除,則嘗試以只讀的方式重新掛入文件系統;
-t<文件系統類型>:僅卸除選項中所指定的文件系統;
-v:執行時顯示詳細的信息;
-V:顯示版本信息。
參數
文件系統:指定要卸載的文件系統或者其對應的設備文件名。
實例
下面兩條命令分別通過設備名和掛載點卸載文件系統,同時輸出詳細信息:
通過設備名卸載
umount -v /dev/sda1
/dev/sda1 umounted
通過掛載點卸載
umount -v /mnt/mymount/
/tmp/diskboot.img umounted
如果設備正忙,卸載即告失敗。卸載失敗的常見原因是,某個打開的shell當前目錄為掛載點里的某個目錄:
umount -v /mnt/mymount/
umount: /mnt/mymount: device is busy
umount: /mnt/mymount: device is busy
有時,導致設備忙的原因並不好找。碰到這種情況時,可以用lsof列出已打開文件,然後搜索列表查找待卸載的掛載點:
lsof | grep mymount 查找mymount分區里打開的文件
bash 9341 francois cwd DIR 8,1 1024 2 /mnt/mymount
從上面的輸出可知,mymount分區無法卸載的原因在於,francois運行的PID為9341的bash進程。
對付系統文件正忙的另一種方法是執行延遲卸載:
umount -vl /mnt/mymount/ 執行延遲卸載
延遲卸載(lazy unmount)會立即卸載目錄樹里的文件系統,等到設備不再繁忙時才清理所有相關資源。卸載可移動存儲介質還可以用eject命令。下面這條命令會卸載cd並彈出CD:
eject /dev/cdrom 卸載並彈出CD
㈣ Linux下如何自己手動使用命令掛載/卸載USB設備
Linux系統下通常都會自動掛載USB設備,如果沒有自動掛載的話就需要自己手動掛載USB設備了,那麼Linux下要如何掛載USB設備呢?不需要的時候又要如何卸載呢?一起來了解下吧。
在掛載之前需要確定下列三種信息
1、要掛載對象的文件系統類型
2、要掛載對象的設備名稱
3、確定掛載點
掛載時使用mount命令:
格式:mount [-參數] [設備名稱] [掛載點]
我們常見的USB設備格式是:FAT32格式、NFTS格式等。
ext2 linux目前常用的文件系統
msdos MS-DOS的fat,就是fat16
vfat windows98常用的fat32
nfs 網路文件系統
iso9660 CD-ROM光碟標准文件系統
ntfs windows NT 2000的文件系統
hpfs OS/2文件系統
掛u盤之前,運行命令cat /proc/partitions,看看現在系統中有哪些分區。
插上u盤以後,再次運行上述命令,看看多出來什麼分區。
1) 插入U盤
2) 輸入 fdisk -l /dev/sda 查看輸出結果,比如我的是這樣的:
代碼如下:
# fdisk -l /dev/sda《/p》 Disk /dev/sda: 131 MB, 131104768 bytes
3 heads, 32 sectors/track, 2667 cylinders
Units = cylinders of 96 * 512 = 49152 bytes
Device Boot Start End Blocks Id System
/dev/sdb1 * 1 2668 128016 6 FAT16
3) 看了上面的輸出就知道U盤所在的設備了,比如我的就是/dev/sdb1,接著便是掛載了
假設我將U盤掛載到/mnt/usb目錄(沒有的話,新建)中,就是mount -t msdos /dev/sdb1 /mnt/usb
如果是fat32
代碼如下:
mount -t vfat /dev/sdb1 /mnt/usb
如果是ext2格式,就用命令:
代碼如下:
mount -t ext2 /dev/sda1 /mnt/usb
4) 打開/mnt/usb 就可以看到你的U盤里的東西了!
代碼如下:
cd /mnt/usb
5) 卸載命令則為:
代碼如下:
umount /mnt/usb。
上面就是Linux下掛載及卸載USB設備的方法介紹了,掛載USB介面設備後就能夠查看移動盤的內容了,而不需要使用的時候也可將其卸載,你學會了嗎?
㈤ Linux格式化出錯,提示掛載失敗,但是要卸載它卻有提示沒有掛載
很可能是/etc/fstab配置了自動載入,而mount是直接讀取/etc/mtab配置信息的,解決辦法以root用戶刪除/etc/fstab相關的自動載入信息即可
㈥ 5. 如何理解 linux 系統里文件系統的掛載和卸載
通過Linux專有的虛擬文件/proc/mounts可查看當前已經掛載文件系統的列表。
/proc/mounts是內核數據結構的介面,因此總是包含已掛載文件系統的精確信息。
mount和umount命令會自動維護/etc/mtab文件,該文件所包含的信息與/proc/mounts
的內容相似,特別是包含了傳遞給mount文件系統專有選項,並未在/proc/mounts中.但
是因為系統調用mount和umount並不更新/etc/mtab,如果某些掛載或卸載了設備的應用
程序沒有更新該文件,那麼/etc/mtab可能會變得不準確。
/etc/fstab(由系統管理員手工維護)包含了對系統支持的所有文件系統的描述,該文件
可供mount,umount,fsck使用。
/proc/mounts,/etc/mtab,/etc/fstab的格式相同。如下:
tmpfs /run tmpfs rw,nosuid,noexec,relatime,size=206380k,mode=755 0 0
這條記錄包含了6個欄位。
1 已經掛載的設備名
2 設備的掛載點
3 文件系統類型
4 掛載標志
5 一個數字--mp會用它來控制對文件系統的備份操作,只有/etc/fstab文件才會用到該欄位和6欄位。
在/proc/mounts和/etc/mtab中,該欄位總為0
6 一個數字 --在系統引導時,用於控制fsck對文件系統的檢查順序。
mount()系統調用將由source指定的設備所包含的文件系統,掛在到由target指定的目錄下。
#include <sys/mount.h>
int mount(const char * source,const char * target,const char * fstype,
unsigned long mountflags,const void * data);
returns 0 on success or -1 on error.
umount()系統調用用於卸載已經掛載的文件系統。
#include <sys/mount.h>
int umount(const char* target);
returns 0 on success or -1 on error.