目錄:
- 一、掛載
- 二、掛載loop設備
- 三、掛載網絡資源
- 四、掛載目錄到另一個目錄上
- 五、掛載配置文件
一、掛載
1、什么是掛載
linux操作系統將所有的設備都看作文件,它將整個計算機的資源都整合成一個大的文件目錄。我們要訪問存儲設備中的文件,必須將文件所在的分區掛載到一個已存在的目錄上,然后通過訪問這個目錄來訪問存儲設備。
掛載好的文件、目錄、設備以及特殊文件即可提供用戶使用。除了操作系統調用的mount指令外,mount_root()會優先掛載(或稱根目錄) 。在這個情況下,操作系統會在調用setup前,先調用mount。
2、如何掛載
命令:mount [-fnrsvw] [-t vfstype] [-o options] device dir
-
device
掛載的設備: - 設備文件:如
/dev/sda1
- 卷標:如
-L 'MYDATA'
- UUID:如
-U '0c50523c-43f1-45e7-85c0-a126711d406e'
- 偽文件系統名稱:
proc, sysfs, devtmpfs, configfs
-
dir
掛載點 - 建議使用空目錄,否則非目錄下原來的數據會無法訪問。
-
-t vsftype
:指定掛載的設備上的文件系統 -
-r
: readonly -
-w
: read and write 默認選擇 -
-n
: 不更新/etc/mtab, mount不可見 -
-a
:自動掛載所有支持自動掛載的設備(定義在了/etc/fstab文件中,且掛載選項中有auto功能) -
-L 'LABEL'
: 以卷標指定掛載設備 -
-U 'UUID'
: 以UUID指定要掛載的設備 -
-B, --bind
: 綁定目錄到另一個目錄上 -
-o
options: (掛載文件系統的選項),多個選項使用逗號分隔 -
async
:異步模式 -
sync
:同步模式,內存更改時,同時寫磁盤 -
atime/noatime
:包含目錄和文件 -
diratime/nodiratime
:目錄的訪問時間戳 -
auto/noauto
:是否支持自動掛載,是否支持-a選項 -
exec/noexec
:是否支持將文件系統上運行應用程序 -
dev/nodev
:是否支持在此文件系統上使用設備文件 -
suid/nosuid
:是否支持suid和sgid權限 -
remount
:重新掛載 -
ro
:只讀 -
rw
: 讀寫 -
user/nouser
:是否允許普通用戶掛載此設備,默認管理員才能掛載 -
acl
:啟用此文件系統上的acl功能 -
loop
: 使用loop設備 -
defaults
:相當于rw, nosuid, dev, exec, auto, nouser, async
二、掛載文件設備(loop設備)
1、創建一個文件,大小隨意,這里我創建1G
[root@CentOS6 ~]#dd if=/dev/zero of=/app/partfile bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 75.1955 s, 14.3 MB/s
2、對新創建的文件/app/partfile 創建文件系統
[root@CentOS6 ~]#mkfs.ext4 /app/partfile
mke2fs 1.41.12 (17-May-2010)
/app/partfile is not a block special device.
Proceed anyway? (y,n) y
3、查看/app/partfile 的信息
[root@CentOS6 ~]#blkid /app/partfile
/app/partfile: UUID="67047989-db3c-46cb-b5c8-b21129b76042" TYPE="ext4"
4、把/app/partfile 掛載到一個目錄下
[root@CentOS6 ~]#mount /app/partfile /mnt/part -o loop
[root@CentOS6 ~]#df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda2 100660656 9092656 86448000 10% /
tmpfs 502056 76 501980 1% /dev/shm
/dev/sda3 50264772 1120976 46583796 3% /app
/dev/sda1 991512 34916 905396 4% /boot
[root@CentOS6 ~]#df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda2 100660656 9092656 86448000 10% /
tmpfs 502056 76 501980 1% /dev/shm
/dev/sda3 50264772 1120976 46583796 3% /app
/dev/sda1 991512 34916 905396 4% /boot
/app/partfile 999320 1284 945608 1% /mnt/part
這樣/app/partfile就可以當做一個塊設備使用了。也可以當做U盤,拷貝到其他機器使用。
/etc/fstab配置格式:
/app/partfile /mnt/part ext4 loop 0 0
三、掛載網絡資源
這里我們用windows共享作為網絡資源,然后掛載在Linux上。
1、配置window共享
2、添加windows用戶,賬號密碼都是test
3、把window共享資源掛載到Linux的/mnt/win目錄上,并創建一個文件。
[root@CentOS6 ~]#mkdir /mnt/win
[root@CentOS6 ~]#mount -o username=test //172.17.250.142/winshare /mnt/win
Password:
[root@CentOS6 ~]#cd /mnt/win
[root@CentOS6 win]#ls
[root@CentOS6 win]#touch hello
[root@CentOS6 win]#ls
hello
4、上一步我們在共享文件夾創建了一個文件,我們到windows上看看~
/etc/fstab配置格式:
//172.17.250.142/winshare /mnt/win cifs defaults,username=test,password=test 0 0
四、掛載目錄到另一個目錄上
我們把/app這個目錄,掛載到/mnt/app上,就可以通過/mnt/app去訪問/app的資源。
[root@CentOS6 win]#mkdir /mnt/app
[root@CentOS6 win]#mount -B /app /mnt/app
[root@CentOS6 win]#ls /mnt/app
a apache24 partfile
[root@CentOS6 win]#ls /app
a apache24 partfile
可以看到/mnt/app里的內容和/app一樣
/etc/fstab配置格式:
/app /mnt/app none bind 0 0
五、掛載配置文件
- mount命令只能臨時掛載,重啟系統后掛載信息會丟失。如果要保留掛載信息,需要配置/etc/fstab文件。
[root@CentOS6 ~]#vim /etc/fstab
UUID=6baffe84-ec5a-4ea1-968a-7066a069e118 / ext4 defaults 1 1
UUID=ad4301e6-44a9-4494-81fc-47d69461ccf8 /app ext4 defaults 1 2
UUID=21e638ff-1075-43f1-85f9-295a6e5478a5 /boot ext4 defaults 1 2
UUID=895a55d3-407d-4c1a-9034-9ed6550b8338 swap swap defaults 0 0
UUID=6b129c71-e51e-493a-92bd-34a6c27486c3 swap swap defaults 0 0
#目錄掛載在目錄上
/app /mnt/app none bind 0 0
#windows共享掛載
//172.17.250.142/winshare /mnt/win cifs defaults,username=test,password=test 0 0
#文件掛載在目錄上
/app/partfile /mnt/part ext4 loop 0 0
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
- 每一行代表一個掛載點,每行從左到右共6列,每一列代表一個特性,格式如下:
|1|2 | 3 | 4 | 5| 6|
|:---:|:--------:| :--------: | :----: | :----: | :---: | :-----:|
|設備|掛載點 | 文件格式 | 掛載選項 | 轉儲頻率| 自檢次數|
- 設備:建議使用UUID,設備UUID不會變動
- LABEL: LABEL=""
- UUID: UUID=""
- 偽文件系統名稱: proc, sysfs
- 掛載選項:
- default:相當于rw, nosuid, dev, exec, auto, nouser, async
- 轉儲頻率:
- 0:不做備份
- 1:每天轉儲
- 2:每隔一天轉儲
- 自檢次序:
- 0:不自檢
- 1:首先自檢;一般只有rootfs才用