文件系统操作命令
查看文件系统信息
df -h # 显示磁盘空间使用情况
lsblk # 列出块设备信息
mount # 显示已挂载的文件系统
file -s /dev/sda1 # 查看分区文件系统类型文件系统管理
mkfs.ext4 /dev/sdb1 # 创建ext4文件系统
fsck /dev/sda1 # 检查修复文件系统
tune2fs -l /dev/sda1 # 显示ext文件系统信息
resize2fs /dev/sda1 # 调整ext文件系统大小
xfs_growfs /dev/sda1 # 调整xfs文件系统大小
mkswap /dev/sda1 # 交换分区格式化挂载与卸载
mount /dev/sdb1 /mnt/data # 挂载文件系统
umount /mnt/data # 卸载文件系统
mount -a # 挂载/etc/fstab中所有文件系统
swapon /dev/sda1 # 挂载交换分区
swapoff /dev/sda1 # 取消交分区开机自动挂载 /etc/fstab
在 Linux 系统中,/etc/fstab 文件用于定义文件系统的静态挂载配置,使得系统在启动时能够自动挂载指定的文件系统。
字段解析
<file system> <mount point> <type> <options> <dump> <pass><file system>:文件系统标识符,可以是设备名称(如/dev/sda1)、UUID 或标签。
<mount point>:文件系统的挂载点。
<type>:文件系统的类型(如ext4、xfs、swap等)。
<options>:挂载选项(如defaults、rw、ro等)。
defaults:使用默认挂载选项(rw、suid、dev、exec、auto、nouser、async)。noauto:不自动挂载,需要手动挂载。user:允许普通用户挂载。ro:只读挂载。rw:读写挂载。
<dump>:用于dump命令的备份选项,通常设置为0(不备份)。
- 0:代表不要做dump备份
- 1:代表要每天进行dump的操作
- 2:代表不定日期的进行dump操作
<pass>:文件系统检查顺序,通常设置为0或1(/根文件系统设置为1,其他文件
- 0:不要检验
- 1:最早检验(一般根目录会选择)
- 2:1级别检验完成之后进行检验
磁盘分区
MBR磁盘分区流程步骤
1、查看添加硬盘设备
ll /dev/sd*2、进入交互模式
fdisk /dev/sdb3、交互模式-添加扩展分区
输入选项n,主分区选择p,扩展分区选择e
[root@localhost ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.39.1)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
命令(输入 m 获取帮助):n
分区类型
p 主分区 (0个主分区,0个扩展分区,4空闲)
e 扩展分区 (逻辑分区容器)
选择 (默认 p):e
分区号 (1-4, 默认 1):
第一个扇区 (2048-20971519, 默认 2048):
最后一个扇区,+/-sectors 或 +size{K,M,G,T,P} (2048-20971519, 默认 20971519):
创建了一个新分区 1,类型为“Extended”,大小为 10 GiB。4、交互模式-添加逻辑分区
输入选项n,分区类型选择l。如果没有可分配空间会默认添加逻辑分区
命令(输入 m 获取帮助):n
所有主分区的空间都在使用中。
添加逻辑分区 5
第一个扇区 (4096-20971519, 默认 4096):
最后一个扇区,+/-sectors 或 +size{K,M,G,T,P} (4096-20971519, 默认 20971519):
创建了一个新分区 5,类型为“Linux”,大小为 10 GiB。5、查看分区
输入指令p
命令(输入 m 获取帮助):p
Disk /dev/sdb:10 GiB,10737418240 字节,20971520 个扇区
磁盘型号:VMware Virtual S
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x4a507e20
设备 启动 起点 末尾 扇区 大小 Id 类型
/dev/sdb1 2048 20971519 20969472 10G 5 扩展
/dev/sdb5 4096 20971519 20967424 10G 83 Linux6、交互模式-保存退出
输入指令w
命令(输入 m 获取帮助):w
分区表已调整。
将调用 ioctl() 来重新读分区表。
正在同步磁盘。7、分区格式化
[root@localhost ~]# mkfs.ext4 /dev/sdb5
mke2fs 1.47.0 (5-Feb-2023)
创建含有 2620928 个块(每块 4k)和 655360 个 inode 的文件系统
文件系统 UUID:30b5655b-24c3-462f-95ee-71065794e1b3
超级块的备份存储于下列块:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632
正在分配组表:完成
正在写入 inode表:完成
创建日志(16384 个块):完成
写入超级块和文件系统账户统计信息:已完成8、创建挂载目录
mkdir /data9、查看设备信息
根据自己操作系统选择设备路径
blkid /dev/sdb510、挂载磁盘
mount /dev/sdb5 /data11、检测
df -Th12、开机自启动
永久生效需在/etc/fstab添加配置
/dev/sdb5 /data ext4 defaults 0 0GPT磁盘分区流程步骤
1、查看添加硬盘设备/dev/sdc
[root@localhost ~]# ll /dev/sd*
brw-rw----. 1 root disk 8, 0 4月17日 14:30 /dev/sda
brw-rw----. 1 root disk 8, 1 4月17日 14:30 /dev/sda1
brw-rw----. 1 root disk 8, 2 4月17日 14:30 /dev/sda2
brw-rw----. 1 root disk 8, 3 4月17日 14:30 /dev/sda3
brw-rw----. 1 root disk 8, 16 4月17日 14:57 /dev/sdb
brw-rw----. 1 root disk 8, 17 4月17日 14:57 /dev/sdb1
brw-rw----. 1 root disk 8, 21 4月17日 14:59 /dev/sdb5
brw-rw----. 1 root disk 8, 32 4月17日 14:30 /dev/sdc2、进入交互模式
parted /dev/sdc3、创建新的磁盘卷标设置gpt
(parted) mklabel
新的磁盘卷标类型? gpt4、设置分区名称
(parted) mkpart
分区名称? []? yunjisuan5、设置文件系统类型
文件系统类型? [ext2]? ext46、设置起始点
起始点? 07、设置结束点
结束点? 10G
警告: 所产生的分区没有适当为获得最佳性能而对齐:34s % 2048s != 0s
忽略/Ignore/放弃/Cancel? ignore8、退出
(parted) q
信息: 你可能需要 /etc/fstab。9、分区格式化
[root@localhost ~]# mkfs.ext4 /dev/sdc1
mke2fs 1.47.0 (5-Feb-2023)
创建含有 2441402 个块(每块 4k)和 610800 个 inode 的文件系统
文件系统 UUID:f07106e3-7c69-4ce3-86de-d1256a770a1b
超级块的备份存储于下列块:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632
正在分配组表:完成
正在写入 inode表:完成
创建日志(16384 个块):完成
写入超级块和文件系统账户统计信息:已完成10、查看设备信息
[root@localhost ~]# blkid /dev/sdc1
/dev/sdc1: UUID="f07106e3-7c69-4ce3-86de-d1256a770a1b" BLOCK_SIZE="4096" TYPE="ext4" PARTLABEL="yunjisuan" PARTUUID="b3bd25a6-360d-4433-ae17-1a37ca039286"11、创建挂载目录
mkdir /data12、挂载
mount /dev/sdc1 /data13、检测挂载
df -Th14、开机自启动
永久生效需在/etc/fstab添加配置
/dev/sdc1 /data ext4 defaults 0 0swap交换分区流程
1、查看增加设备
ll /dev/sd*2、进入磁盘分区交互模式
fdisk /dev/sdb3、交互模式-添加主分区
命令(输入 m 获取帮助):n
分区类型
p 主分区 (0个主分区,0个扩展分区,4空闲)
e 扩展分区 (逻辑分区容器)
选择 (默认 p):4、交互模式-设置分区号和扇区大小
分区号 (1-4, 默认 1):
第一个扇区 (2048-20971519, 默认 2048):
最后一个扇区,+/-sectors 或 +size{K,M,G,T,P} (2048-20971519, 默认 20971519):5、交互模式-更改分区类型
命令(输入 m 获取帮助):t
已选择分区 1
Hex 代码或别名(输入 L 列出所有代码):82
# 82为Linux swap / So6、交互模式-查看分区并保存
命令(输入 m 获取帮助):p
命令(输入 m 获取帮助):w7、格式化交换分区
mkswap /dev/sdb18、查看文件系统信息
blkid /dev/sdb19、开启交换分区
# 创建挂载目录
mkdir /data
# 激活
swapon /dev/sdb1 /data10、开机自动挂载
永久生效需在/etc/fstab添加配置
/dev/sdb1 /data none swap sw 0 0LVM 逻辑卷
创建 LVM 逻辑卷的步骤
1.挂载点
df -h
lsblk2. 创建物理卷
使用 pvcreate 命令将磁盘或分区转换为物理卷。例如:
# 创建
pvcreate /dev/sdb
# 查看
pvdisplay /dev/sdb这条命令将 /dev/sdb 磁盘转换为 LVM 物理卷。
3. 创建卷组
使用 vgcreate 命令创建卷组,并将物理卷添加到卷组中。例如:
vgcreate yunjisuan /dev/sdb这条命令创建了一个名为 yunjisuan 的卷组,并将 /dev/sdb 物理卷添加到该卷组中。
4. 创建逻辑卷
使用 lvcreate 命令在卷组中创建逻辑卷。例如:
lvcreate -n datalv -L +5G yunjisuan这条命令在 yunjisuan 卷组中创建了一个名为 datalv、大小增加 5GB 的逻辑卷。
注意:+5G是在原基础上增加,5G是整体大小为5G
5. 格式化逻辑卷
逻辑卷创建完成后,需要格式化为文件系统
mkfs.ext4 /dev/yunjisuan/datalv命令将逻辑卷格式化为 ext4 文件系统
6.挂载逻辑卷
mkdir /data
mount /dev/yunjisuan/datalv /data第一条命令创建挂载点 /data,第二条命令将逻辑卷挂载到该挂载点。
7.开机自动挂载
mount挂载是临时操作,下次系统重启不会自动挂载,可编辑/etc/fstab文件或者/etc/rc.d.rc.local
# /etc/fstab
/dev/yunjisuan/datalv /data ext4 defaults 0 0
# /etc/rc.d/rc.local
mount /dev/yunjisuan/datalv /data8.检测
df -Th调整逻辑卷大小步骤
扩大逻辑卷
使用
lvextend命令扩展逻辑卷的大小。例如: bashlvextend --size +2G /dev/datavg/datalv这条命令将逻辑卷
datalv扩大 2GB。调整文件系统大小以适应新的逻辑卷大小。
对于 ext4 文件系统,可以使用
resize2fs命令:bashresize2fs /dev/datavg/datalv对于 XFS 文件系统,可以使用
xfs_growfs命令:bashxfs_growfs /mnt/data
缩小逻辑卷
在缩小逻辑卷之前,需要确保文件系统不会受到损坏。以下是缩小逻辑卷的步骤:
卸载逻辑卷:
bashumount /dev/datavg/datalv文件系统完整行检查和修复
bashe2fsck -f /dev/datavg/datalv调整文件系统大小。
对于 ext4 文件系统,可以使用
resize2fs命令:bashresize2fs /dev/datavg/datalv 3G这条命令将文件系统大小调整为 3GB。
使用
lvreduce命令缩小逻辑卷的大小: bashlvreduce -L 3G /dev/datavg/datalv注意:在缩小逻辑卷时,必须确保逻辑卷的新大小大于或等于文件系统大小,否则可能导致数据丢失。
挂载逻辑卷:
bashmount /dev/datavg/datalv /mnt/data
创建快照卷
快照卷用于在某一时刻创建逻辑卷的快照,以便进行数据备份或恢复。以下是创建快照卷的步骤:
使用
lvcreate命令创建快照卷。例如:bashlvcreate --size 1G --snapshot --name datalv-snapshot /dev/datavg/datalv这条命令创建了一个名为
datalv-snapshot、大小为 1GB 的快照卷,用于保存datalv逻辑卷的当前状态。挂载快照卷并进行数据备份。例如:
bashmkdir /mnt/snapshot mount /dev/datavg/datalv-snapshot /mnt/snapshot在备份完成后,可以删除快照卷以释放空间:
bashumount /mnt/snapshot lvremove /dev/datavg/datalv-snapshot注意:快照卷的大小应足够保存在创建快照后对原始逻辑卷所做的更改。如果快照卷空间不足,快照将失效。
系统文件扩容步骤
1.查看添加设备
lsblk2.创建物理卷
pvcreate /dev/sdd3.卷组扩容
# 先查看要扩容的卷组
pvdisplay
# 我这里以openeuler为例
vgextent openeuler /dev/sdd4.逻辑卷扩容
lvextent -l +100%FREE /dev/openeuler/root5.在线格式化
## 操作前先查看文件系统类型
resize2fs /dev/openeuler/root # ext格式
xfs_growfs /dev/openeuler/root # xfs6.检测
df -Th重点说明
系统逻辑卷扩容后不要缩减,因为硬盘里已经存储系统文件信息,移除硬盘会影响系统的正常运行
磁盘阵列
安装工具
# RHEL
yum/dnf -y install mdadm
# Ubuntu
apt -y install mdadm创建磁盘阵列
注意:创建完阵列后需要mdadm -D 阵列路径查看状态进度Resync Status到达100%后在继续下一步操作。如没有Resync Status则表示进度100%。
创建 RAID0 阵列
假设使用两块磁盘
/dev/sdb和/dev/sdc,-C创建,-v显示过程,-n磁盘数量,-lraid0级别创建完成后,
mdadm会开始同步数据,可通过查看/proc/mdstat文件监控同步进度。bashmdadm -Cv /dev/md0 -n 2 -l 0 /dev/sdb /dev/sdc # 查看详情进度 mdadm -D /dev/md0创建 RAID1 阵列
假设使用两块磁盘
/dev/sdb和/dev/sdc,-C创建,-v显示过程,-n磁盘数量,-lraid1级别 ,-x备用盘数量创建完成后,
mdadm会开始同步数据,可通过查看/proc/mdstat文件监控同步进度。bashmdadm -Cv /dev/md1 -n 2 -l 0 -x 1 /dev/sdb /dev/sdc # 查看详情进度 mdadm -D /dev/md1创建 RAID5 阵列
假设使用三块磁盘
/dev/sda1、/dev/sdb1、/dev/sdc1,-C创建,-v显示过程,-n磁盘数量,-lraid5级别 ,-x备用盘数量,创建完成后,mdadm会开始同步数据bashmdadm -Cv /dev/md5 -l 5 -n 3 -x 1 /dev/sda1 /dev/sdb1 /dev/sdc1 # 查看详情进度 mdadm -D /dev/md5创建 RAID10 阵列
若使用四块磁盘
/dev/sdb、/dev/sdc、/dev/sdd、/dev/sde,-C创建,-v显示过程,-n磁盘数量,-lraid1和0的组合 ,-x备用盘数量,创建完成后,mdadm会开始同步数据bashmdadm -Cv /dev/md10 -n 4 -l 10 -x 1 /dev/sd[b-e] # 查看详情进度 mdadm -D /dev/md10
格式化与挂载磁盘阵列
# 格式化
mkfs.ext4 /dev/md0
# 创建挂载点
mkdir /mnt/raid
# 挂载
mount /dev/md0 /mnt/raid
# 设置自动挂载
## /etc/fstab
/dev/md0 /mnt/raid ext4 defaults 0 2
## /etc/rc.d/rc.local(添加执行权限chmod +x /etc/rc.d/rc.local)
mount /dev/md0 /mnt/raid查看磁盘阵列状态
mdadm -D /dev/md0 # 查看指定 RAID 设备的详细信息
# 或
cat /proc/mdstat # 获取当前所有 RAID 设备的状态信息停止和删除磁盘阵列
# 停止阵列,停止后数据将无法访问,但磁盘上的数据不会丢失
mdadm -S /dev/md0
# 删除阵列,先确保阵列已停止且数据已备份或不再需要,然后删除与阵列相关的文件系统
mdadm -r /dev/md0raid扩容
# 添加磁盘设备到阵列md0中
mdadm -a /dev/md0 /dev/sdb
# 扩展阵列x设置 RAID 中活动设备的数量
mdadm -G /dev/md0 -n x生成配置文件
默认的配置文件在/etc/mdadm.conf,在阵列的信息行尾添加auto=yes
mdadm -Ds /dev/md0 | sed "s/$/ auto=yes/" > /etc/mdadm.confRAID10 创建逻辑卷
查看硬盘信息
# 查看系统中可用的磁盘设备
lsblk
或
fdisk -l创建 RAID10 阵列
mdadm -Cv /dev/md10 -l 10 -n 4 /dev/sdb /dev/sdc /dev/sdd /dev/sde/dev/md0为创建的 RAID 设备名称-l或--level=10指定 RAID 级别为 10-n或--raid-devices=4指定用于创建阵列的磁盘数量为 4 块- 最后跟着的是组成阵列的各个磁盘设备路径
查看 RAID 阵列状态
查看刚创建的 RAID10 阵列的详细信息,包括阵列的状态、成员磁盘等。
查看信息由百分比进度提示说明还未创建完成,创建完成后进度会消失。
mdadm -D /dev/md10创建raid配置文件
默认读取/etc/mdadm.conf配置文件
mdadm -Ds | sed 's/$/ auto=yes/' > /etc/mdadm.conf创建裸分区(可选)
创建裸分区这一步骤在某些特定场景下是必要的,并非在所有创建 RAID10 逻辑卷的流程中都必须有
主要目的及原因
- 某些特定的应用程序或数据库系统,如 Oracle 数据库、某些高性能计算应用等,可能要求数据存储在裸分区上。
- 创建裸分区后,可以将多个裸分区整合到一个卷组中,实现存储资源的灵活分配和管理,通过在卷组中创建逻辑卷,可以根据实际需求将不同存储设备的容量组合起来,提供给用户统一的、逻辑上的存储空间,而用户无需关心底层存储设备的具体物理分布情况
- 当使用裸分区创建逻辑卷后,可以根据业务需求的变化,灵活地对逻辑卷的大小进行调整。
- 裸分区的存在使得数据在存储设备之间的迁移和备份更加方便。
- 兼容多种文件系统和操作系统
创建分区
使用 parted 或 fdisk 等工具对 RAID 阵列设备 /dev/md10 进行分区操作,创建裸分区,如创建一个占满整个阵列空间的分区 /dev/md10p1
# mbr最大支持2T
fdisk /dev/md10
m 帮助
n 添加主分区
w 保存退出
# gpt
parted /dev/md10
(parted) mklabel
新的磁盘卷标类型? gpt
(parted) mkpart
分区名称? []? yunjisuan
文件系统类型? [ext2]? ext4
起始点? 0
结束点? 10G 或者 100%
(parted) q创建物理卷
将刚才创建的裸分区初始化为物理卷,使其能够被 LVM 使用
pvcreate /dev/md10p1创建卷组
创建一个名为 vg_raid10 的卷组,并将物理卷 /dev/md10p1 添加到该卷组中
vgcreate vg_raid10 /dev/md10p1创建逻辑卷
从卷组 vg_raid10 中创建一个名为 lv_raid10大小为 20GB 的逻辑卷
lvcreate -n lv_raid10 -L 20G vg_raid10
# 或者
lvcreate -n lv_raid10 -l +100%FREE vg_raid10格式化逻辑卷
根据需求使用相应的文件系统格式化命令对逻辑卷进行格式化,如格式化为 ext4或xfs文件系统
# ext4
mkfs.ext4 /dev/vg_raid10/lv_raid10
# xfs
mkfs.xfs /dev/vg_raid10/lv_raid10创建挂载点并挂载
创建挂载目录然后将格式化后的逻辑卷挂载到该目录下
mkdir /data && mount /dev/vg_raid10/lv_raid10 /data设置开机挂载
若希望系统启动时自动挂载该逻辑卷,可将挂载信息添加到 /etc/fstab
echo "/dev/vg_raid10/lv_raid10 /data ext4 defaults 0 0" >> /etc/fstabRAID10 逻辑卷扩容
添加新硬盘
将新硬盘与现有 RAID 阵列中的硬盘型号和规格一致,物理连接到服务器或存储系统中
扩容 RAID 设备
命令执行需要查看进度100%后才可以执行后续操作
# 向 RAID 中添加新设备
mdadm -a /dev/md10 /dev/sdf设置RAID设备大小
mdadm -G /dev/md10 --size=max这只RAID磁盘数量
mdadm -G /dev/md10 -n 5扩容物理卷
由于 RAID 设备上已经有分区 /dev/md10p1,不能直接对 /dev/md10 使用 pvcreate,需要对分区 /dev/md10p1 进行操作。执行以下命令扩容物理卷:
pvresize /dev/md10p1验证扩容结果
使用 df -h 命令查看文件系统空间是否成功扩展,确认新增空间可用
扩容文件系统(可选)
如果df -Th结果大小为改变可尝试以下命令
# ext4
resize2fs /dev/vg_raid10/lv_raid10
# xfs
xfs_growfs /dev/vg_raid10/lv_raid10RAID10 逻辑卷缩容
取消逻辑卷挂载
umount /dev/vg_raid10/lv_raid10查看RAID设备详细信息
mdadm -D /dev/md10将磁盘标记为故障
mdadm -f /dev/md10 /dev/sdf从RAID阵列中移除磁盘
mdadm -r /dev/md10 /dev/sdf清除磁盘上的RAID超级块信息
mdadm --zero-superblock /dev/sdf调整 RAID 阵列大小
mdadm -G /dev/md10 --size=10G调整 RAID 阵列的磁盘数量
mdadm -G /dev/md10 -n 4调整物理卷大小
pvresize /dev/md10p1调整逻辑卷大小
lvreduce -L 10G /dev/vg_raid10/lv_raid10检测并修复文件系统
e2fsck -f /dev/vg_raid10/lv_raid10调整文件系统大小
resize2fs /dev/vg_raid10/lv_raid10 10G挂载文件系统
mount /dev/vg_raid10/lv_raid10 /data检测文件系统大小
df -ThRAID10 逻辑卷销毁
取消挂载
umount /dev/vg_raid10/lv_raid10删除逻辑卷
lvremove /dev/vg_raid10/lv_raid10删除卷组
vgremove vg_raid10删除物理卷
pvremove /dev/md10p1停止RAID
mdadm -S /dev/md10清除磁盘上的 RAID 超级块信息
mdadm --zero-superblock /dev/sd[bcdefg]更新 RAID 配置文件
/etc/mdadm.conf中要销毁的raid相关配置删除掉验证 RAID 阵列是否已销毁
确认 RAID 阵列已不存在
cat /proc/mdstat