磁盤沒有文件系統 對其讀取是以二進制讀取
文件系統是對文件存儲設備的空間進行組織和分配,負責文件存儲並對存入的文件進行保護和檢索的 系統。具體地說,它負責爲用戶建立文件,存入、讀出、修 改、轉儲文件,控制文件的存取,安全控制,日誌,壓縮, 加密等 對磁盤進行格式化
顯示支持的文件系統: ls /lib/modules/`uname –r`/kernel/fs
根據其是否支持"journal"功能:journal 日誌
日誌型文件系統: ext3, ext4, xfs, ...
非日誌型文件系統: ext2, vfat
文件系統的組成部分:
內核中的模塊:ext4, xfs, vfat
用戶空間的管理工具:mkfs.ext4, mkfs.xfs,mkfs.vfat
1.創建文件系統
mkfs命令:
v(1) mkfs.FS_TYPE /dev/DEVICE
ext4
xfs
btrfs
vfat
(2) mkfs -t FS_TYPE /dev/DEVICE -L 'LABEL': 指明文件類型並設定卷標
-b {1024|2048|4096} 塊大小 mkfs.xfs -b 1024 /dev/sdc 裏面文件至少佔1024
塊大小爲磁盤扇區(512字節) 的整數倍
2.創建ext文件系統
mke2fs:ext系列文件系統專用管理工具
-t {ext2|ext3|ext4}
-b {1024|2048|4096} 創建後無法更改
-L 'LABEL' 卷標 一般爲 掛載目錄 mkdir /mnt/ss4 mount /dev/sdd1 /mnt/ss4
-j: 相當於 -t ext3
mkfs.ext3 = mkfs -t ext3 = mke2fs -j = mke2fs -t ext3
-i #: 爲數據空間中每多少個字節創建一個inode;此大小不應該小於block的大小
-N #:指定分區中創建多少個inode
-I 一個inode記錄佔用的磁盤空間大小,128---4096
-m #: 默認5%,爲管理人員預留空間佔總空間的百分比
-O FEATURE[,...]:啓用指定特性
-O ^FEATURE:關閉指定特性
3.ext系列文件系統參數調整 不能調整block大小
tune2fs:重新設定ext系列文件系統可調整參數的值
-l:查看指定文件系統超級塊信息;super block
-L 'LABEL':修改卷標
tune2fs /dev/sdd1 -L /mnt/ss4
-m #:修預留給管理員的空間百分比
-j: 將ext2升級爲ext3
-O: 文件系統屬性啓用或禁用, –O ^has_journal
-o: 調整文件系統的默認掛載選項,–o ^acl
-U UUID: 修改UUID號
4.文件系統標籤
blkid:塊設備屬性信息查看
vblkid [OPTION]... [DEVICE]
-U UUID: 根據指定的UUID來查找對應的設備
-L LABEL:根據指定的LABEL來查找對應的設備
ve2label:管理ext系列文件系統的LABEL
e2label DEVICE [LABEL]
vfindfs :查找分區
findfs [options] LABEL=<label>
findfs LABEL=/mnt/ss4
findfs [options] UUID=<uuid>
findfs UUID=9e141ad2-0d2f-4668-963e-bf2c4d01c4d2
[root@centos7 fs]$mkfs.ext4 /dev/sdd1
[root@centos7 fs]$blkid
/dev/sdd1: UUID="3e7988c1-6f1a-4fe8-b6a2-68cad8553fdc" TYPE="ext4"
[root@centos7 fs]$mkfs -t ext3 /dev/sdd1
/dev/sdd1: UUID="afc398dd-2c59-4c7b-b1b4-3d42d46a85f6" SEC_TYPE="ext2" TYPE="ext3"
[root@centos7 fs]$tune2fs -l /dev/sdd1
(默認特性)Filesystem features: has_journal ext_attr resize_inode dir_index filetype sparse_super large_file
[root@centos7 fs]$tune2fs -O ^has_journal /dev/sdd1
[root@centos7 fs]$blkid
/dev/sdd1: UUID="afc398dd-2c59-4c7b-b1b4-3d42d46a85f6" TYPE="ext2" ex3與ex2多了日誌功能
5.文件系統檢測和修復
常發生於死機或者非正常關機之後
掛載爲文件系統標記爲“no clean”
v 注意:一定不要在掛載狀態下修復
vfsck: File System Check fsck.FS_TYPE fsck -t FS_TYPE
-p: 自動修復錯誤
-r: 交互式修復錯誤 FS_TYPE一定要與分區上已經文件類型相同
ve2fsck:ext系列文件專用的檢測修復工具
-y:自動回答爲yes
-f:強制修復
注:fsck 掃描文件系統時一定要在單用戶模式、修復模式或把設備umount後進行。
文件系統的修復 頂多修復的是文件系統的元數據 並不能修復其內容
dumpe2fs DEVICE: 查看文件系統詳細信息
塊分組管理,32768塊 一組
-h:查看超級塊信息,不顯示分組信息
Primary superblock at 0主要超塊0
Superblock backups stored on blocks: 備份超級塊
[root@centos7 ~]$dumpe2fs /dev/sdd1 | grep -i "superblock"
dumpe2fs 1.42.9 (28-Dec-2013)
Primary superblock at 0, Group descriptors at 1-1
Backup superblock at 32768, Group descriptors at 32769-32769
Backup superblock at 98304, Group descriptors at 98305-98305
Backup superblock at 163840, Group descriptors at 163841-163841
Backup superblock at 229376, Group descriptors at 229377-229377
Backup superblock at 294912, Group descriptors at 294913-294913
[root@centos7 ~]$dd if=/dev/zero of=/dev/sdd1 bs=1M count=1 破壞sdd1 主要超快0 (Reserved GDT blocks at 2-256) 256x4(塊大小)=1M 全局描述符表GDT損壞
[root@centos7 ~]$dumpe2fs /dev/sdd1
dumpe2fs 1.42.9 (28-Dec-2013)
dumpe2fs: Bad magic number in super-block while trying to open /dev/sdd1
Couldn't find valid filesystem superblock.
[root@centos7 ~]$fsck /dev/sdd1 未掛載狀態下修復
[root@centos7 ~]$dumpe2fs /dev/sdd1 | grep -i "superblock"
Backup superblock at 163840, Group descriptors at 163841-163841
6.用mount命令掛載文件系統
掛載:將額外文件系統與根文件系統某現存的目錄建立起關聯 關係,進而使得此目錄做爲其它文件訪問入口的行爲,無文件系統無法掛載
v 掛載點下原有文件在掛載完成後會被臨時隱藏
v 掛載點目錄一般爲空
v 卸載時:可使用設備, 也可以使用掛載點 umount 但當掛載設備被訪問時,不能取消該設備掛載
多個設備分區不允許同1個掛載點
1個設備分區可以多個掛載點
mount [-fnrsvw] [-t vfstype] [-o options] device dir
-n: 不更新/etc/mtab,mount不可見 cat /proc/mounts可查看
-B, --bind: 綁定目錄到另一個目錄上
給文件創建文件系統
[root@centos6 ~]#dd if=/dev/zero of=/app/cantest bs=1M count=100 文件
[root@centos6 ~]mke2fs -t ext4 /app/cantest
[root@centos6 ~]#blkid /app/cantest 在centos6中 cantest爲文件 查看屬性需要跟詳細路徑
/app/cantest: UUID="50955518-b925-4b14-b127-7b13d671ca62" TYPE="ext4"
對文件掛載目錄
[root@centos6 ~]#mkdir one
[root@centos6 ~]#mount /app/file one
mount: /app/file is not a block device (maybe try `-o loop'?) 不是塊設備不能定義block大小
[root@centos6 ~]#mount -o loop /app/file one 對文件進行掛載 需要使用loop設備進行掛載 ls /dev/loop*
[root@centos6 ~]#mount
/app/file on /root/one type ext4 (rw,loop=/dev/loop0)
在centos6中 /dev/loop*設備不夠 可手動創建
[root@centos6 ~]#ll /dev/loop*
brw-rw----. 1 root disk 7, 7 Aug 1 21:14 /dev/loop7
[root@centos6 ~]#mknod /dev/loop8 b 7 8
[root@centos6 ~]#cp /app/file{,1}
[root@centos6 ~]#blkid /app/file{,1}
/app/file: UUID="add5eca5-be19-4603-bd20-ba40f28017a0" TYPE="ext4"
/app/file1: UUID="add5eca5-be19-4603-bd20-ba40f28017a0" TYPE="ext4" 複製保留文件系統特性
目錄掛載目錄
[root@centos6 ~]#mount -B /etc /app
[root@centos6 ~]#ls /app
abrt drirc latrace.conf pinforc screenrc
acpi enscript.cfg latrace.d pkcs11 securetty
[root@centos6 ~]#ls /etc
abrt drirc latrace.conf pinforc screenrc
acpi enscript.cfg latrace.d pkcs11 securetty
像文件的硬鏈接 但實現了跨分區
mount常用命令選項
-o options:(掛載文件系統的選項),多個選項使用逗號分開
atime/noatime:包含目錄和文件 不刷新訪問時間 適用於web服務器
[root@centos6 ~]#mount -B -o noatime /etc one one訪問/etc文件目錄 不刷新訪問時間
diratime/nodiratime:目錄的訪問時間戳
suid/nosuid:不否支持suid和sgid權限
remount:重新掛載 不用取消在掛載 mount -o remount MOUNT_POINT|device
[root@centos6 ~]#mount /mnt/cdrom /mnt/sdd2
掛載後重掛載
[root@centos6 ~]#umount /mnt/sdd2
[root@centos6 ~]#mount -o dev /mnt/cdrom /mnt/sdd2
等同於
[root@centos6 ~]#mount -o remount,dev /mnt/sdd2|mnt/cdrom
defaults(默認掛載選項):相當於rw, suid, dev, exec, auto, nouser, async
v 查看正在訪問指定文件系統的進程
lsof 查看那個進程,那個用戶打開了某個文件,目錄等信息。
lsof MOUNT_POINT
fuser -v MOUNT_POINT
v 終止所有在正訪問指定的文件系統的進程 fuser -km MOUNT_POINT
v 取消掛載 umount DEVICE
umount MOUNT_POINT
查看掛載情況
findmnt MOUNT_POINT|device
echo $?
7.掛載點和/etc/fstab
v 配置文件系統體系
cat /etc/fstab
v 被mount、fsck和其它程序使用
v 系統重啓時保留文件系統體系
v 可以在設備欄使用文件系統卷標
v 使用mount -a 命令掛載/etc/fstab中的所有文件系統帶 defaults(默認掛載選項)立即生效 試用於一般掛載 不適合文件 目錄 swap 要 使用mount -o remount /dev/sdd 重掛立即生效
設備名、卷標 、UUID都可以描述設備 由於設備名位置可能發生變化以及卷標可能重複性 ,在設備的配置文 件中描述設備最好用UUID 文件系統的通用唯一標識符UUID
處理交換文件和分區
v 交換分區是系統RAM的補充 v不能存放數據 直接進行數據交換
基本設置包括:
• 創建交換分區或者文件
• 使用mkswap寫入特殊簽名
• 在/etc/fstab文件中添加適當的條目
• 使用swapon -a 激活交換空間
掛載交換分區
指明優先級swapon -p PRIORITY:指定優先級 /etc/fstab:pri=value
使用文件作爲交換分區
--生成文件 大小1G
[root@centos7 ~]$dd if=/dev/zero of=swapfile bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 29.1077 s, 36.9 MB/s
--將生成的文件格式化成交換分區:
[root@centos7 ~]$mkswap swapfile
Setting up swapspace version 1, size = 1048572 KiB
no label, UUID=863bfe20-417e-4905-af91-603e2a1d48f9
--啓動swapfile分區 並查看狀態
[root@centos7 ~]$swapon swapfile
swapon: /root/swapfile: insecure permissions 0644, 0600 suggested. 建議修改權限爲0600
--重啓生效寫入/etc/fstab
echo "UUID=863bfe20-417e-4905-af91-603e2a1d48f9 swap swap defaults 0 0">>/etc/fstab
刪除交換分區文件
(1)回收交換文件
swapoff ~/swapfile
(2 )去除/etc/fstab中的該行
(3)刪除該文件
rm ~/swapfile
使用磁盤作爲交換分區
--創建sdc3 分區作爲swap分區
[root@centos7 ~]$fdisk /dev/sdc
--修改爲swap分區
Command (m for help): t 指定掛載選項
Partition number (1-3, default 3): 3
Hex code (type L to list all codes): 82 centos7爲8200
--格式化分區使其生效 相對於構建文件系統
[root@centos7 ~]$mkswap /dev/sdc3
Setting up swapspace version 1, size = 10484732 KiB
no label, UUID=b95483f9-351d-4e26-96fc-06055a19f321
[root@centos7 ~]$swapon -s
Filename Type Size Used Priority 優先級
/dev/sda3 partition 1952764 57132 -1
/root/swapfile file 1048572 0 -2
/dev/sdc3 partition 10484732 0 -3
--在/etc/fstab下修改配置文件 並指明優先級
[root@centos7 ~]swapon -p 100 /dev/sdc3
--查看swap分區使用狀況
[root@centos7 ~]$free -m
total used free shared buff/cache available
Mem: 1824 575 75 16 1174 1017
Swap: 13169 55 13114
--關機交換分區
[root@centos7 ~]$swapoff /dev/sdc3
swap能應物理內存的使用情況 當free命令中swap使用率較高時,說明內存不足,須加內存
光盤掛載
mount /dev/cdrom MOUNT_POINT
/dev/cdrom(掛載盤) 通用 軟連接於sr0
創建ISO文件 cp /dev/cdrom /root/centos7.iso
mkisofs -r -o /root/etc.iso /etc 針對etc 打包成root下etc.iso文件
設置光盤掛載
mount /dev/cdrom /mnt/cdrom
開啓自動掛載
在 7中 systemctl start autofs 沒有此服務 安裝 autofs包 systemctl enable autofs 開機自啓
6: service autofs start
#cd /misc/cd
寫入/etc/fstab配置文件
練習:
1、創建一個2G的文件系統,塊大小爲2048byte,預留1%可用空間,文件系統ext4,卷標爲TEST,要求此分區開機後自動掛載至/test目錄,且默認有acl掛載選項
mkfs.ext4 -b 2048 -m 1 -O acl /dev/sdb1 -L TEST -L TEST 需跟在後面
mount /dev/sdb1 /test
/dev/sdc2 /test ext4 defaults,acl 0 0
2、寫一個腳本,完成如下功能:
(1) 列出當前系統識別到的所有磁盤設備
(2) 如磁盤數量爲1,則顯示其空間使用信息
否則,則顯示最後一個磁盤上的空間使用信息
3.實現CentOS-6.9-x86_64-bin-DVD1 CentOS-6.9-x86_64-bin-DVD2 兩張光盤合爲一張iso鏡像文件 並設置爲yum源
cp centos6-DVD1
[root@centos6 ~]#mkdir centos6
[root@centos6 ~]#cp -r /media/CentOS_6.9_Final/* centos6
[root@centos6 ~]#ls centos6
CentOS_BuildTag isolinux RPM-GPG-KEY-CentOS-Debug-6
EFI Packages RPM-GPG-KEY-CentOS-Security-6
EULA RELEASE-NOTES-en-US.html RPM-GPG-KEY-CentOS-Testing-6
GPL repodata TRANS.TBL
images RPM-GPG-KEY-CentOS-6
掛載centos6-DVD2 dvd2與dvd1就Packages下文件不同
[root@centos6 ~]#cp -r /media/CentOS_6.9_Final/Packages/* centos6
[root@centos6 ~]#./mkdvdiso.sh centos6 /app/CentOS-6-x86_64-Everything.iso
Error: /usr/bin/implantisomd5 Not Found!
Please install isomd5sum and try again.
[root@centos6 ~]#yum install isomd5sum
[root@centos6 ~]#./mkdvdiso.sh centos6 /app/CentOS-6-x86_64-Everything.iso