1. 程式人生 > 其它 >8 Linux 常用命令(七)掛載命令

8 Linux 常用命令(七)掛載命令

8 Linux 常用命令(七)掛載命令

8.1 mount命令基本格式

linux所有儲存裝置都必須掛載使用,包括硬碟

命令名稱:mount

命令所在路徑:/bin/mount

執行許可權:所有使用者

命令格式如下:

[root@localhost ~]# mount [-l]
#查詢系統中已經掛載的裝置,-l會顯示卷標名稱

[root@localhost ~]# mount –a
#依據配置檔案/etc/fstab的內容,自動掛載

[root@localhost ~]# mount [-t 檔案系統] [-L 卷標名] [-o 特殊選項] \
裝置檔名 掛載點
#\代表這一行沒有寫完,換行
選項:
-t 檔案系統: 加入檔案系統型別來指定掛載的型別,可以ext3、ext4、iso9660 等檔案系統。具體可以參考表9-1
-L 卷標名: 掛載指定卷標的分割槽,而不是安裝裝置檔名掛載
-o 特殊選項: 可以指定掛載的額外選項,比如讀寫許可權、同步非同步等,如果不指定則預設值生效。具體的特殊選項
引數說明
atime/noatime 更新訪問時間/不更新訪問時間。訪問分割槽檔案時,是否更新檔案的訪問時間,預設為更新
async/sync 非同步/同步,預設為非同步
auto/noauto 自動/手動,mount –a命令執行時,是否會自動安裝/etc/fstab檔案內容掛載,預設為自動
defaults 定義預設值,相當於rw,suid,dev,exec,auto,nouser,async這七個選項
exec/noexec 執行/不執行,設定是否允許在檔案系統中執行可執行檔案,預設是exec允許
remount 重新掛載已經掛載的檔案系統,一般用於指定修改特殊許可權
rw/ro 讀寫/只讀,檔案系統掛載時,是否具有讀寫許可權,預設是rw
suid/nosuid 具有/不具有SUID許可權,設定檔案系統是否具有SUID和SGID的許可權,預設是具有
user/nouser 允許/不允許普通使用者掛載,設定檔案系統是否允許普通使用者掛載, 預設是不允許,只有root可以掛載分割槽
usrquota 寫入代表檔案系統支援使用者磁碟配額,預設不支援
grpquota 寫入代表檔案系統支援組磁碟配額,預設不支援

示例:

例1:
[root@localhost ~]# mount
#檢視系統中已經掛載的檔案系統,注意有虛擬檔案系統
/dev/sda3 on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
/dev/sda1 on /boot type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
#命令結果是代表:/dev/sda3分割槽掛載到/目錄,檔案系統是ext4,許可權是讀寫

例2:修改特殊許可權
[root@localhost ~]# mount
#我們檢視到/boot分割槽已經被掛載,而且採用的defaults選項,那麼我們重新掛載分割槽,並採用noexec
#許可權禁止執行檔案執行,看看會出現什麼情況(注意不要用/分割槽做試驗,#不然系統命令也不能執行了)。
…省略部分輸出…
/dev/sda1 on /boot type ext4 (rw)
…省略部分輸出…
[root@localhost ~]# mount -o remount,noexec /boot
#重新掛載/boot分割槽,並使用noexec許可權
[root@localhost sh]# cd /boot/
[root@localhost boot]# vi hello.sh
#寫個shell吧
#!/bin/bash
echo "hello!!"
[root@localhost boot]# chmod 755 hello.sh
[root@localhost boot]# ./hello.sh
-bash: ./hello.sh: 許可權不夠
#雖然賦予了hello.sh執行許可權,但是任然無法執行
[root@localhost boot]# mount -o remount,exec /boot
#記得改回來啊,要不會影響系統啟動的

例3:掛載分割槽
[root@localhost ~]# mkdir /mnt/disk1
#建立掛載點目錄
[root@localhost ~]# mount /dev/sdb1 /mnt/disk1
#掛載分割槽

8.2 光碟掛載

光碟掛載的前提依然是指定光碟的裝置檔名,不同版本的Linux,裝置檔名並不相同:

  • CentOS 5.x以前的系統,光碟裝置檔名是/dev/hdc

  • CentOS 6.x以後的系統,光碟裝置檔名是/dev/sr0

不論哪個系統都有軟連線/dev/cdrom,與可以作為光碟的裝置檔名

[root@localhost ~]# mount -t iso9660 /dev/cdrom /mnt/cdrom/
#掛載光碟

用完之後記得解除安裝:

[root@localhost ~]# umount /dev/sr0
[root@localhost ~]# umount /mnt/cdrom
#因為裝置檔名和掛載點已經連線到一起,解除安裝哪一個都可以

注意:解除安裝的時候需要退出光碟目錄,才能正常解除安裝

8.3 掛載U盤

U盤會和硬碟共用裝置檔名,所以U盤的裝置檔名不是固定的,需要手工查詢,查詢命令:

[root@localhost ~]# fdisk -l
#查詢硬碟

然後就是掛載了,掛載命令如下:

[root@localhost ~]# mount -t vfat /dev/sdb1 /mnt/usb/
#掛載U盤。因為是Windows分割槽,所以是vfat檔案系統格式

如果U盤中有中文,會發現中文是亂碼。Linux要想正常顯示中文,需要兩個條件:

  • 安裝了中文編碼和中文字型

  • 操作終端需要支援中文顯示(純字元終端,是不支援中文編碼的)

而我們當前系統是安裝了中文編碼和字型,而xshell遠端終端是Windows下的程式,當然是支援中文顯示的。那之所以掛載U盤還出現亂碼,是需要在掛載的時候,手工指定中文編碼,例如:

[root@localhost ~]# mount -t vfat -o iocharset=utf8 /dev/sdb1 /mnt/usb/
#掛載U盤,指定中文編碼格式為UTF-8

如果需要解除安裝,可以執行以下命令:

[root@localhost ~]# umount /mnt/usb/

8.4 掛載NTFS分割槽

8.4.1 Linux的驅動載入順序:

  • 驅動直接放入系統核心之中。這種驅動主要是系統啟動載入必須的驅動,數量較少。

  • 驅動以模組的形式放入硬碟。大多數驅動都已這種方式儲存,儲存位置在/lib/modules/3.10.0-862.el7.x86_64/kernel/中。

  • 驅動可以被Linux識別,但是系統認為這種驅動一般不常用,預設不載入。如果需要載入這種驅動,需要重新編譯核心,而NTFS檔案系統的驅動就屬於這種情況。

  • 硬體不能被Linux核心識別,需要手工安裝驅動。當然前提是廠商提供了該硬體針對Linux的驅動,否則就需要自己開發驅動了。

8.4.2 使用NTFS-3G安裝NTFS檔案系統模組

1)下載NTFS-3G外掛

從網站http://www.tuxera.com/community/ntfs-3g-download/下載NTFS-3G外掛到Linux伺服器上

2)安裝NTFS-3G外掛

在編譯安裝NTFS-3G外掛之前,要保證gcc編譯器已經安裝。具體安裝命令如下:

[root@localhost ~]# tar -zxvf ntfs-3g_ntfsprogs-2013.1.13.tgz
#解壓
[root@localhost ~]# cd ntfs-3g_ntfsprogs-2013.1.13
#進入解壓目錄
[root@localhost ntfs-3g_ntfsprogs-2013.1.13]# ./configure
#編譯器準備。沒有指定安裝目錄,安裝到預設位置中
[root@localhost ntfs-3g_ntfsprogs-2013.1.13]# make
#編譯
[root@localhost ntfs-3g_ntfsprogs-2013.1.13]# make install
#編譯安裝

安裝就完成了,已經可以掛載和使用Windows的NTFS分割槽了。不過需要注意掛載分割槽時的檔案系統不是ntfs,而是ntfs-3g。掛載命令如下:

[root@localhost ~]# mount -t ntfs-3g 分割槽裝置檔名 掛載點

例如:
[root@localhost ~]# mount –t ntfs-3g /dev/sdb1 /mnt/win