概述:html
本篇爲上篇博客---建立文件系統,(格式化)的後續內容,將陸續爲你們介紹用於系統檢測的工具、blkid命令,及如何建立swap文件系統,最重要的是文件系統建立後如何使用,掛載的內容!node
==============================================================================linux
4.用於實現系統檢測的工具:fsck,e2fsck
windows
★爲何要進行文件系統檢測:centos
因進程意外停止或系統崩潰等緣由致使操做非正常終止時,可能會形成文件損壞;此時應該檢測並修復文件系統,建議離線進行;bash
常發生於死機或者非正常關機以後;app
掛載爲文件系統標記爲「dirty」異步
★e2fsck:ext系列文件專用的檢測修復工具async
☉語法:ide
e2fsck [OPTIONS] device
☉選項:
-y:對全部問題自動回答爲yes;
-f:即便文件系統處於clean狀態,也要強制進行檢測;
★fsck 命令
☉做用:
check and repair a Linux file system
☉語法:
fsck.FS_TYPE
☉選項:
-t FS_TYPE:指明文件系統類型 如:fsck -t ext4=fsck.ext4
-a:自動修復錯誤;
-r:交互式修復錯誤
注意:
FS_TYPE 必定要與分區上已知文件類型相同;
演示:
1.e2fsck 命令
[root@CentOS6 ~]# e2fsck -f /dev/sda3 e2fsck 1.41.12 (17-May-2010) Pass 1: Checking inodes, blocks, and sizes # 第一步,檢查indoe塊和大小 Pass 2: Checking directory structure # 第二步,檢查目錄結構; Pass 3: Checking directory connectivity # 第三步,檢查目錄鏈接性; Pass 4: Checking reference counts # 檢查引用計數 Pass 5: Checking group summary information # 檢查簇摘要信息 /dev/sda3: 11/328656 files (0.0% non-contiguous), 56006/1313064 blocks
1.blkid:
★blkid:塊設備屬性信息查看
☉語法:
blkid [OPTION]...[DEVICE]
☉選項:
-U UUID:根據指定的UUID來查找對應的設備;
-L LABEL:根據指定的LABEL來查找對應的設備
演示:
[root@CentOS6 ~]# e2label /dev/sda3 MYDATA # 根據指定的卷標,UUID來查找對應的設備 [root@CentOS6 ~]# blkid -L MYDATA /dev/sda3 # 查看其設備的相關屬性 [root@CentOS6 ~]# blkid /dev/sda3 /dev/sda3: UUID="ddd258cd-c7bc-48a2-8783-3bb629e21f81" SEC_TYPE="ext2" TYPE="ext3" LABEL="MYDATA" [root@CentOS6 ~]# blkid -U ddd258cd-c7bc-48a2-8783-3bb629e21f81 /dev/sda3
★swap文件系統:
Linux上的交換分區必須使用獨立的文件系統(磁盤分區);且文件系統的System ID必須爲82;
☉建立swap設備:
mkswap 命令
☉語法:
mkswap [OPTIONS] device
☉選項:
-L LIBEL:指明卷標;
-f:強制
演示:
[root@CentOS6 ~]# fdisk -l /dev/sda Disk /dev/sda: 85.9 GB, 85899345920 bytes 255 heads, 63 sectors/track, 10443 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: 0x00093c28 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 7859 62914560 8e Linux LVM /dev/sda3 7859 8512 5252256 83 Linux /dev/sda4 8513 10443 15510757+ 5 Extended /dev/sda5 8513 8905 3156741 83 Linux /dev/sda6 8906 9167 2104483+ 82 Linux swap / Solaris # 建立swap文件系統 [root@CentOS6 ~]# mkswap /dev/sda6 Setting up swapspace version 1, size = 2104476 KiB no label, UUID=c8a63073-5ab8-4384-8905-0326830a3953 [root@CentOS6 ~]# blkid /dev/sda6 /dev/sda6: UUID="c8a63073-5ab8-4384-8905-0326830a3953" TYPE="swap"
★Windows沒法識別Linux的文件系統;所以存儲設備須要在兩種系統之間交叉使用時,應該使用windows和linx同時支持的文件系統:fat32(vfat)
# mkfs.vafat device
==============================================================================
第二篇:文件系統的使用(掛載)
==============================================================================
★爲何要掛載
磁盤的分區和格式化完成後,磁盤要想可以使用,就須要掛載,在掛載某個分區前須要先創建一個掛載點。
★相關概念:
☉首先要"掛載":mount 和 卸載 unmount 命令
☉根文件系統以外的其餘文件系統要想可以被訪問,都必須經過「關聯」至根文件系統上的某個目錄來實現,此關聯操做即爲「掛載」,此目錄即爲掛載點;
☉掛載點:mount_point,做爲另外一個文件系統的訪問入口
事先存在;
應該使用未被或不會被其餘進程使用到的目錄;
掛載點下原有文件將會被臨時隱藏;
☉卸載:爲解除此關聯關係的過程
卸載時:可以使用設備,也可使用掛載點
1.使用方法及語法:
★掛載方法:
mount DEVICE MOUNT_POINT
mount:經過查看/etc/mtab文件顯示當前已掛載的全部設備
☉語法:
mount [-nrw] [-t vfstype] [-o options] device dir
◆device:指明要掛載的設備;
設備文件:例如/dev/sda5;
卷標:-L 'LABEL':例如-L 'MYDATA';
UUID, -U 'UUID':例如-U '0c50523c-43f1-45e7-85c0-a126711d406e'
僞文件系統名稱:proc, sysfs, devtmpfs, configfs
◆dir:掛載點
事先存在;建議使用空目錄;
進程正在使用中的設備沒法被卸載
演示:
[root@CentOS6 ~]# blkid /dev/sda3 /dev/sda3: UUID="ddd258cd-c7bc-48a2-8783-3bb629e21f81" SEC_TYPE="ext2" TYPE="ext3" LABEL="MYDATA" # 掛載 /dev/sda3 設備到 /mnt 目錄下 [root@CentOS6 ~]# mount /dev/sda3 /mnt [root@CentOS6 ~]# mount /dev/mapper/vg0-root 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) /dev/mapper/vg0-usr on /usr type ext4 (rw) /dev/mapper/vg0-var on /var type ext4 (rw) none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) /dev/sda3 on /mnt type ext3 (rw) # 掛載的設備 [root@CentOS6 ~]# df Filesystem 1K-blocks Used Available Use% Mounted on /dev/mapper/vg0-root 20511356 407728 19055052 3% / tmpfs 502068 0 502068 0% /dev/shm /dev/sda1 194241 34097 149904 19% /boot /dev/mapper/vg0-usr 10190136 2142576 7523272 23% /usr /dev/mapper/vg0-var 20511356 480824 18981956 3% /var /dev/sda3 5169700 141468 4765620 3% /mnt [root@CentOS6 ~]# cp /etc/fstab /mnt/ [root@CentOS6 ~]# ls /mnt/ fstab lost+found [root@CentOS6 ~]# umount /dev/sda3 # 取消掛載此設備,再次訪問文件訪問不到 [root@CentOS6 ~]# ls /mnt/ [root@CentOS6 ~]# mount /dev/sda3 /media/ # 掛載到其餘文件做爲訪問入口 [root@CentOS6 ~]# ls /media/ fstab lost+found [root@CentOS6 ~]# umount /media/ [root@CentOS6 ~]# ls /media/
★命令選項
-r:readonly,只讀掛載;
-w:read and write, 讀寫掛載;(默認特性)
-n:在默認狀況下,設備掛載或卸載的操做同時會更新至/etc/mtab文件中,-n 用於禁此特性;
-t vsftype:指定要掛載的設備上的文件系統類型;多數狀況下可省略,此時mount會經過blkid來判斷要掛載的設備的文件系統的類型;
-a:自動掛載全部支持自動掛載的設備(定義在了/etc/fstab文件中,且掛載選項中有auto功能);
-L 'LABEL':掛載時以卷標的方式指明掛載設備;
-U 'UUID':掛載時以UUID指定要掛載的設備;(mount -U UUID dir)
-B, --bind:將目錄綁定至另外一個目錄上,做爲其臨時訪問入口;
演示:
1.-r: readonly,只讀掛載
# 只讀掛載 [root@CentOS6 ~]# mount -r /dev/sda3 /mnt [root@CentOS6 ~]# ls /mnt fstab lost+found # 提示爲只讀文件系統,不容許建立文件 [root@CentOS6 ~]# cp /etc/issue /mnt cp: cannot create regular file `/mnt/issue': Read-only file system
2.-L 'LABEL': 掛載時以卷標的方式指明掛載設備
[root@CentOS6 ~]# blkid /dev/sda3 /dev/sda3: UUID="ddd258cd-c7bc-48a2-8783-3bb629e21f81" SEC_TYPE="ext2" TYPE="ext3" LABEL="MYDATA" [root@CentOS6 ~]# mount -L MYDATA /mnt [root@CentOS6 ~]# mount /dev/mapper/vg0-root 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) /dev/mapper/vg0-usr on /usr type ext4 (rw) /dev/mapper/vg0-var on /var type ext4 (rw) none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) /dev/sda3 on /mnt type ext3 (rw)
3. -U 'UUID': 掛載時以UUID指定要掛載的設備
[root@CentOS6 ~]# umount /dev/sda3 # 指明 UUID 掛載 [root@CentOS6 ~]# mount -U ddd258cd-c7bc-48a2-8783-3bb629e21f81 /mnt [root@CentOS6 ~]# mount /dev/mapper/vg0-root 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) /dev/mapper/vg0-usr on /usr type ext4 (rw) /dev/mapper/vg0-var on /var type ext4 (rw) none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) /dev/sda3 on /mnt type ext3 (rw) [root@CentOS6 ~]# ls /mnt fstab lost+found
4.-B, --bind: 將目錄綁定至另外一個目錄上,做爲其臨時訪問入口
[root@CentOS6 ~]# umount /mnt # 將 /etc 目錄掛載至 /mnt 目錄下 [root@CentOS6 ~]# mount -B /etc/ /mnt [root@CentOS6 ~]# mount /dev/mapper/vg0-root 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) /dev/mapper/vg0-usr on /usr type ext4 (rw) /dev/mapper/vg0-var on /var type ext4 (rw) none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) /etc on /mnt type none (rw,bind) [root@CentOS6 ~]# ls /mnt abrt cron.hourly fstab kde nanorc prelink.cache rpc sudo-ldap.conf acpi cron.monthly gai.conf kdump-adv-conf netconfig prelink.conf rpm sysconfig adjtime crontab gconf kdump.conf NetworkManager prelink.conf.d rsyslog.conf sysctl.conf aliases cron.weekly gcrypt krb5.conf networks printcap rsyslog.d sysctl.d aliases.db crypttab gdm ld.so.cache nfsmount.conf profile rwtab system-release
★-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功能(mount -o acl device dir 或者 tune2fs -o acl device)
注意:
若是掛載選項什麼都不指的話,至關於默認(defaults):至關於rw, suid, dev, exec, auto, nouser, async
演示:
# 默認新建立的文件系統是不支持acl權限的 [root@CentOS6 ~]# mount /dev/sda3 /mnt [root@CentOS6 ~]# mount /dev/mapper/vg0-root 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) /dev/mapper/vg0-usr on /usr type ext4 (rw) /dev/mapper/vg0-var on /var type ext4 (rw) none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) /dev/sda3 on /mnt type ext3 (rw) [root@CentOS6 ~]# ls /mnt lost+found [root@CentOS6 ~]# cp /etc/fstab /mnt/ [root@CentOS6 ~]# getfacl /mnt/fstab getfacl: Removing leading '/' from absolute path names # file: mnt/fstab # owner: root # group: root user::rw- group::r-- other::r-- # 提示不容許設定acl權限 [root@CentOS6 ~]# setfacl -m u:centos:rw /mnt/fstab setfacl: /mnt/fstab: Operation not supported #==================================================================== # 如今從新掛載,並添加掛載選項 acl(多個選項之間用逗號分隔) [root@CentOS6 ~]# mount -o remount,acl /dev/sda3 /mnt [root@CentOS6 ~]# mount /dev/mapper/vg0-root 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) /dev/mapper/vg0-usr on /usr type ext4 (rw) /dev/mapper/vg0-var on /var type ext4 (rw) none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) /dev/sda3 on /mnt type ext3 (rw,acl) # 能夠看到多了一個acl權限 [root@CentOS6 ~]# setfacl -m u:centos:rw /mnt/fstab # 設置acl權限成功 [root@CentOS6 ~]# getfacl /mnt/fstab getfacl: Removing leading '/' from absolute path names # file: mnt/fstab # owner: root # group: root user::rw- user:centos:rw- # 設置成功 group::r-- mask::rw- other::r-- # 注意:也可使用 tune2fs -o acl /dev/sda3 調整其默認掛載選項,使用 tune2fs -l /dev/sda3 查看
2.查看當前系統已掛載的全部設備:
# mount;
# cat /etc/mtab
# cat /proc/mounts
3.掛載光盤和U盤設備:
★掛載光盤
☉光盤設備文件
◆IDE:/dev/hdc;
◆SATA:/dev/sr0
◆符號連接文件
dev/cdrom;
dev/dvd
☉掛載方法:
mount -r /dev/cdrom mount_point
☉特殊掛載光盤的使用方法:
啓動 autofs 服務,會將 /dev/sr0 自動掛載到 /misc/cd 目錄中;
啓動 autofs:# systemctl enable|start autofs (centos7) centos6 可直接使用,隨系統自啓
☉把光盤製做成iso文件的方法:
使用cp命令直接備份就能夠 (cp /dev/cdrom /root/centos6.iso)
★掛載U盤
事先識別U盤的設備文件;
★掛載本地迴環設備:
# mount -o loop /PATH/TO/SOME_LOOP_FILE MOUNT_POINT
演示:
# 只讀掛載光盤到指定掛載點 [root@CentOS6 ~]# mount -r /dev/cdrom /mnt [root@CentOS6 ~]# cd /mnt [root@CentOS6 mnt]# ls CentOS_BuildTag EULA p_w_picpaths Packages repodata RPM-GPG-KEY-CentOS-Debug-6 RPM-GPG-KEY-CentOS-Testing-6 EFI GPL isolinux RELEASE-NOTES-en-US.html RPM-GPG-KEY-CentOS-6 RPM-GPG-KEY-CentOS-Security-6 TRANS.TBL # 特殊使用方法,啓動自動掛載服務(autofs,CentOS6自動開啓,7須要手動開啓),會掛載到 /misc/cd 目錄中 [root@CentOS6 ~]# cd /misc/cd [root@CentOS6 cd]# ls CentOS_BuildTag EULA p_w_picpaths Packages repodata RPM-GPG-KEY-CentOS-Debug-6 RPM-GPG-KEY-CentOS-Testing-6 EFI GPL isolinux RELEASE-NOTES-en-US.html RPM-GPG-KEY-CentOS-6 RPM-GPG-KEY-CentOS-Security-6 TRANS.TBL [root@CentOS6 ~]# df Filesystem 1K-blocks Used Available Use% Mounted on /dev/mapper/vg0-root 20511356 407728 19055052 3% / tmpfs 502068 0 502068 0% /dev/shm /dev/sda1 194241 34097 149904 19% /boot /dev/mapper/vg0-usr 10190136 2142576 7523272 23% /usr /dev/mapper/vg0-var 20511356 480868 18981912 3% /var /dev/sda3 3824484 3824484 0 100% /mnt /dev/sr0 3824484 3824484 0 100% /misc/cd /dev/sr0 3824484 3824484 0 100% /mnt
1.使用方法及語法:
★umount命令
☉使用方法:
umount DEVICE
umount MOUNT_POINT
注意:
正在被進程訪問到的掛載點沒法被卸載;
☉查看掛載狀況:
# findmnt MOUNT_POINT
☉查看被哪一個或者哪些進程所佔用:
# lsof MOUNT_POINT
# fuser -v MOUNT_POINT
☉終止全部在正訪問指定的文件系統的進程:
# fuser -km MOUNT_POINT
演示:
# 當有一個終端在使用時,另外一個終端用戶執行umount提示正在忙,表示不能卸載 [root@CentOS6 ~]# umount /mnt umount: /mnt: device is busy. (In some cases useful info about processes that use the device is found by lsof(8) or fuser(1)) # 查看掛載狀況: [root@CentOS6 ~]# findmnt /mnt TARGET SOURCE FSTYPE OPTIONS /mnt /dev/sda3 ext3 rw,relatime,errors=continue,barrier=1,data=ordered # 查看被那個或者哪些進程所佔用: [root@CentOS6 ~]# lsof /mnt COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME bash 2059 root cwd DIR 8,3 4096 2 /mnt [root@CentOS6 ~]# fuser -v /mnt USER PID ACCESS COMMAND /mnt: root 2059 ..c.. bash # 終止全部在正訪問指定的文件系統的進程: [root@CentOS6 ~]# fuser -km /mnt /mnt: 2059c [root@CentOS6 ~]# umount /mnt # 正常卸載 [root@CentOS6 ~]# mount /dev/mapper/vg0-root 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) /dev/mapper/vg0-usr on /usr type ext4 (rw) /dev/mapper/vg0-var on /var type ext4 (rw) none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)