1 分区工具fdisk
fdisk -l [-u] [device...] 查看分区
fdisk [device...] 管理MBR分区
子命令:
- p 分区列表
- t 更改分区类型
- n 创建新分区
- d 删除分区
- v 校验分区
- u 转换单位
- w 保存并退出
- q 不保存并退出
2 Linux常用文件系统
- ext2:Extended file system适用于那些分区容量不是太大,更新也不频繁的情况,例如/boot分区
- ext3:是ext2的改进版本,其支持日志功能,能够帮助系统从非正常关机导致的异常中恢复
- ext4:是ext文件系统的最新版。提供了很多新的特性,包括纳秒级的时间戳、创建和使用巨型文件(16TB)、最大1EB的文件系统,以及速度的提升
- xfs:SGI,支持最大8EB的文件系统
- swap
- iso9660光盘
- btrfs(oracle)
- reiserfs
常用的文件系统特性
-
FAT32:最多只能支持16TB的文件系统个4G的文件
-
NTFS:最多只能支持16EB的文件系统和16EB的文件
-
EXT3:
- 最多只能支持32TB的文件系统和2TB的文件,实际只能容纳2TB的文件系统和16GB的文件
- Ext3目前只支持32000个子目录
- Ext3文件系统使用32位空间记录快数量和inode数量
- 当数据写入到Ext3文件系统时,Ext3的数据块分配器每次只能分配一个4kb的快
-
EXT4:
- EXT4是linux系统下的日志文件系统,是EXT3文件系统的后续版本
- Ext4的文件系统容量达到1EB,而单个文件则达到16TB
- 理论上支持无线数量的子目录
- Ext4文件系统使用64位空间记录快数量和inode数量
- Ext4的多块分配器支持一次第哦啊用分配多个数据块
- 修复速度更快
-
XFS:
- 根据所记录的日志在很短的时间内迅速恢复磁盘文件内容
- 用优化算法,日志记录对整体文件操作影响非常小
- 是一个全64-bit的文件系统,最大可以支持8EB的文件系统,而支持单个文件达到8EB
- 能以接近裸设备I/O的性能存储数据
3 创建文件系统工具:
-
mkfs命令:
-
mkfs.FS_TYPE /dev/DEVICE
ext4
xfs
btrfs
vfat -
mkfs -t .FS_TYPE /dev/DEVICE
-L 'LABEL' 设置卷标
-
-
mke2fs:ext系列文件系统专用管理工具
常用选项:
- -t {ext2|ext3|ext4|xfs} 指定文件系统类型
- -b {1024|2048|4096} 指定块block大小
- -L 'LABEL' 设置卷标
- -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 关闭指定特性
4 挂载
挂载:将额外文件系统与根文件系统某现存的目录建立起关联关系,进而使得此目录做为其它文件访问入口的行为
卸载:为解除此关联关系的过程
把设备关联挂载点:mount Point
挂载点下原有文件在挂载完成后会被临时隐藏,因此,挂载点目录一般为空
进程正在使用中的设备无法被卸载
4.1 挂载文件系统mount
格式:
mount [-fnrsvw] [-t vfstype] [-o options] device mountpoint
device:指明要挂载的设备
- 设备文件:例如:/dev/sda5
- 卷标:-L 'LABEL',例如 -L 'MYDATA'
- UUID:-U 'UUID':例如:-U d25d54cf-a6a9-4cd8-842a-2fac98f6bd72
- 伪文件系统名称,proc,sysfs,devtmpfs,configfs
mountpoint:挂载点目录必须事先存在,建议使用空目录
mount常用命令选项:
- -t fstype 指定要挂载的设备上的为你教案系统类型,如:ext4,xfs
- -r readonly,只读挂载
- -w read and write,读写挂载
- -n 不更新/etc/mtab,mount不可见
- -a 自动挂载所有支持自动挂载的设备(定义在了/etc/fstab文件中,且挂载选项中有auto功能)
- -L 'LABEL' 以卷标指定挂载设备
- -u 'UUID' 以UUID指定要挂载的设备
- -B,--bind 绑定到目录到另一目录上
- -o options (挂载文件系统的选项),多个选项使用逗号分割
async 异步模式,内存更改时,写入缓存区buffer ,过一段时间再写到磁盘中,效率高,但不安全
sync 同步模式,内存更改时,同时写磁盘,安全,但效率低下
atime/noatime 包含目录和文件
diratime/nodiratime 目录的访问时间戳
auto/noauto 是否支持开机自动挂载,是否支持-a选项
exec/noexec 是否支持在文件系统上运行应用程序
dev/nodev 是否支持在此文件系统上使用设备文件
suid/nosuid 是否支持suid和sgid权限
remount 重新挂载
ro/rw 只读/读写
user/nouser 是否允许普通用户挂载此设备,/etc/fstab使用
acl/noacl 启用此文件系统上的acl功能
loop 使用loop设备
_netdev 当网络可用时才对网络资源进行挂载,如:NFS文件系统
defaults 相当于rw,suid,dev,exec,auto,nouser,async
挂载规则:
- 一个挂载点同—时间只能挂载一个设备
- 一个挂载点同一时间挂载了多个设备,只能看到最后一个设备的数据,其它设备上的数据将被隐藏
- —个设备可以同时挂载到多个挂载点
- 通常挂载点一般是已存在空的目录
4.2 卸载文件系统umount
卸载时:可使用设备,也可以使用挂载点
umount 设备名|挂载点
5 逻辑卷管理器(LVM)
5.1 LVM介绍
LVM: Logical Volume Manager可以允许对卷进行方便操作的抽象层,包括重新设定文件系统的大小,允许在多个物理设备间重新组织文件系统
LVM可以弹性的更改LVM的容量
通过交换PE来进行资料的转换,将原来的LV内的PE转移到其他的设备中来降低LV的容量,或将其他设备中的PE加到LV中以加大容量
实现过程
- 将设备指定为物理卷
- 用一个或者多个物理卷来创建一个卷组,物理卷使用固定大小的物理区域(Physical Extend,PE)来定义的
- 在物理卷上创建的逻辑卷,是由物理区域(PE)组成
- 可以在逻辑卷上创建文件系统并挂载

第一个路基卷对应的设备名:/dev/dm-#
dm:device mapper,将一个或多个底层块设备组织成一个逻辑设备的模块
软连接:
- /dev/mapper/VG_NAME-LV_NAME
- /dev/VG_NAME/LV_NAME
/dev/mapper/vol0-root
/dev/vol0/root
5.2 实现逻辑卷
[root@centos8 ~]# yum install lvm2 -y # 安装工具包
5.2.1 pv管理工具
显示pv信息
pvs:简要pv信息显示
pvdisplay
创建pv
pvcreate /dev/DEVICE
删除pv
pvremove /dev/DEVICE
5.2.2 vg管理工具
显示卷组
vgs
vgdisplay
创建卷组
vgcreate [-s #[kKmMgGtTpPeE]] voluemeGroupName PhysicalDevicePath [PhysicalDevicePath...]
# 示例
vgcreate -s 16M vg0 /dev/sdb /dev/sdc # 指定PE的大小,默认为4M
管理卷组
vgextend voluemeGroupName PhysicalDevicePath [PhysicalDevicePath...]
vgreduce voluemeGroupName PhysicalDevicePath [PhysicalDevicePath...]
删除卷组
- 先做pvmove
- 再做vgremove
5.2.3 lv管理工具
显示逻辑卷
lvs
lvdisplay
创建逻辑卷
lvcreate -L #[mMgGtT] -n name volumegroup
例
lvcreate -l 60%VG -m mylv testvg lvcreate -l 100%FREE -n yourlv testvg
删除逻辑卷
lvremove /dev/VG_NAME/LV_NAME
重设文件系统大小
fsadm [options] resize <device> [<new_size>[BKMGTPE]]
resize2fs [-f] [-F] [-M] [-P] [-p] device [new_size]
xfs_growfs /mountpoint
例
# 创建物理卷
pvcreate /dev/sda3
# 为卷组分配物理卷
vgcretae vg0 /dev/sda3
# 从卷组创建逻辑卷
lvcreate -L 256M -n data vg0
# mkfs.xfs /dev/vg0/data
# 挂载
mount /dev/vg0/data /mnt/data
5.2.4 扩展和缩减逻辑卷
5.2.4.1 在线扩展逻辑卷
# 两步实现
# 第一步实现逻辑卷的空间扩展
lvextend -L [+]#[mMgGtT] /dev/VG_NAME/LV_NAME
#第二步实现文件系统的扩展
# 针对ext系列
resize2fs /dev/VG_NAME/LV_NAME
# 针对xfs
xfs_growfs mountpoint
# 一步实现空间和文件系统的扩展
lvresize -r -1 +100%FREE /dev/VG_NAME/LV_NAME
5.2.4.2 缩减逻辑卷
注意:缩减有数据损坏的风险,建议先备份再缩减,xfs文件系统不支持缩减
# 先取消挂载
umount /dev/VG_NAME/LV_NAME
# 检查文件系统完整性
e2fsck -f /dev/VG_NAME/LV_NAME
# 缩减文件系统
resize2fs /dev/VG_NAME/LV_NAME #[nMgGTt]
# 缩减逻辑卷
lvreduce -L [-]#[nMgGtT] /dev/VG_NAME/LV_NAME
# 恢复挂载
mount /dev/VG_NAME/LV_NAME mountpoint
练习题:
1、创建一个2G的文件系统,块大小为2048byte,预留1%可用空间,文件系统 ext4,卷标为TEST,要求此分区开机后自动挂载至/test目录,且默认有acl挂载选项
echo 'n\np\n\n\n+2G\nw'|fdisk /dev/sda
mkfs.ext4 -b 2048 -m 1 -L TEST /dev/sda1
vim /etc/fstab
UUID= /test ext4 defaults,acl 0 0
mount -a
2、创建一个至少有两个PV组成的大小为20G的名为testvg的VG;要求PE大小 为16MB,而后在卷组中创建大小为5G的逻辑卷testlv;挂载至/users目录
[root@centos8 ~]# pvcreate /dev/sdd1 /dev/sde1
Physical volume "/dev/sdd1" successfully created.
Physical volume "/dev/sde1" successfully created.
[root@centos8 ~]# vgcreate testvg -s 16M /dev/sdd1 /dev/sde1
Volume group "testvg" successfully created
[root@centos8 ~]# lvcreate -n testlv -L 5G /dev/testvg
Logical volume "testlv" created.
[root@centos8 ~]# mkfs.ext4 /dev/testvg/testlv
mke2fs 1.44.6 (5-Mar-2019)
Creating filesystem with 1310720 4k blocks and 327680 inodes
Filesystem UUID: 856ed22e-d4cc-49f8-90b6-948c9e491870
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736
Allocating group tables: done
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done
[root@centos8 ~]# mkdir /users
[root@centos8 ~]# echo 'UUID=856ed22e-d4cc-49f8-90b6-948c9e491870 /users ext4 defaults 0 0' >> /etc/fstab
[root@centos8 ~]# mount -a
[root@centos8 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/testvg-testlv 4.9G 20M 4.6G 1% /users
[root@centos8 ~]# vgdisplay
--- Volume group ---
VG Name testvg
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 2
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 1
Max PV 0
Cur PV 2
Act PV 2
VG Size <19.97 GiB
PE Size 16.00 MiB
Total PE 1278
Alloc PE / Size 320 / 5.00 GiB
Free PE / Size 958 / <14.97 GiB
VG UUID pX1vzh-UlQp-fomv-aWyZ-oPcx-xdkt-lCj80Q
[root@centos8 ~]# lvdisplay
--- Logical volume ---
LV Path /dev/testvg/testlv
LV Name testlv
VG Name testvg
LV UUID wqJVJk-0mLx-pgve-62FD-Up6N-i2ii-x3m3i2
LV Write Access read/write
LV Creation host, time centos8, 2021-03-28 18:32:30 +0800
LV Status available
# open 1
LV Size 5.00 GiB
Current LE 320
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:3







Comments | NOTHING