Linux运维*一.Linux基础---14、文件系统管理

本文详细介绍Linux环境下各种文件系统的特性和管理方法,包括ext4、xfs、btrfs等的创建、挂载、卸载和检查修复流程,以及如何配置fstab实现自动挂载。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、Linux常见文件系统

1、常见文件系统:

ext2---centos5

 ext3---centos5

 ext4---centos6、7

 xfs----centos7(企业级应用推荐使用)

 btrfs--centos7(Oracle开发,目前最强大)

 reiserfs

 jfs

 swap---交换分区文件系统,独自占用一个分区,内存不足时将磁盘当做内存使用

 iso96609---光盘文件系统

      windows光盘系统:fat32(linux也支持叫vfat)、ntfs

      Unix光盘系统:FFS 、UFS 、JFS

 网络文件系统---NFS 、CIFS

 集群文件系统---GFS2 、OCFS2

 分布式文件系统---ceph 、moosefs 、GlusterFS 、Lustre

 

2、日志型文件系统(根据是否支持journal日志功能)---推荐使用日志文件系统

 日志型文件系统:ext3 、ext4 、xfs...

 非日志型文件系统:ext2 、vfat

 

3、Linux或centos7上建议使用的文件系统:xfs或者btrfs(特别推荐btrfs)

 

 

 

 

 

二、文件系统管理基础

01、查看系统支持的文件系统

cat /proc/filesystems

[root@localhost ~]# cat /proc/filesystems

nodev sysfs

nodev rootfs

nodev ramfs

nodev bdev

nodev proc

nodev cgroup

nodev cpuset

nodev tmpfs

nodev devtmpfs

nodev debugfs

nodev securityfs

nodev sockfs

nodev dax

nodev pipefs

nodev anon_inodefs

nodev configfs

nodev devpts

nodev hugetlbfs

nodev autofs

nodev pstore

nodev mqueue

nodev selinuxfs

xfs

 

02、查看系统上装载的文件系统内核模块(装在了文件系统内核工具系统才能支持该文件系统)

lsmod

[root@localhost ~]# lsmod

Module Size Used by

ip6t_rpfilter 12595 1

...

dm_mirror 22289 0

dm_region_hash 20813 1 dm_mirror

dm_log 18411 2 dm_region_hash,dm_mirror

dm_mod 123941 8 dm_log,dm_mirror

 

 

03、需要掌握的文件系统:

ext4:Centos默认使用的文件系统

xfs:推荐使用的文件xiton

btrfs:极为推荐使用的文件系统

 

04、Centos上的文件系统管理工具mkfs.*

[root@localhost ~]# mkfs

mkfs mkfs.btrfs mkfs.cramfs mkfs.ext2 mkfs.ext3 mkfs.ext4 mkfs.minix mkfs.xfs

 

 

 

 

 

 

三、文件系统管理命令

1、创建文件系统:将分区按照指定的文件系统规范进行格式化(会导致分区内数据清空)

mkfs命令:

格式:

mkfs.指定文件系统名 选项 /dev/分区

mkfs -t 指定文件系统 选项 /dev/分区

 

常用选项:

-L "卷标" #指定卷标

-f #强制创建

 

示例:

创建ext4文件系统

[root@localhost ~]# mkfs.ext4 -L "LogData" /dev/sda3

mke2fs 1.42.9 (28-Dec-2013)

Filesystem label=LogData

OS type: Linux

Block size=4096 (log=2)

Fragment size=4096 (log=2)

Stride=0 blocks, Stripe width=0 blocks

65536 inodes, 262144 blocks

13107 blocks (5.00%) reserved for the super user

First data block=0

Maximum filesystem blocks=268435456

8 block groups

32768 blocks per group, 32768 fragments per group

8192 inodes per group

Superblock backups stored on blocks:

32768, 98304, 163840, 229376

 

Allocating group tables: done

Writing inode tables: done

Creating journal (8192 blocks): done

Writing superblocks and filesystem accounting information: done

 

 

创建xfs文件系统

[root@localhost ~]# mkfs.xfs -L "LogData" -f /dev/sda3

meta-data=/dev/sda3 isize=512 agcount=4, agsize=65536 blks

= sectsz=512 attr=2, projid32bit=1

= crc=1 finobt=0, sparse=0

data = bsize=4096 blocks=262144, imaxpct=25

= sunit=0 swidth=0 blks

naming =version 2 bsize=4096 ascii-ci=0 ftype=1

log =internal log bsize=4096 blocks=2560, version=2

= sectsz=512 sunit=0 blks, lazy-count=1

realtime =none extsz=4096 blocks=0, rtextents=0

 

 

创建btrfs文件系统

[root@localhost ~]# mkfs -t btrfs -L "LogData" -f /dev/sda3

btrfs-progs v4.9.1

See http://btrfs.wiki.kernel.org for more information.

 

Label: LogData

UUID: 1ad00a4e-3882-4b82-aa1a-5184e38c28a9

Node size: 16384

Sector size: 4096

Filesystem size: 1.00GiB

Block group profiles:

Data: single 8.00MiB

Metadata: DUP 51.19MiB

System: DUP 8.00MiB

SSD detected: no

Incompat features: extref, skinny-metadata

Number of devices: 1

Devices:

ID SIZE PATH

1 1.00GiB /dev/sda3

 

mkswap命令:超级交互分区文件系统,将指定分区格式化为swap文件系统

首先使用fdisk件分区的id调整为82,并partx -a重新挂载到内核

mkswap -L "标签" /dev/分区 #将指定分区格式化为swap文件系统

 

2、块设备属性信息查看(设备UUID及文件系统类型)

blkid 选项 /dev/分区

选项:

-U "UUID" //根据UID查找设备

-L "卷标" //根据卷标查找设备

示例:

[root@localhost ~]# blkid /dev/sda3

/dev/sda3: LABEL="LogData" UUID="1ad00a4e-3882-4b82-aa1a-5184e38c28a9" UUID_SUB="f9b546bd-624c-464d-a01a-7720b86ce530" TYPE="btrfs"

[root@localhost ~]# blkid -L "LogData"

/dev/sda3

[root@localhost ~]# blkid -U "6865eba1-c7ef-4022-9ad7-e90c47c995a8"

/dev/sda3

 

3、文件系统检查修复

fsck -t 指定文件系统 选项 /dev/分区

-a #检查出错误,自动修复文件系统(可能会自动删除数据)

-r #检查出错误,进入用户交互式修复文件系统

注意:-t指定的文件系统一定要与要检查的分区文件系统已经

 

4、分区文件系统的挂载及卸载

挂载:将目标分区文件系统与根文件系统现存目录建立关联关系,进而使得此目录成为目标文件系统的访问入口

卸载:解除目标分区文件系统与目录的关联关系

挂载点:Mount Point,一般为目录

注意:挂载目标分区文件系统到目录时,若目录中有文件则挂载后,这些文件将被隐藏

(所以一般挂载点为空目录)

挂载及卸载操作都记录在了/proc/mounts文件及/etc/mtab文件中

挂载命令格式:

mount 选项 /dev/分区 /path//to/dir # 将指定分区文件系统挂载到指定目录

常用选项:

mount #不带选项,显示系统所有分区文件系统的挂载情况

(实质为cat /proc/mounts)

-L "卷标" #使用卷标指明要挂载的分区文件系统

-U "UUID" #使用UUID指明要挂载的分区文件系统

-t "文件系统类型" #指定要挂载的分区的文件系统类型(可省略但不能错)

-r #只读挂载

-w #读写挂载(默认)

-n #挂载操作在/etc/mtab文件中不记录

-a # 自动挂载所有支持自动挂载的设备

-B 或 --bind # 挂载(绑定)一个目录到另一个目录

-o "特性" #指定文件系统的挂载特性

async #异步模式,性能较高

sync #同步模式,数据可靠性高,但性能很差

auto #支持自动挂载(默认)

noauto #不支持自动挂载

exec #文件系统支持运行可执行文件

noexec #文件系统不支持运行可执行文件

dev #文件系统支持使用设备文件

nodev #文件系统不支持使用设备文件

suid #文件系统支持suid特殊权限

nouid #文件系统不支持suid特殊权限

remount #指明为重新挂载

ro #只读挂载

rw #读写挂载

user #允许普通用户挂载管理该分区

nouser #不允许普通用户挂载管理该分区

acl # 启用该分区的acl(访问控制列表)

atime #访问目录和目录下文件更新atime

noatime #访问目录和目录下文件后不更新atime(能提高挂载点的IO性能)

默认挂载选项:rw,suid,dev,exec,auto,nouser,async

以上选项能多个使用,使用逗号分割,也可使用"default,自定义选项"

 

 

卸载命令格式:

umount 设备或者挂载点

注意:处于使用状态的挂载设备或者挂载点无法被卸载

 

查看正在使用指定文件系统的系统进程:

fuser -v 挂载点

(需要安装:yum install -y psmisc)

 

终止所有正在使用文件系统的进程

fuser -km 挂载点

 

示例:

[root@localhost ~]# mount /dev/sda5 /data

 

[root@localhost ~]# mount | grep /dev

/dev/mapper/centos-root on / type xfs (rw,relatime,seclabel,attr2,inode64,noquota)

mqueue on /dev/mqueue type mqueue (rw,relatime,seclabel)

hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime,seclabel)

/dev/sda1 on /boot type xfs (rw,relatime,seclabel,attr2,inode64,noquota)

/dev/sda5 on /data type ext4 (rw,relatime,seclabel,data=ordered)

 

[root@localhost ~]# mount -o remount,noatime /dev/sda5 /data

 

[root@localhost ~]# umount /data/

umount: /data: target is busy.

(In some cases useful info about processes that use

the device is found by lsof(8) or fuser(1))

 

[root@localhost ~]# fuser -v /data/

USER PID ACCESS COMMAND

/data: root kernel mount /data

root 17139 ..c.. bash

root 17157 ..c.. vi

 

[root@localhost ~]# fuser -km /data/

/data: 17139c 17157c

 

[root@localhost ~]# umount /data/

[root@localhost ~]# mount | grep /dev

/dev/mapper/centos-root on / type xfs (rw,relatime,seclabel,attr2,inode64,noquota)

mqueue on /dev/mqueue type mqueue (rw,relatime,seclabel)

hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime,seclabel)

/dev/sda1 on /boot type xfs (rw,relatime,seclabel,attr2,inode64,noquota)

 

 

5、交互分区的挂载及卸载

启用交换分区:

swapon 选项 /dev/分区

-a #激活所有交换分区

-p num #指定优先级(优先级一致负载轮询)

 

禁用交换分区:

swapoff /dev/分区

 

 

 

 

 

 

四、ext系列文件系统专用管理工具

1、创建文件系统

mke2fs命令:ext系列文件系统专用管理工具(只能创建etx2、ext3、ext4文件系统)

格式:mke2fs /dev/分区

选项:

-t etx系列文件系统 //指明文件系统

-b "块大小" //指明块大小

-L "卷标" //指明卷标

-i "字节数" //为数据空间中每多少个字节创建inode(字节数应小于块大小)

-N "inde数" //为数据空间创建多少个inode

-m n //为管理人员预留的空间占据的百分比(默认5%)

-O 特性1,特性2... //指明开启指定特性

-O ^特性1 //指明关闭指定特性

 

示例:

[root@localhost ~]# mke2fs -t ext4 -b 1024 -m 3 -L "DATA" /dev/sda5

mke2fs 1.42.9 (28-Dec-2013)

Filesystem label=DATA

OS type: Linux

Block size=1024 (log=0)

Fragment size=1024 (log=0)

Stride=0 blocks, Stripe width=0 blocks

65536 inodes, 1048576 blocks

31457 blocks (3.00%) reserved for the super user

First data block=1

Maximum filesystem blocks=34603008

128 block groups

8192 blocks per group, 8192 fragments per group

512 inodes per group

Superblock backups stored on blocks:

8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409, 663553,

1024001

 

Allocating group tables: done

Writing inode tables: done

Creating journal (32768 blocks): done

Writing superblocks and filesystem accounting information: done

 

2、e2label:ext系列文件系统卷标管理

e2label /dev/分区 #查看文件系统卷标

e2label /dev/分区 "卷标" # 设置卷标

 

3、tune2fs 选项 /dev/分区 # 重新设定ext系列文件系统的可调参数

-l #查看指定分区的文件系统的超级块信息

-L '卷标' #修改指定分区文件系统的卷标

-m n #修改指定分区文件系统的预留空间n%

-o #调整文件系统的默认挂载选项

-O #启用或者禁用文件系统特性

-U UUID #修改指定分区文件系统的UUID

 

4、dumpe2fs -h /dev/分区 # 查看指定分区文件系统的超级块信息

 

5、e2fsck 选项 /dev/分区:ext系列文件专用检测工具

-y #检测出问题,修复时自动应答为y

-f #强制修复

 

 

 

 

 

五、分区文件系统挂载配置文件:/etc/fstab

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

#

# /etc/fstab

# Created by anaconda on Mon Mar 2 14:48:56 2020

#

# 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=e76b3af5-9b41-4604-9a8b-2aa001412264 /boot xfs defaults 0 0

/dev/mapper/centos-swap swap swap defaults 0 0

字段说明:

要挂载设备 挂载点 分区文件系统类型 挂载特性 转储频率 自检次序

-要挂载的设备:

设备文件:/dev/设备名

设备文件LABAL:LABAL="LABAL名"

设备的UUID:UUID="对应设备的UUID"

伪文件系统:伪文件系统名称

 

挂载点:

/path/to/dir

swap

 

分区文件系统类型:

ext4

xfs

btrfs

swap

 

转储频率:一般为0,即不使用

0 不做备份

1 每天转储备份

2 每隔1天转储备份

 

自检次序:一般都为0

0 不自检

1 首先自检,一般只有rootfs才用1

2 第二个自检

...

(一般都为0,不使用自检功能,因为自检有问题往往会自动删除文件)

 

 

mount -a 自动挂载:按文件格式追加要挂载的设备后执行mount -a实现自动挂载

 

 

 

 

 

 

六、链接文件

硬链接:即为inode创建新的引用路径,因此会增加其引用计数

(不能为文件创建硬链接,不能跨分区创建硬链接)

ln /path/to/src_file /path/to/dest_file #创建硬链接

 

符号链接:创建的符号链接文件指向另外一个文件路径

ln -s /path/to/src_file /path/to/dest_file #创建符号链接

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值