Linux系统中的文件系统管理是系统运维和日常使用的基础能力,掌握相关操作可以有效管理磁盘空间、保障数据安全、优化系统运行效率。Linux采用树形目录结构,所有文件和存储设备都挂载到根目录下的对应节点,理解这个结构能更好地开展后续管理操作。

基础概念与磁盘信息查询
在管理文件系统前,需要先了解几个核心概念。文件系统是操作系统用于明确存储设备或分区上文件的方法和数据结构,Linux支持ext4、xfs、btrfs等多种文件系统类型。磁盘分区是将物理磁盘划分为多个逻辑部分,每个分区可以独立格式化和挂载。
首先可以通过命令查询当前系统的磁盘和分区信息:
# 查看所有磁盘和分区的详细信息 fdisk -l # 查看已挂载的文件系统使用情况,包含容量、已用、可用、挂载点 df -h # 查看指定目录的磁盘占用情况 du -sh /home
磁盘分区与文件系统创建
当新增磁盘或者需要重新规划磁盘空间时,需要进行分区操作。常用的分区工具包括fdisk(适用于MBR分区表)和parted(适用于GPT分区表,支持大于2TB的磁盘)。
以下是使用fdisk对磁盘/dev/sdb进行分区的示例:
# 进入fdisk交互界面操作/dev/sdb磁盘 fdisk /dev/sdb # 交互界面内的常用操作 # n:新建分区 # p:选择主分区 # 1:分区编号 # 回车:使用默认起始扇区 # +20G:设置分区大小为20G # w:保存分区表并退出
分区完成后需要为分区创建文件系统,也就是格式化操作:
# 将/dev/sdb1分区格式化为ext4文件系统 mkfs.ext4 /dev/sdb1 # 格式化为xfs文件系统 mkfs.xfs /dev/sdb1
文件系统挂载与卸载
格式化后的分区需要挂载到系统的目录树上才能被访问,挂载是将分区关联到指定目录的过程,卸载则是断开这个关联。
临时挂载
临时挂载在系统重启后会失效,适合临时测试使用:
# 创建挂载点目录 mkdir /mnt/data # 将/dev/sdb1挂载到/mnt/data目录 mount /dev/sdb1 /mnt/data # 查看挂载结果 df -h | grep /mnt/data
永久挂载
如果需要重启后挂载依然生效,需要配置/etc/fstab文件,该文件记录了系统启动时需要自动挂载的文件系统信息。
首先查询分区的UUID,避免设备名变动导致挂载失败:
# 查询/dev/sdb1的UUID blkid /dev/sdb1
然后在/etc/fstab文件末尾添加如下内容:
# 格式:UUID=分区UUID 挂载点 文件系统类型 挂载选项 是否备份 是否检查 UUID=12345678-1234-1234-1234-123456789abc /mnt/data ext4 defaults 0 0
修改完成后可以执行以下命令测试配置是否正确,避免重启后系统无法正常启动:
# 重新挂载/etc/fstab中的所有文件系统,测试配置 mount -a
卸载文件系统的命令如下:
# 通过挂载点卸载 umount /mnt/data # 通过设备名卸载 umount /dev/sdb1
文件权限与所有权管理
Linux的文件系统通过权限机制控制不同用户对文件的访问能力,每个文件都有所有者、所属组和其他用户的权限设置。
权限分为读(r,对应数字4)、写(w,对应数字2)、执行(x,对应数字1)三种,通过ls -l命令可以查看文件的权限信息:
# 查看当前目录下文件的详细权限信息 ls -l # 输出示例:-rw-r--r-- 1 root root 1024 1月 1 10:00 test.txt # 第一个字符表示文件类型,-为普通文件,d为目录 # 接下来三组rwx分别表示所有者、所属组、其他用户的权限
修改文件权限使用chmod命令:
# 给test.txt的所有者添加执行权限 chmod u+x test.txt # 设置test.txt的权限为所有者读写执行,所属组读执行,其他用户读执行 chmod 755 test.txt
修改文件所有者和所属组使用chown命令:
# 将test.txt的所有者改为user1,所属组改为group1 chown user1:group1 test.txt # 递归修改/data目录下的所有文件所有者和所属组 chown -R user1:group1 /data
常见问题处理
如果文件系统出现错误,可以使用fsck命令进行修复,注意修复时需要先卸载对应的分区,避免数据损坏:
# 卸载分区 umount /dev/sdb1 # 修复ext4文件系统的错误 fsck.ext4 /dev/sdb1 # 修复xfs文件系统需要使用xfs_repair xfs_repair /dev/sdb1
当磁盘空间不足时,可以先通过du命令定位大文件,再根据实际情况删除无用文件或者扩容磁盘分区。如果分区支持在线扩容,也可以使用resize2fs(ext4)或者xfs_growfs(xfs)命令扩展文件系统大小。