Linux運維實戰之6:掛載/卸載磁盤分區

上次博文我們具體討論了Linux系統中磁盤的分區及格式化( http://www.www58058.com/60811),本次博文我們具體來說說分區的掛載哈!


問題引入

已經格式化好的分區如何與系統現有的文件系統建立關聯(如何使用新分區)?

新的磁盤分區創建完成并格式化之后需要掛載(或裝入)到目錄樹上才能被使用。

何謂掛載/卸載?

】將某個分區與某個目錄進行關聯的過程叫掛載(反之,拆除分區與目錄的關聯關系的過程叫卸載);被掛載的目錄成為掛載點。

windows系統中的掛載/卸載

在windows操作系統中, 掛載通常是指給磁盤分區(包括被虛擬出來的磁盤分區)分配一個盤符。 第三方軟件,如磁盤分區管理軟件、虛擬磁盤軟件等,通常也附帶掛載功能。當所有的盤符都分配完時,采用文件系統(分區)裝入即掛載來訪問新的分區。

范例

1、打開“磁盤管理”工具可以看到當前系統的磁盤使用情況:

Linux運維實戰之6:掛載/卸載磁盤分區Linux運維實戰之6:掛載/卸載磁盤分區

Linux運維實戰之6:掛載/卸載磁盤分區

Linux運維實戰之6:掛載/卸載磁盤分區

Linux運維實戰之6:掛載/卸載磁盤分區

【注意】

掛載點必須為一空目錄,否則無法掛載(這點與Linux不同,Linux系統中掛載點目錄可以不為空,但掛載后,掛載點目錄原有的內容會被隱藏)


Linux系統中的掛載/卸載

掛載/卸載條件及注意點:

1、掛載點必須是一個目錄。

2、一個分區掛載在一個已存在的目錄上,這個目錄可以不為空,但掛載后,掛載點中原有數據會被隱藏,因此不能掛載到系統常用目錄上

3、卸載時,要確保沒有進程正在訪問掛載的設備,否則無法卸載; 

掛載命令–mount

語法

mount:不帶任何參數顯示當前系統所有的掛載情況
mount [-t fstype] LABEL="卷標" MOUNT_POINT
mount [-t fstype] DEVICE MOUNT_POINT
mount [-t fstype] UUID="UUID" MOUNT_POINT
說明:  
   DEVICE:
   設備文件:/dev/sda1, /dev/hdb2
   卷標:LABEL=“label”
   UUID: UUID="uuid"
   MOUNT_POINT:掛載點(通常是一個目錄,用于作為文件系統或欲掛載分區的的訪問入口)
【選項與參數】

-a:依照配置文件/etc/fstab 的數據將所有未掛載的磁盤都掛載上來
-l:單純的輸入 mount 會顯示目前掛載的信息。加上-l 可增列 Label 名稱!
-t:與 mkfs 的選項非常類似的,可以加上文件系統類型來指定欲掛載的類型(若不指定,系統會調用blkid命令自動識別文件系統類型)。
    常見的 Linux 支持類型有:ext2, ext3, vfat, reiserfs, iso9660(光盤格式),nfs, cifs,smbfs(此三種為網絡文件系統類型)
-n:在默認的情況下,系統會將實際掛載的情況實時寫入 /etc/mtab 中,以利其他程序的運行。但在某些情況下(例如單人維護模式)為了避免問題,會刻意不寫入。此時就得要使用這個 -n 的選項了。
-L:系統除了利用裝置文件名(例如 /dev/hdc6) 之外,還可以利用文件系統的卷標名稱(Label)來進行掛載。最好為你的文件系統取一個獨一無二的名稱吧!
-o:后面可以接一些掛載時額外加上的參數!比方說賬號、密碼、讀寫權限等:
    ro, rw:      掛載文件系統成為只讀或讀寫(默認掛載就是讀寫掛載)
async, sync:  此文件系統是否使用同步寫入(sync) 或異步 (async) 的內存機制。默認為 async。

Tips:異步和同步的知識:

異步(async):cpu處理完數據存入內存后不會立刻寫入外存,過一段時間后將多個文件一起寫入外存(異步性能優于同步;異步的缺陷:斷電后有可能導致數據丟失)

同步:cpu處理完的數據存入內存后立即寫入外存(斷電后數據不會丟失)

    noatime:關閉更新訪問時間(有效減少IO量,系統優化的重要指標之一)

    auto, noauto: 允許此 partition 被以 mount -a 自動掛載(auto)

    dev, nodev: 是否允許此partition 上,可創建設備文件。 dev 為允許

    suid, nosuid: 是否允許此 partition 含有 suid/sgid 的文件格式

    exec, noexec: 是否允許此 partition 上運行二進制文件(安全手段);默認掛載是允許運行的

    user, nouser: 是否允許此 partition 讓任何使用者運行mount;一般來說 mount 僅有 root 可以進行,但下達 user 參數,則可讓一般 user 也能夠對此 partition 進行 mount 。

    defaults:默認值為:rw,suid, dev, exec, auto, nouser, and async    

    remount: 重新掛載,這在系統出錯,或重新升級參數時,很有用    

    mount -o remount,other_options DEVICE

    loop:本地回環設備:mount -o loop,others DEVICE MOUNT_POINT

    iocharset=value:指定訪問文件系統所使用的字符集   

與掛載相關的進程命令

fuser [MOUNT_POINT]: 查看正在訪問某掛載點的進程;

fuser -km [MOUNT_POINT]: 強行殺死正在訪問此掛載點的進程;

【范例】

[root@Centos ~]# cd /media/cdrom/    #切換到光盤的掛載點
[root@Centos cdrom]# ll
total 676-r--r--r--. 2 root root     14 Mar  6  2013 CentOS_BuildTag
dr-xr-xr-x. 3 root root   2048 Mar  5  2013 EFI
-r--r--r--. 2 root root    212 Mar  3  2013 EULA
-r--r--r--. 2 root root  18009 Mar  3  2013 GPL
dr-xr-xr-x. 3 root root   2048 Mar  5  2013 images
dr-xr-xr-x. 2 root root   2048 Mar  5  2013 isolinux
dr-xr-xr-x. 2 root root 649216 Mar  6  2013 Packages
-r--r--r--. 2 root root   1354 Mar  3  2013 RELEASE-NOTES-en-US.html
dr-xr-xr-x. 2 root root   4096 Mar  6  2013 repodata
-r--r--r--. 2 root root   1706 Mar  3  2013 RPM-GPG-KEY-CentOS-6
-r--r--r--. 2 root root   1730 Mar  3  2013 RPM-GPG-KEY-CentOS-Debug-6
-r--r--r--. 2 root root   1730 Mar  3  2013 RPM-GPG-KEY-CentOS-Security-6
-r--r--r--. 2 root root   1734 Mar  3  2013 RPM-GPG-KEY-CentOS-Testing-6
-r--r--r--. 1 root root   3380 Mar  6  2013 TRANS.TBL
[root@Centos cdrom]# fuser -v /media/cdrom/          #詳細顯示該掛載點正在被哪個進程訪問
              USER        PID   ACCESS      COMMAND
/media/cdrom/:   root     14669   ..c..    bash      #顯示該掛載點正在被bash進程訪問哈(此時是無法卸載該掛載點的,可以用fuser -km命令殺死該進程方可卸載)

掛載信息會寫入/etc/mtab 文件中】

[root@Centos ~]# cat /etc/mtab    #查看掛載信息(不帶任何參數的mount命令就是打印該配置文件來顯示掛載情況的)
/dev/sda3 / ext4 rw 0 0
proc /proc proc rw 0 0
sysfs /sys sysfs rw 0 0
devpts /dev/pts devpts rw,gid=5,mode=620 0 0
tmpfs /dev/shm tmpfs rw,rootcontext="system_u:object_r:tmpfs_t:s0" 0 0
/dev/sda1 /boot ext4 rw 0 0
/dev/sr0 /media/cdrom iso9660 ro 0 0
none /proc/sys/fs/binfmt_misc binfmt_misc rw 0 0
none /proc/fs/vmblock/mountPoint vmblock rw 0 0
sunrpc /var/lib/nfs/rpc_pipefs rpc_pipefs rw 0 0

[root@Centos ~]# mount           #與執行“cat /etc/mtab”的結果很類似
/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,rootcontext="system_u:object_r:tmpfs_t:s0")
/dev/sda1 on /boot type ext4 (rw)
/dev/sr0 on /media/cdrom type iso9660 (ro)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
none on /proc/fs/vmblock/mountPoint type vmblock (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)

卸載命令–umount

umount DEVICE

umount MOUNT_POINT

【范例】

[root@Centos ~]# 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,rootcontext="system_u:object_r:tmpfs_t:s0")
/dev/sda1 on /boot type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
none on /proc/fs/vmblock/mountPoint type vmblock (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
/dev/sr0 on /media/cdrom type iso9660 (ro)    #光盤的掛載情況
[root@Centos ~]# umount /media/cdrom/    #卸載光盤
[root@Centos ~]# 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,rootcontext="system_u:object_r:tmpfs_t:s0")
/dev/sda1 on /boot type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
none on /proc/fs/vmblock/mountPoint type vmblock (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
[root@Centos ~]# mount -t iso9660 -o ro /dev/cdrom /media/cdrom/   #重新掛載光盤
[root@Centos ~]# cd /media/cdrom/      #切換到光盤的掛載目錄
[root@Centos cdrom]# umount /dev/cdrom   #再次卸載光盤
umount: /media/cdrom: device is busy.         #顯示設備忙(有進程正在訪問該掛載點,提示用lsof或fuser命令查看詳細信息)
        (In some cases useful info about processes that use
         the device is found by lsof(8) or fuser(1))

掛載/卸載條件及注意點:

1、掛載點必須是一個目錄。

2、一個分區掛載在一個已存在的目錄上,這個目錄可以不為空,但掛載后,掛載點中原有數據會被隱藏,因此不能掛載到系統常用目錄上

3、卸載時,要確保沒有進程正在訪問掛載的設備,否則無法卸載;

Linux系統中的掛載分為:手動掛載、自動掛載、開機掛載。下面分別介紹:

【手動掛載】

1、掛載EXT2/EXT3/EXT4文件系統

[root@Centos jjx]# fdisk -l /dev/sdb    #查看/sdb硬盤的分區情況
Disk /dev/sdb: 10.7 GB, 10737418240 bytes255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0aeb57a8

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         262     2104483+  83  Linux
/dev/sdb2             263         276      112455   83  Linux
[root@Centos jjx]# mount     #不帶任何參數的mount命令用于查看當前系統的所有掛載情況(沒有發現/sdb硬盤的任何掛載)
/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,rootcontext="system_u:object_r:tmpfs_t:s0")
/dev/sda1 on /boot type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
none on /proc/fs/vmblock/mountPoint type vmblock (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
[root@Centos jjx]# mkdir -pv /mydata   #創建一個空目錄用作掛載點
mkdir: created directory `/mydata'
[root@Centos jjx]# mount /dev/sdb1 /mydata/     #掛載/sdb1分區到/mydata目錄(未指定掛載的文件系統類型,系統會自動調用blkid命令以識別文件系統類型)
[root@Centos jjx]# 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,rootcontext="system_u:object_r:tmpfs_t:s0")
/dev/sda1 on /boot type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
none on /proc/fs/vmblock/mountPoint type vmblock (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
/dev/sdb1 on /mydata type ext4 (rw)          #sdb1分區的掛載情況:文件系統類型為ext4、讀寫方式掛載
[root@Centos jjx]# df   #df命令顯示當前系統所有磁盤的信息,也可以查看掛載情況
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda3            102492488   1197448  96088668   2% /
tmpfs                   249192         0    249192   0% /dev/shm
/dev/sda1               198337     28604    159493  16% /boot
/dev/sdb1              2068499     32782   1930493   2% /mydata     #這里可以看到/sdb1的掛載情況

2、掛載光盤:  

/dev/cdrom -> sr0:cdrom通常是一個鏈接,新一點的硬件設備(包括VMware 9.0以上版本)通常是指向sr0

/dev/cdrom -> hdc:舊一點的設備(包括Vmware 9.0以前的虛擬機軟件版本)通常cdrom是指向hdc

[root@Centos ~]# mount -t iso9660 /dev/cdrom /media/cdrom/   #掛載光盤到/media/cdrom下
mount: block device /dev/sr0 is write-protected, mounting read-only    #給出警告信息:光盤是只讀掛載而系統默認是讀寫掛載,不能以讀寫掛載就給出警告
[root@Centos ~]# df -m  #df命令用于查看當前系統所有外存的使用情況
Filesystem           1M-blocks      Used Available Use% Mounted on
/dev/sda3               100091      1199     93808   2% /
tmpfs                      244         0       244   0% /dev/shm
/dev/sda1                  194        28       156  16% /boot
/dev/sr0                  4152      4152         0 100% /media/cdrom
[root@Centos ~]# mount    #不帶任何參數的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,rootcontext="system_u:object_r:tmpfs_t:s0")
/dev/sda1 on /boot type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
none on /proc/fs/vmblock/mountPoint type vmblock (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
/dev/sr0 on /media/cdrom type iso9660 (ro)     #光盤掛載情況(此系統上光盤實際是指向sr0)
[root@Centos ~]# ls -l /media/cdrom/     #驗證掛載光盤后掛載點的內容
total 676-r--r--r--. 2 root root     14 Mar  6  2013 CentOS_BuildTag
dr-xr-xr-x. 3 root root   2048 Mar  5  2013 EFI
-r--r--r--. 2 root root    212 Mar  3  2013 EULA
-r--r--r--. 2 root root  18009 Mar  3  2013 GPL
dr-xr-xr-x. 3 root root   2048 Mar  5  2013 images
dr-xr-xr-x. 2 root root   2048 Mar  5  2013 isolinux
dr-xr-xr-x. 2 root root 649216 Mar  6  2013 Packages
-r--r--r--. 2 root root   1354 Mar  3  2013 RELEASE-NOTES-en-US.html
dr-xr-xr-x. 2 root root   4096 Mar  6  2013 repodata
-r--r--r--. 2 root root   1706 Mar  3  2013 RPM-GPG-KEY-CentOS-6
-r--r--r--. 2 root root   1730 Mar  3  2013 RPM-GPG-KEY-CentOS-Debug-6
-r--r--r--. 2 root root   1730 Mar  3  2013 RPM-GPG-KEY-CentOS-Security-6
-r--r--r--. 2 root root   1734 Mar  3  2013 RPM-GPG-KEY-CentOS-Testing-6
-r--r--r--. 1 root root   3380 Mar  6  2013 TRANS.TBL

3、掛載優盤:

U盤是哪個設備需要具體看情況而定;

現在的usb設備很多,如mp3,u盤,讀卡器等,但在linux上不一定被認出來,現把自己掛載Kingston 4GB U盤過程分享出來!

插入U盤之后,按照下面的步驟:

(1)fdisk -l /dev/sd*      
fdisk -l 列出指定設備的分區表信息。由于usb盤是被模擬為scsi設備訪問,所以會被自動命名為sd*。通常這一步就能找到U盤,如果U盤有指示燈也會亮,表示被找到。

[root@Centos cdrom]# fdisk -l /dev/sd*     #沒有發現優盤哈
disk /dev/sda: 107.4 GB, 107374182400 bytes255 heads, 63 sectors/track, 13054 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00097863

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          26      204800   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              26          91      524288   82  Linux swap / Solaris
Partition 2 does not end on cylinder boundary.
/dev/sda3              91       13055   104127488   83  Linux

Disk /dev/sda1: 209 MB, 209715200 bytes255 heads, 63 sectors/track, 25 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000Disk /dev/sda2: 536 MB, 536870912 bytes255 heads, 63 sectors/track, 65 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000Disk /dev/sda3: 106.6 GB, 106626547712 bytes255 heads, 63 sectors/track, 12963 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000Disk /dev/sdb: 10.7 GB, 10737418240 bytes255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0aeb57a8

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         262     2104483+  83  Linux
/dev/sdb2             263         276      112455   83  Linux

Disk /dev/sdb1: 2154 MB, 2154991104 bytes255 heads, 63 sectors/track, 261 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000Disk /dev/sdb2: 115 MB, 115153920 bytes255 heads, 63 sectors/track, 14 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

(2)lsmod

如果執行上一個命令沒有反應,或者某些信息顯示模塊沒有加入,我們可以lsmod查看一下是否有usb_storage,scsi_mod(RHEL6上沒有此模塊),sd_mod模塊。

[root@Centos cdrom]# lsmod | grep "usb-storage"   #沒有加入usb-storage模塊哈             
[root@Centos cdrom]# lsmod | grep "scsi_mod"     #沒有加入scsi_mod模塊哈
[root@Centos cdrom]# lsmod | grep "sd_mod"       #已經加入了sd_mod模塊
sd_mod                 38976  4 crc_t10dif              1541  1 sd_mod

沒有就modprobe [module],添加所缺模塊:usb_storage, scsi_mod, sd_mod(RHEL6上沒有scsi_mod模塊)

在Linux下這些設備通常都是以一種叫做usb_storage的方式進行驅動(一般插入優盤后會自動安裝/加載該驅動)。要使用他們必須加載此模塊,當然,usbcore.o、usb-uhci.o、usb-ohci也肯定是不可缺少的。另外,若你系統中SCSI支持也是模塊方式,那么這些模塊也要加載

[root@Centos ~]# fdisk -l

Disk /dev/sda: 107.4 GB, 107374182400 bytes255 heads, 63 sectors/track, 13054 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00097863

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          26      204800   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              26          91      524288   82  Linux swap / Solaris
Partition 2 does not end on cylinder boundary.
/dev/sda3              91       13055   104127488   83  Linux

Disk /dev/sdb: 10.7 GB, 10737418240 bytes255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0aeb57a8

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         262     2104483+  83  Linux
/dev/sdb2             263         276      112455   83  Linux

Disk /dev/sdc: 3918 MB, 3918495744 bytes255 heads, 63 sectors/track, 476 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xc3072e18

   Device Boot      Start         End      Blocks   Id  System           #發現優盤了哈
   /dev/sdc1   *           1         476     3823438+   6  FAT16

Tips:

    在VMware虛擬機做此實驗時,需要在虛擬機里添加usb控制器(我使用的VMware9.0版本無法識別USB3.0接口,因此掛載優盤老是識別不了,后來換個USB2.0的接口就能成功識別了。如果大家遇到這樣的情況可以嘗試下哈~~)

下面我們來卸載“usb-storage模塊”再看看還是否能識別優盤:

[root@Centos ~]# modprobe -r usb_storage    #卸載usb_storage模塊
[root@Centos ~]# lsmod | grep "usb_storage"   #沒有發現usb_storage模塊哈
[root@Centos ~]# fdisk -l          #優盤沒有了哈
Disk /dev/sda: 107.4 GB, 107374182400 bytes255 heads, 63 sectors/track, 13054 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00097863

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          26      204800   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              26          91      524288   82  Linux swap / Solaris
Partition 2 does not end on cylinder boundary.
/dev/sda3              91       13055   104127488   83  Linux

Disk /dev/sdb: 10.7 GB, 10737418240 bytes255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0aeb57a8

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         262     2104483+  83  Linux
/dev/sdb2             263         276      112455   83  Linux

系統能識別優盤了,那接下來就可以掛載了:

這里需要先在mnt目錄下面建一個udisk目錄作為掛載點,然后將優盤掛載到此目錄

[root@Centos ~]# mkdir -pv /mnt/udisk   #創建掛載優盤的目錄
mkdir: created directory `/mnt/udisk'
[root@Centos ~]# mount -t vfat -o ro /dev/sdc1 /mnt/udisk  #以只讀方式掛載優盤到剛剛創建的目錄
[root@Centos ~]# 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,rootcontext="system_u:object_r:tmpfs_t:s0")
/dev/sda1 on /boot type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
none on /proc/fs/vmblock/mountPoint type vmblock (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
/dev/sdc1 on /mnt/udisk type vfat (ro)           #掛載成功了哈

補充:優盤掛載成功之后如果用modprobe命令卸載usb_storage驅動,會失敗哈(類似于windows系統,如果有進程在訪問優盤,那么是無法卸載優盤驅動的哈)

[root@Centos ~]# modprobe -r usb_storage     #卸載優盤驅動失?。ㄌ崾菊诒皇褂弥校?
FATAL: Module usb_storage is in use.

因此,拔出優盤前需要用umount命令卸載優盤。

4、掛載本地回環設備:通常用于掛載ISO鏡像文件

語法:mount –o loop,other_options DEVICE MOUNT_POINT

舉例:

Linux運維實戰之6:掛載/卸載磁盤分區

5、磁盤參數修改:

文件系統卷標 (Label) 修改

磁盤的掛載可以通過文件系統的卷標(Label)來進行,但是要保證這個值的唯一性

我們可以通過mke2fs進行磁盤格式化來指定這個值,也可以通過elabel或tune2fs來修改這個值

【e2label】

語法:e2label 設備名稱 新的Label名稱

舉例:用卷標來掛載分區

[root@Centos ~]# e2label /dev/sdb2 "NewMountPoint"  #設定新卷標(也可以用“tune2fs –L "NewMountPoint" /dev/sdb2”)
[root@Centos ~]# blkid /dev/sdb2     #驗證新卷標的設定
/dev/sdb2: LABEL="NewMountPoint" UUID="2abf9662-48ad-4c2a-bbaf-ed87eebfcfd8" TYPE="ext4" 
[root@Centos ~]# mount -o ro -L "NewMountPoint" /mydata/    #用卷標來掛載
[root@Centos ~]# 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,rootcontext="system_u:object_r:tmpfs_t:s0")
/dev/sda1 on /boot type ext4 (rw)
/dev/sr0 on /media/cdrom type iso9660 (ro)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
none on /proc/fs/vmblock/mountPoint type vmblock (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
/dev/sdb2 on /mydata type ext4 (ro)           #用卷標掛載成功
[root@Centos ~]# df -m        #驗證結果
Filesystem           1M-blocks      Used Available Use% Mounted on
/dev/sda3               100091      1374     93633   2% /
tmpfs                      244         0       244   0% /dev/shm
/dev/sda1                  194        28       156  16% /boot
/dev/sr0                  4152      4152         0 100% /media/cdrom
/dev/sdb2                  107         5        92   5% /mydata            #用卷標掛載成功

【自動掛載】

Tips:該功能我們在RHEL5是操作哈。RHEL6可能因為安全問題取消了自動掛載功能(這是我個人的理解哈)!

我們 cd /misc這個目錄,ls看看這個目錄里面有沒東西:

[root@rhel5 ~]# cd /misc/
[root@rhel5 misc]# ls -l 
總計 0                  #可以看到沒有任何內容
[root@rhel5 misc]# cd cd
[root@rhel5 cd]# ls            #沒有任何內容卻能夠切換到cd目錄中且其中的內容是光盤中的內容
Cluster         README-or.html         RELEASE-NOTES-ml.html
ClusterStorage  README-pa.html         RELEASE-NOTES-mr.html
EULA            README-pt_BR.html      RELEASE-NOTES-or.html
eula.en_US      README-ru.html         RELEASE-NOTES-pa.html
GPL             README-si.html         RELEASE-NOTES-pt_BR.html
images          README-ta.html         RELEASE-NOTES-ru.html
isolinux        README-te.html         RELEASE-NOTES-si.html
README-as.html  README-zh_CN.html      RELEASE-NOTES-ta.html
README-bn.html  README-zh_TW.html      RELEASE-NOTES-te.html
README-de.html  RELEASE-NOTES-as.html  RELEASE-NOTES-zh_CN.html
README-en       RELEASE-NOTES-bn.html  RELEASE-NOTES-zh_TW.html
README-en.html  RELEASE-NOTES-de.html  RPM-GPG-KEY-fedora
README-es.html  RELEASE-NOTES-en       RPM-GPG-KEY-fedora-test
README-fr.html  RELEASE-NOTES-en.html  RPM-GPG-KEY-redhat-auxiliary
README-gu.html  RELEASE-NOTES-es.html  RPM-GPG-KEY-redhat-beta
README-hi.html  RELEASE-NOTES-fr.html  RPM-GPG-KEY-redhat-former
README-it.html  RELEASE-NOTES-gu.html  RPM-GPG-KEY-redhat-release
README-ja.html  RELEASE-NOTES-hi.html  Server
README-kn.html  RELEASE-NOTES-it.html  TRANS.TBL
README-ko.html  RELEASE-NOTES-ja.html  VT
README-ml.html  RELEASE-NOTES-kn.html
README-mr.html  RELEASE-NOTES-ko.html

為什么沒有這個目錄我們卻能夠進入呢?這就是自動掛載了

當我們cd到自動掛載的目錄,系統就會自動把分區掛載到這個目錄,而不需要我們去手動掛載

自動掛載有這幾個特點:        
被掛載的目錄是不需要建立的,系統自動幫你建立        
自動掛載需要激活,沒激活的情況下被掛載目錄是不可見的

我們來看看這個系統自動掛載是怎么定義的,系統通過autofs服務自動掛載文件系統,需要后臺的automount進程,autofs服務的開閉由/etc/init.d/autofs腳本控制,主要應用于軟驅與光驅等場合,如果該設備一段時間沒有被使用,autofs會自動卸載。

自動掛載分兩個配置文件來完成:一個是主文件,一個是輔文件。

主文件只有一個 ,就是/etc/auto.master

Linux運維實戰之6:掛載/卸載磁盤分區

輔助文件是自己在主文件里面定義的,下面請大家用vim打開主文件:vim /etc/auto.master

Linux運維實戰之6:掛載/卸載磁盤分區

我們在下面添加一個自動掛載,主目錄為automnt,輔助文件為 /etc/auto.automnt

就這樣寫:/automnt         /etc/auto.automnt

Linux運維實戰之6:掛載/卸載磁盤分區

寫好后保存退出,我們去看看主文件里面定義的/etc/auto.misc這個文件是怎么寫滴哈~

Linux運維實戰之6:掛載/卸載磁盤分區

大家估計看懂了吧,前面的cd就是最終掛載目錄,中間就是文件類型,后面就是掛載的設備

直接退出,然后編寫剛才我們那個自動掛載的輔助文件,輔助文件默認是沒有的,我們需要手動建立

vim /etc/auto.automnt

然后把輔助文件的內容寫進去,我們最終的掛載目錄為dvd ,自動掛載,掛載的設備還是光盤,參照auto.misc寫哈:

Linux運維實戰之6:掛載/卸載磁盤分區

OK,然后保存退出,切記,輔助文件的語法格式要和主文件中定義的要一樣,不然會失敗的。

驗證下結果:

[root@rhel5 ~]# ll /etc/auto*         
-rw-r--r-- 1 root root   47 08-10 20:39 /etc/auto.automnt           #可以看到已經創建了自定義的輔助文件哈
-rw------- 1 root root 2479 2007-01-11 /etc/autofs_ldap_auth.conf
-rw-r--r-- 1 root root  587 08-10 20:27 /etc/auto.master       
-rw-r--r-- 1 root root  581 2007-01-11 /etc/auto.misc
-rwxr-xr-x 1 root root 1292 2007-01-11 /etc/auto.net
-rwxr-xr-x 1 root root  558 2007-01-11 /etc/auto.smb

##然后重新啟動自動掛載:service autofs restart ##
[root@rhel5 ~]# service autofs restart
停止 automount:                                           [確定]
啟動 automount:                                           [確定]

##有沒有automnt這個目錄##
[root@rhel5 ~]# ll /
總計 138
drwxr-xr-x   2 root root     0 08-10 20:44 automnt    #已經有automnt目錄了哈
drwxr-xr-x   2 root root  4096 2012-03-30 bin
drwxr-xr-x   4 root root  1024 2012-03-30 boot
drwxr-xr-x  11 root root  3760 08-10 19:08 dev
drwxr-xr-x  92 root root 12288 08-10 20:39 etc
drwxr-xr-x   3 root root  4096 2012-03-29 home
drwxr-xr-x  14 root root  4096 2012-03-30 lib
drwx------   2 root root 16384 2012-03-30 lost+found
drwxr-xr-x   2 root root  4096 08-10 19:05 media
drwxr-xr-x   2 root root     0 08-10 20:44 misc
drwxr-xr-x   3 root root  4096 2012-03-29 mnt
drwxr-xr-x   2 root root     0 08-10 20:44 net
drwxr-xr-x   2 root root  4096 2006-10-11 opt
dr-xr-xr-x 138 root root     0 08-10 19:03 proc
drwxr-x---  19 root root  4096 08-10 20:39 root
drwxr-xr-x   2 root root 12288 2012-03-29 sbin
drwxr-xr-x   4 root root     0 08-10 19:03 selinux
drwxr-xr-x   2 root root  4096 2006-10-11 srv
drwxr-xr-x  11 root root     0 08-10 19:03 sys
drwxrwxrwt  15 root root  4096 08-10 20:44 tmp
drwxr-xr-x  14 root root  4096 2012-03-30 usr
drwxr-xr-x  21 root root  4096 2012-03-30 var

##然后cd /automnt/進入這個目錄,ls查看下/automntl/目錄下沒有文件并且cd dvd ,看能不能自動掛載##
[root@rhel5 ~]# cd /automnt/   
[root@rhel5 automnt]# ls    #automnt目錄下沒有任何文件哈
[root@rhel5 automnt]# cd dvd  #能夠cd到dvd目錄且能夠自動掛載哈
[root@rhel5 dvd]# ls
Cluster         README-en.html  README-or.html         RELEASE-NOTES-de.html  RELEASE-NOTES-ml.html     RPM-GPG-KEY-fedora
...

1、自動掛載的主文件定義的主目錄和輔助文件定義的最終目錄都是不用手動建立的。這就算成功了,輔助文件內可以寫分區的,也可以寫nfs或者是samba的,不僅僅是光驅。

2、自動掛載主要是靠腳本文件“/etc/init.d/autofs”結合相關的配置文件來實現的。在REHL6上出于安全考慮取消了自動掛載,如果需要大家可以手動嘗試自己編寫相關的腳本來實現哈


【開機掛載和/etc/fstab配置文件】

/etc/fstab: 系統開機會自動掛載的文件系統

若想永久生效并在系統開機時掛載,需要通過修改/etc/fstab文件來實現。

該文件的語法及格式如下:

用空格隔開的6個字段,各字段含義如下:

字段1:掛載的設備(可以是以下任意一種)

                   設備文件、卷標、UUID

字段2:掛載點:通常是一個空目錄(如果該目錄中有內容,則掛載后該目錄的內容會被隱藏;如果該目錄正在被使用,則掛載會失?。?/span>

字段3:掛載選項(-o后面的參數)defaults表示使用默認選項,多個選項彼此間逗號分隔;

字段4:指定掛載的文件系統類型

字段5:轉儲頻率(是否被dump備份)

            0: 從不備份;

            1:每日備份;

            2:每隔一天備份

字段6:自檢次序(Fsck:是否以FSCK檢驗扇區):

啟動的過程中,系統默認會以 fsck 檢驗我們的文件系統是否完整;通常是以下幾個數字

        0:不檢測;

        1:第一個檢測;一般只有根文件系統被第一個檢測;

        2

        9

【范例】

1、編輯/etc/fstab文件

Linux運維實戰之6:掛載/卸載磁盤分區

2、鍵入“reboot”命令重啟系統驗證是否開機自動掛載了光盤

Linux運維實戰之6:掛載/卸載磁盤分區


交換分區的掛載

1、交換分區基礎:

Linux的交換分區:swap(虛擬內存)

說明:區別于windows系統,Linux中的交換分區必須是獨立分區,且為獨立文件系統;

交換分區多大?

科學計算類的服務器:交換內存可以盡可能大,比如為物理內存的2倍;

應用程序類的服務器:交換內存盡可能小,比如只給1G;

物理內存小于等于2G, swap=memory*2

2G<memory<4G, swap=memory*1.5

memory>4G, swap=4G

補充:如何查看內存大小

【free 命令】

選項:

     -m: 空間大小換算為MB

     -g: 空間大小換算為GB

Linux運維實戰之6:掛載/卸載磁盤分區

字段說明:

字段1:總內存大小

字段2:已使用 內存大小

字段3:空閑內存大小

字段4:shared: 共享內存

字段5:buffer: 緩沖(通常用于寫操作)

字段6:cached: 緩存(通常用于讀操作)

第3行說明:

-/+ buffers/cache: 實際使用和空閑的內存是減去/加上緩沖及緩存大小的量 

2、創建交換分區:

mkswap DEVICE

-L label:設置卷標

啟用交換分區:

swapon DEVICE:啟用指定交換分區;

swapon -a: 啟用所有交換分區

3、禁用交換分區:

swapoff DEVICE

swapoff –a:禁用所有交換分區

【范例】

[root@Centos ~]# fdisk -l /dev/sdb

Disk /dev/sdb: 10.7 GB, 10737418240 bytes255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0aeb57a8

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         262     2104483+  82  Linux swap / Solaris     #將該分區類型調整為swap
/dev/sdb2             263         276      112455   83  Linux
[root@Centos ~]# mkswap -L "NewSwap" /dev/sdb1           #創建交換分區,并設定卷標
Setting up swapspace version 1, size = 2104476 KiB
LABEL=NewSwap, UUID=e55a6111-3179-4a8e-a2e5-7bd79357398a
[root@Centos ~]# free -m        
             total       used       free     shared    buffers     cached
Mem:           486        280        205          0          8        177
-/+ buffers/cache:         94        392
Swap:          511          0        511    #目前交換分區大小
[root@Centos ~]# swapon /dev/sdb1          #啟用剛創建的交換分區
[root@Centos ~]# free -m
             total       used       free     shared    buffers     cached
Mem:           486        282        204          0          8        177
-/+ buffers/cache:         95        391
Swap:         2567          0       2567    #啟用新交換分區后的情況
[root@Centos ~]# swapoff /dev/sdb1        #禁用新交換分區
[root@Centos ~]# free -m
             total       used       free     shared    buffers     cached
Mem:           486        281        205          0          8        177
-/+ buffers/cache:         94        392
Swap:          511          0        511    #交換分區變回原大小
[root@Centos ~]# swapoff -a          #禁用所有的交換分區
[root@Centos ~]# free -m
             total       used       free     shared    buffers     cached
Mem:           486        280        206          0          8        177
-/+ buffers/cache:         93        392
Swap:            0          0          0    #沒有可用的交換分區了哈

4、開機自動啟用交換分區,可定義于/etc/fstab中:

格式:DEVICE  swap   swap   defaults 0 0

注意點:

       掛載點:swap

       文件系統類型:swap

【范例】

Linux運維實戰之6:掛載/卸載磁盤分區

這樣就配置好了新的swap分區了,如果要立即生效還需要手動掛載一次。

Tips:

【配置談經】

在Linux中,立即生效的配置不會永久生效(要永久生效需要寫入配置文件);永久生效的配置不會立即生效(要立即生效需要重新加載相關服務)


本次博文的內容就這么多哈,歡迎各位大大拍磚!~~

原創文章,作者:N4_jjx,如若轉載,請注明出處:http://www.www58058.com/62484

(0)
N4_jjxN4_jjx
上一篇 2016-12-04
下一篇 2016-12-04

相關推薦

  • bash腳本編程之算術運算和文件查找

    算數運算在每個編程語言里面是最基本的功能,在bash里面也是.相對于其他編程語言來說在bash里面不能直接以變量加上變量的形式來表現;比如我們先聲明兩個變量num1和num2然后再做運算。 num1=2 num2=3 echo "$num1+$num2" 2+3 這里我們顯示的結果直接為2+3只是做了變量的替換,而不是做兩個變量…

    Linux干貨 2016-12-23
  • Linux基礎知識(四)

    本文主要講述:Linux上用戶和組的基本管理,具體包括一下內容 1、復制/etc/skel目錄到/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。 2、編輯/etc/group文件,添加組hadoop。 3、手動編輯/etc/passwd文件新增一行,添加用戶hadoop,其基本組ID為hadoop組的id…

    Linux干貨 2016-10-16
  • MySQL常用字符函數

    MySQL常用字符函數簡介 CONCAT(S1,S2…Sn) 連接S1,S2…Sn為一個字符串 concat函數,把傳入的參數連接成為一個字符串。 例如: 把“aaa”、“bbb”、”ccc”3個字符串連接成一個字符串,“aaabbbccc”.另外任何與NULL進行連接的結果都將是NULL. >SELEC…

    Linux干貨 2017-05-01
  • linux文件系統

    linux的文件系統:             根文件系統為rootfs(root file system)           &nbsp…

    Linux干貨 2015-12-19
  • iptables:iptables工具詳解

    之前的博客聊了關于iptables防火墻工作原理的相關介紹, 本片將詳細介紹iptables的使用。 一、 iptables 查看鏈表,創建鏈表,類命令     1. iptables [-t table] -N chain : 創建一條自定義規則的鏈      #&n…

    Linux干貨 2015-08-06
  • Linux文件系統

    Linux文件系統 根目錄下的文件 / ├── bin 存放用戶使用的基本命令(可執行程序,二進制文件) 不能單獨分區的 ├── boot 跟內核有關的文件 grub 內核和BootLoader ├── cgroup 用來資源限制資源隔離 docker 容器化 ├── dev device 設備文件 b block device 塊設備 硬盤或者CD-rom…

    Linux干貨 2017-04-01

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-12-14 15:00

    非常的好,以問題的方式引入知識點,加油!

欧美性久久久久