Linux文件系統管理

文件系統介紹

文件系統是操做系統用於明確存儲設備或分區上的文件的方法和數據結構;即在存儲設備上組織文件的方法。操做系統中負責管理和存儲文件信息的軟件結構稱爲文件管理系統,簡稱文件系統。node

從系統角度來看,文件系統是對文件存儲設備的空間進行組織和分配,負責文件存儲並對存入的文件進行保護和檢索的系統。具體地說,它負責爲用戶創建文件,存入、讀出、修改、轉儲文件,控制文件的存取,安全控制,日誌,壓縮,加密等。linux

Linux支持的文件系統

Linux支持的文件系統能夠在設備上進行查看。以下:web

# /lib/modules/`uname–r`/kernel/fs
[root@LeeMumu ~]# uname -r
3.10.0-957.el7.x86_64
[root@LeeMumu ~]# ll /lib/modules/3.10.0-957.el7.x86_64/kernel/fs/
total 20
-rw-r--r--. 1 root root 5980 Nov  8  2018 binfmt_misc.ko.xz
drwxr-xr-x. 2 root root   25 Jun 22 20:10 btrfs
drwxr-xr-x. 2 root root   30 Jun 22 20:10 cachefiles
drwxr-xr-x. 2 root root   24 Jun 22 20:10 ceph
drwxr-xr-x. 2 root root   24 Jun 22 20:10 cifs
... ...
drwxr-xr-x. 2 root root   23 Jun 22 20:10 udf
drwxr-xr-x. 2 root root   23 Jun 22 20:10 xfs

連接文件

連接文件實現訪問一個文件的不一樣路徑。windows

1.硬連接

# 硬連接:指向同一個inode的多個文件路徑;
	# 特性:
		#(1) 目錄不支持硬連接;
		#(2) 硬連接不能跨文件系統; 
		#(3) 建立硬連接會增長inode引用計數;
			
	# 建立:
		# ln  src  link_file

2.符號連接

# 符號連接:指向一個文件路徑的另外一個文件路徑;
	# 特性:
		#(1) 符號連接與文件是兩人個各自獨立的文件,各有本身的inode;對原文件建立符號連接不會增長引用計數
		#(2) 支持對目錄建立符號連接,能夠跨文件系統
		#(3) 刪除符號連接文件不影響原文件;但刪除原文件,符號指定的路徑即不存在,此時會變成無效連接			
			# 注意:符號連接文件的大小是其指定的文件的路徑字符串的字節數
					
	# 建立:
		# ln -s  src link_file
			-v:verbose

文件系統類型

  • 一、Linux文件系統
# ext2(Extended file system) :適用於那些分區容量不是太大,更新也不頻繁的狀況,例如/boot 分區
# ext3:是ext2 的改進版本,其支持日誌功能,可以幫助系統從非正常關機致使的異常中恢復。它一般被用做通用的文件系統
# ext4:是ext文件系統的最新版。提供了不少新的特性
	   # 包括納秒級時間戳、建立和使用巨型文件(16TB)、最大1EB的文件系統,以及速度的提高
# xfs:SGI,支持最大8EB的文件系統
  • 二、光盤:iso9660
  • 三、windows的文件系統:vfat, ntfs
  • 四、網絡文件系統:nfs, cifs
  • 五、集羣文件系統:gfs2, ocfs2
  • 六、分佈式文件系統:fastdfs,ceph, moosefs, mogilefs, glusterfs, Lustre
  • 七、RAW:未經處理或者未經格式化產生的文件系統
  • 八、用戶空間的分佈式文件系統:mogilefs, moosefs, glusterfs
  • 九、交換文件系統:swap
  • 十、Unix的文件系統:UFS, FFS, JFS
  • 十一、僞文件系統:proc, sysfs, tmpfs, hugepagefs
  • 十二、內核級分佈式文件系統:ceph

文件系統分類

  • 一、根據其是否支持"journal"功能
日誌型文件系統: ext3, ext4, xfs, ...
非日誌型文件系統: ext2, vfat
  • 二、文件系統的組成部分
內核中的模塊:ext4, xfs, vfat
用戶空間的管理工具:mkfs.ext4, mkfs.xfs,mkfs.vfat
  • 三、Linux的虛擬文件系統:VFS
    在這裏插入圖片描述
  • 四、查前支持的文件系統
# cat /proc/filesystems
[root@LeeMumu ~]# cat /proc/filesystems 
nodev	sysfs
... ...
nodev	selinuxfs
	xfs

文件系統選擇

在這裏插入圖片描述

超級塊和INODE TABLE

在這裏插入圖片描述

文件系統其它說明

文件系統中的目錄也是文件,是有元數據和數據組成的。centos

# 元數據:inode, inode table
# 數據:data blocks
	# 下級文件或目錄的文件名與其inode對應關係

文件系統中修改文件說明

# 刪除文件:將此文件指向的全部data block標記爲未使用狀態;將此文件的inode標記爲未使用
# 複製和移動文件
	# 複製:新建文件,
	# 移動文件:
		# 在同一文件系統:改變的僅是其路徑;
		# 在不一樣文件系統:複製數據至目標文件,並刪除原文件;
				
# 符號連接:權限(lrwxrwxrwx)
# 硬連接:指向同一個inode

文件系統管理工具

  1. 建立文件系統的工具
# mkfs
	# mkfs.ext2, mkfs.ext3, mkfs.ext4, mkfs.xfs, mkfs.vfat, ...
  1. 檢測及修復文件系統的工具
# fsck
	# fsck.ext2, fsck.ext3, ...
  1. 查看其屬性的工具
# dumpe2fs
# tune2fs
  1. 調整文件系統特性
建立文件系統的工具
# tune2fs

內核級文件系統的組成部分

  • 文件系統驅動:由內核提供
  • 文件系統箮理工具:由用戶空間的應用程序提供

文件系統的管理工具

建立文件系統命令

經常使用工具:安全

# mkfs.ext2
# mkfs.ext3
# mkfs.ext4

經常使用命令:bash

# mkfs.FS_TYPE/dev/DEVICE
		ext4
		xfs
		btrfs
		vfat
# mkfs-t FS_TYPE /dev/DEVICE
	-L 'LABEL'設定卷標

# mkfs -t ext2 = mkfs.ext2

ext文件系統管理

建立

ext系列文件系統建立命令:mke2fs 。網絡

# mke2fs [OPTIONS]  device
	# -t {ext2|ext3|ext4}:指明要建立的文件系統類型
		mkfs.ext4 = mkfs -t ext4 = mke2fs -t ext4
	# -b {1024|2048|4096}:指明文件系統的塊大小
	# -L LABEL:指明卷標
	# -j:建立有日誌功能的文件系統ext3
		mke2fs -j = mke2fs -t ext3 = mkfs -t ext3 = mkfs.ext3
	-i #:bytes-per-inode,指明inode與字節的比率;即每多少字節建立一個Indode
	-N #:直接指明要給此文件系統建立的inode的數量
	-m #:指定預留的空間,百分比,不須要加%號
				
	-O [^]FEATURE:以指定的特性建立目標文件系統

查看與設定

卷標的查看與設定的命令:e2label數據結構

# 查看:e2label device
# 設定:e2label device LABEL

查看或修改

查看或修改ext系列文件系統的某些屬性的命令:tune2fs。(adjust tunable filesystem parameters on ext2/ext3/ext4 filesystems)
注意:塊大小建立後不可修改。app

# tune2fs [OPTIONS] device
	# -l:查看超級塊的內容
					
	# 修改指定文件系統的屬性:
		# -j:ext2 --> ext3;
		# -L LABEL:修改卷標;
		# -m #:調整預留空間百分比;
		# -O [^]FEATHER:開啓或關閉某種特性;
						
		# -o [^]mount_options:開啓或關閉某種默認掛載選項
			# acl
			# ^acl

查看屬性信息

顯示ext系列文件系統的屬性信息的命令:dumpe2fs

# dumpe2fs  [-h] device

ext系列文件系統的專用修復工具

文件系統修復注意事項:

  • 常發生於死機或者非正常關機以後
  • 掛載爲文件系統標記爲「no clean」
  • 注意:必定不要在掛載狀態下修復
# e2fsck : check a Linux ext2/ext3/ext4 file system
	# e2fsck [OPTIONS]  device
		# -y:對全部問題自動回答爲yes
		# -f:即便文件系統處於clean狀態,也要強制進行檢測
							
# fsck:check and repair a Linux file system
	# -t fstype:指明文件系統類型
		fsck -t ext4 = fsck.ext4
	# -a:無須交互而自動修復全部錯誤
	# -r:交互式修復

xfs文件系統

CentOS 6 使用xfs文件系統以下命令:

事先準備:
	# cd /etc/yum.repos.d/
	# wget  http://172.16.0.1/centos6.7.repo 
	# mv CentOS-Base.repo CentOS-Base.repo.bak
安裝:# yum  -y  install  xfsprogs
建立:# mkfs.xfs
檢測:# fsck.xfs

定位設備

blkid命令:
	# blkid device
		# blkid -L LABEL:根據LABEL定位設備
		# blkid -U UUID:根據UUID定位設備

swap文件系統

# Linux上的交換分區必須使用獨立的文件系統,且文件系統的System ID必須爲82
			
# 建立swap設備:mkswap命令
	# mkswap [OPTIONS]  device
		-L LABEL:指明卷標
		-f:強制

特殊說明

Windows沒法識別Linux的文件系統,所以,存儲設備須要兩種系統之間交叉使用時,應該使用windows和Linux同時支持的文件系統:fat32(vfat)。

# mkfs.vfat device

文件系統的使用

要使用文件系統,首先須要對文件系統進行掛載。

經常使用命令:
	# mount
	# umount

掛載說明

根文件系統這外的其它文件系統要想可以被訪問,都必須經過「關聯」至根文件系統上的某個目錄來實現,此關聯操做即爲「掛載」;此目錄即爲「掛載點」。

掛載點:
	# mount_point,用於做爲另外一個文件系統的訪問入口

注意事項:
	# (1) 事先存在
	# (2) 應該使用未被或不會被其它進程使用到的目錄
	# (3) 掛載點下原有的文件將會被隱藏

掛載查看

查看內核追蹤到的已掛載的全部設備。

# mount 
# cat  /etc/mtab
# cat  /proc/mounts

mount(掛載)

命令格式:
	# mount  [-nrw]  [-t vfstype]  [-o options]  device  dir
命令選項:
	# -r:readonly,只讀掛載; 
	# -w:read and write, 讀寫掛載; 
	# -n:默認狀況下,設備掛載或卸載的操做會同步更新至/etc/mtab文件中;-n用於禁止此特性
					
	# -t vfstype:指明要掛載的設備上的文件系統的類型
		# 多數狀況下可省略,此時mount會經過blkid來判斷要掛載的設備的文件系統類型
		
	# -a:自動掛載全部支持自動掛載的設備(定義在了/etc/fstab文件中,且掛載選項中有auto功能)
				
	# -L LABEL:掛載時以卷標的方式指明設備;
		# mount -L LABEL dir
						
	# -U UUID:掛載時以UUID的方式指明設備;
		# mount -U UUID dir
-o options:掛載選項
	# sync/async:同步/異步操做
	# atime/noatime:文件或目錄在被訪問時是否更新其訪問時間戳
	# diratime/nodiratime:目錄在被訪問時是否更新其訪問時間戳
	# remount:從新掛載 
	# acl:支持使用facl功能
		# mount -o acl  device dir 
		# tune2fs  -o  acl  device 
						
	# ro:只讀 
	# rw:讀寫 
	# dev/nodev:此設備上是否容許建立設備文件
	# exec/noexec:是否容許運行此設備上的程序文件
	# auto/noauto:是否支持自動掛載,是否支持-a選項
	# user/nouser:是否容許普通用戶掛載此文件系統
	# suid/nosuid:是否容許程序文件上的suid和sgid特殊權限生效			
					
	# 默認配置defaults:
		# Use default options: rw, suid, dev, exec, auto, nouser, async, and relatime.
使用技巧:
# 能夠實現將目錄綁定至另外一個目錄上,做爲其臨時訪問入口
	# mount --bind  源目錄  目標目錄
光盤設備文件:
	# IDE: /dev/hdc
	# SATA: /dev/sr0

	# 光盤的符號連接文件:
		# /dev/cdrom
		# /dev/cdrw
		# /dev/dvd
		# /dev/dvdrw

掛載光盤:
	# mount  -r  /dev/cdrom  mount_point			

光盤設備文件:/dev/cdrom, /dev/dvd

卸載或彈出磁盤命令
	# eject

建立ISO文件
	# cp/dev/cdrom/root/centos7.iso
	# mkisofs -r -o /root/etc.iso /etc

刻錄光盤
	# wodim–v –eject centos.iso
掛載U盤:
	事先識別U盤的設備文件

查看USB設備是否識別
	# lsusb
	
被內核探測爲SCSI設備
	# /dev/sdaX、/dev/sdbX、或相似的設備文件
	
在圖形環境中自動掛載
	# 圖標在[計算機]窗口中建立
	# 掛載在/run/media/<user>/<label>
	
手動掛載
	# mount /dev/sdb1 /mnt
掛載本地的迴環設備:
	# mount  -o  loop  /PATH/TO/SOME_LOOP_FILE   MOUNT_POINT

umount(卸載)

命令格式:
	# umount  device|dir
查看掛載狀況
	# findmntMOUNT_POINT|device
注意:正在被進程訪問到的掛載點沒法被卸載
	# 查看被哪一個或哪些進程所戰用:
		# lsof  MOUNT_POINT
		# fuser -v  MOUNT_POINT
					
	# 終止全部正在訪問某掛載點的進程:
		# fuser  -km  MOUNT_POINT

交換分區的啓用和禁用

交換分區是系統RAM的補充。

基本設置包括:
	# 建立交換分區或者文件
	# 使用 mkswap 寫入特殊簽名
	# 在 /etc/fstab 文件中添加適當的條目
	# 使用 swapon-a 激活交換空間
建立交換分區的命令:mkswap
		
啓用:swapon
	# swapon  [OPTION]  [DEVICE]
		# -a:定義在/etc/fstab文件中的全部swap設備
		# -p PRIORITY:指定優先級
			# /etc/fstab:pri=value
				
禁用:swapoff
	# swapoff DEVICE

swap優先級

  1. 能夠指定swap分區0到32767的優先級,值越大優先級越高
  2. 若是用戶沒有指定,那麼核心會自動給swap指定一個優先級,這個優先級從-1開始,每加入一個新的沒有用戶指定優先級的swap,會給這個優先級減一
  3. 先添加的swap的缺省優先級比較高,除非用戶本身指定一個優先級,而用戶指定的優先級(是正數)永遠高於核心缺省指定的優先級(是負數)
  4. 優化性能:分佈存放,高性能磁盤存放

自動掛載文件(/etc/fastab)

設定除根文件系統之外的其它文件系統可以開機時自動掛載:/etc/fstab文件。

[root@leemumu ~]# cat /etc/fstab

#
# /etc/fstab
# Created by anaconda on Mon Jun 24 00:50:10 2019
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root                   /      xfs  defaults  0 0
UUID=a66f32bb-5a9b-459d-91d8-93d8a37f5afa /boot  xfs  defaults  0 0
/dev/mapper/centos-home                   /home  xfs  defaults  0 0
/dev/mapper/centos-swap                   swap   swap defaults  0 0
fstab文件:
		設備 	掛載點 	文件系統類型 	掛載選項  	轉儲頻率  	自檢次序
# 每行定義一個要掛載的文件系統及相關屬性
	6個字段:
	(1) 要掛載的設備:
			設備文件
			LABEL:LABEL=" "
			UUID:UUID=" "
			僞文件系統:如sysfs, proc, tmpfs等
			# 儘可能使用 UUID 表明設備文件,不會在設備重啓時進行改變,部分設備名稱會隨着系統重啓進行改變
	(2) 掛載點 
			swap類型的設備的掛載點爲swap
	(3) 文件系統類型;
	(4) 掛載選項
		defaults:使用默認掛載選項
			若是要同時指明多個掛載選項,彼此間以事情分隔
				例如:defaults,acl,noatime,noexec
	(5) 轉儲頻率
			0:從不備份
			1:天天備份
			2:每隔一天備份
	(6) 自檢次序
			0:不自檢
			1:首先自檢,一般只能是根文件系統可用1
			2:次級自檢
		...


# mount  -a:可自動掛載定義在此文件中的所支持自動掛載的設備
寫入此命令可實現開機自動掛載:
	# echo "/dev/sdb /mnt/mydata ext4 defaults 0 0" >> /etc/fstab

定位設備命令(或查詢設備UUID和LABEL):blkid

blkid命令:

# blkid device          # 查詢設備的 UUID 和 LABEL
# blkid  -L LABEL       # 根據LABEL定位設備
# blkid  -U  UUID       # 根據UUID定位設備
[root@LeeMumu ~]# blkid /dev/sdc1
/dev/sdc1: UUID="124c758d-e223-400f-8bea-8c62ea4b9aa9" TYPE="swap" 
[root@LeeMumu ~]# blkid -U 124c758d-e223-400f-8bea-8c62ea4b9aa9
/dev/sdc1

掛載點和/etc/fstab

# 配置文件系統體系
# 被mount、fsck和其它程序使用
# 系統重啓時保留文件系統體系
# 能夠在設備欄使用文件系統卷標
# 使用 mount -a 可自動掛載定義在此文件中的所支持自動掛載的設

移動介質說明

  • 掛載意味着使外來的文件系統看起來如同是主目錄樹的一部分
  • 訪問前、介質必須被掛載
  • 摘除時,介質必須被卸載
  • 按照默認設置,非根用戶只能掛載某些設備(光盤、DVD、軟盤、USB等等)
  • 掛載點一般在/media 或/mnt下

du

查看某目錄整體空間佔用狀態:
	# du [OPTION]... DIR
	# -h: human-readable
	# -s: summary --max-depth

df

文件系統空間佔用等信息的查看工具:
	# df [OPTION]... [FILE]...
	# -H 以1000爲單位
	# -T 文件系統類型
	# -P: 以Posix兼容的格式輸出
	# -l:僅顯示本地文件的相關信息;
	# -h:human-readable
	# -i:顯示inode的使用狀態而非blocks(inodesinstead of blocks)

示例1

建立一個10G的分區,並格式化爲ext4文件系統。

  1. block大小爲2048;預留空間爲2%,卷標爲MYDATA。
  2. 掛載至/mydata目錄,要求掛載時禁止程序自動運行,且不更新文件的訪問時間戳。
  3. 可開機自動掛載。
一、先在VM裏添加一塊10G的硬盤。
二、而後對其建立文件系統,指定相關參數。
三、修改fstab文件,實現開機自動掛載此硬盤。
[root@LeeMumu ~]# fdisk -l                                      # 查看添加的設備爲 /dev/sdb

Disk /dev/sda: 128.8 GB, 128849018880 bytes, 251658240 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000b7260

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200   251658239   124779520   8e  Linux LVM

Disk /dev/sdb: 10.7 GB, 10737418240 bytes, 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

[root@LeeMumu ~]# mke2fs -t ext4 -b 2048 -L MYDATA -m 2 /dev/sdb  # 建立文件系統
mke2fs 1.42.9 (28-Dec-2013)
/dev/sdb is entire device, not just one partition!
Proceed anyway? (y,n) y
Filesystem label=MYDATA
OS type: Linux
Block size=2048 (log=1)
Fragment size=2048 (log=1)
Stride=0 blocks, Stripe width=0 blocks
655360 inodes, 5242880 blocks
104857 blocks (2.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=273678336
320 block groups
16384 blocks per group, 16384 fragments per group
2048 inodes per group
Superblock backups stored on blocks: 
	16384, 49152, 81920, 114688, 147456, 409600, 442368, 802816, 1327104, 
	2048000, 3981312

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done  

[root@LeeMumu ~]# mount -o noexec -o noatime -o auto /dev/sdb /mnt/mydata          # 進行掛載
[root@LeeMumu ~]# mount
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime,seclabel)
... ...
/dev/sdb on /mnt/mydata type ext4 (rw,noexec,noatime,seclabel,data=ordered)
[root@LeeMumu ~]# cat /proc/partitions  
major minor  #blocks  name

   8        0  125829120 sda
   8        1    1048576 sda1
   8        2  124779520 sda2
  11        0   10491904 sr0
   8       16   10485760 sdb
 253        0   52428800 dm-0
 253        1    2097152 dm-1
 253        2   70246400 dm-2
[root@LeeMumu ~]# echo "/dev/sdb /mnt/mydata ext4 defaults 0 0" >> /etc/fstab        # 設置開機啓動
[root@LeeMumu ~]# cat /etc/fstab  

#
# /etc/fstab
# Created by anaconda on Sat Jun 22 20:09:20 2019
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root /                       xfs     defaults        0 0
UUID=6a3f1b5d-5a4b-47d7-ab6d-ce610bcaf413 /boot                   xfs     defaults        0 0
/dev/mapper/centos-home /home                   xfs     defaults        0 0
/dev/mapper/centos-swap swap                    swap    defaults        0 0
/dev/sdb /mnt/mydata ext4 defaults 0 0
[root@LeeMumu ~]# mount -a                                                              # 掛載文件中的設備

示例2

建立一個大小爲1G的swap分區,並啓用。

一、添加2G的硬盤。
二、進行分區,選擇文件類型爲 swap
三、建立文件系統
四、啓用
五、設置自動掛載
[root@LeeMumu ~]# fdisk -l              
Disk /dev/sdc: 2147 MB, 2147483648 bytes, 4194304 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

[root@LeeMumu ~]# fdisk /dev/sdc                          # 建立分區
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0xefb86f75.

Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-4194303, default 2048): 2048
Last sector, +sectors or +size{K,M,G} (2048-4194303, default 4194303): +1G
Partition 1 of type Linux and of size 1 GiB is set

Command (m for help): t
Selected partition 1 
Hex code (type L to list all codes): 82
Changed type of partition 'Linux' to 'Linux swap / Solaris'

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks. 
[root@LeeMumu ~]# fdisk -l
Disk /dev/sdc: 2147 MB, 2147483648 bytes, 4194304 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0xefb86f75

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1            2048     2099199     1048576   82  Linux swap / Solaris

[root@LeeMumu ~]# mkswap /dev/sdc1                       # 建立文件系統
Setting up swapspace version 1, size = 1048572 KiB
no label, UUID=124c758d-e223-400f-8bea-8c62ea4b9aa9
[root@LeeMumu ~]# 
[root@LeeMumu ~]# swapon /dev/sdc1                       # 激活設備
[root@LeeMumu ~]# 
[root@LeeMumu ~]# swap -a
-bash: swap: command not found
[root@LeeMumu ~]# lsblk                                  # 列出塊設備信息
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0  120G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0  119G  0 part 
  ├─centos-root 253:0    0   50G  0 lvm  /
  ├─centos-swap 253:1    0    2G  0 lvm  [SWAP]
  └─centos-home 253:2    0   67G  0 lvm  /home
sdb               8:16   0   10G  0 disk /mnt/mydata
sdc               8:32   0    2G  0 disk 
└─sdc1            8:33   0    1G  0 part [SWAP]
sr0              11:0    1   10G  0 rom  
[root@LeeMumu ~]# swapon -s                              # 激活Linux系統中交換空間
Filename				Type		Size	Used	Priority
/dev/dm-1                              	partition	2097148	0	-2
/dev/sdc1                              	partition	1048572	0	-3
[root@LeeMumu ~]# free                                   # 顯示內存的使用狀況
              total        used        free      shared  buff/cache   available
Mem:         995924      146788      693604        7788      155532      675888
Swap:       3145720           0     3145720
[root@LeeMumu ~]# echo "UUID=124c758d-e223-400f-8bea-8c62ea4b9aa9 swap swap defaults 0 0" >> /etc/fstab  # 設置自動掛載
[root@LeeMumu ~]# cat /etc/fstab 

#
# /etc/fstab
# Created by anaconda on Sat Jun 22 20:09:20 2019
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root /                       xfs     defaults        0 0
UUID=6a3f1b5d-5a4b-47d7-ab6d-ce610bcaf413 /boot                   xfs     defaults        0 0
/dev/mapper/centos-home /home                   xfs     defaults        0 0
/dev/mapper/centos-swap swap                    swap    defaults        0 0
/dev/sdb /mnt/mydata ext4 defaults 0 0
UUID=124c758d-e223-400f-8bea-8c62ea4b9aa9 swap swap defaults 0 0
[root@LeeMumu ~]# mount -a                                  # 激活 fstab

示例3

建立一個20G的文件系統,塊大小爲2048,文件系統ext4,卷標爲TEST,要求此分區開機後自動掛載至/testing目錄,且默認有acl掛載選項。

# 建立20G分區

# 格式化
	mke2fs -t ext4 -b 2048 -L 'TEST' /dev/DEVICE
	
# 編輯 /etc/fstab 文件
	LABEL='TEST' 	/testing 	ext4 	defaults,acl 	0 0

示例4

建立一個5G的文件系統,卷標HUGE,要求此分區開機自動掛載至/mogdata目錄,文件系統類型爲ext3。

示例5

寫一個腳本,完成以下功能:(1) 列出當前系統識別到的全部磁盤設備;(2) 如磁盤數量爲1,則顯示其空間使用信息;不然,則顯示最後一個磁盤上的空間使用信息。

if [ $disks -eq 1 ]; then 
	fdisk -l /dev/[hs]da
else 
	fdisk -l $(fdisk -l /dev/[sh]d[a-z] | grep -o "^Disk /dev/[sh]d[a-]" | tail -1 | cut -d' ' -f2)
fi