上次博文我們具體討論了Linux系統中磁盤的分區及格式化( http://www.www58058.com/60811),本次博文我們具體來說說分區的掛載哈!
【問題引入】
已經格式化好的分區如何與系統現有的文件系統建立關聯(如何使用新分區)?
新的磁盤分區創建完成并格式化之后需要掛載(或裝入)到目錄樹上才能被使用。
何謂掛載/卸載?
【答】將某個分區與某個目錄進行關聯的過程叫掛載(反之,拆除分區與目錄的關聯關系的過程叫卸載);被掛載的目錄成為掛載點。
【windows系統中的掛載/卸載】
在windows操作系統中, 掛載通常是指給磁盤分區(包括被虛擬出來的磁盤分區)分配一個盤符。 第三方軟件,如磁盤分區管理軟件、虛擬磁盤軟件等,通常也附帶掛載功能。當所有的盤符都分配完時,采用文件系統(分區)裝入即掛載來訪問新的分區。
【范例】
1、打開“磁盤管理”工具可以看到當前系統的磁盤使用情況:
【注意】
掛載點必須為一空目錄,否則無法掛載(這點與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
舉例:
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
輔助文件是自己在主文件里面定義的,下面請大家用vim打開主文件:vim /etc/auto.master
我們在下面添加一個自動掛載,主目錄為automnt,輔助文件為 /etc/auto.automnt
就這樣寫:/automnt /etc/auto.automnt
寫好后保存退出,我們去看看主文件里面定義的/etc/auto.misc這個文件是怎么寫滴哈~
大家估計看懂了吧,前面的cd就是最終掛載目錄,中間就是文件類型,后面就是掛載的設備
直接退出,然后編寫剛才我們那個自動掛載的輔助文件,輔助文件默認是沒有的,我們需要手動建立
vim /etc/auto.automnt
然后把輔助文件的內容寫進去,我們最終的掛載目錄為dvd ,自動掛載,掛載的設備還是光盤,參照auto.misc寫哈:
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文件
2、鍵入“reboot”命令重啟系統驗證是否開機自動掛載了光盤
【交換分區的掛載】
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
字段說明:
字段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
【范例】
這樣就配置好了新的swap分區了,如果要立即生效還需要手動掛載一次。
Tips:
【配置談經】
在Linux中,立即生效的配置不會永久生效(要永久生效需要寫入配置文件);永久生效的配置不會立即生效(要立即生效需要重新加載相關服務)
本次博文的內容就這么多哈,歡迎各位大大拍磚!~~
原創文章,作者:N4_jjx,如若轉載,請注明出處:http://www.www58058.com/62484
非常的好,以問題的方式引入知識點,加油!