Linux文件管理

字数 1587阅读 66

Linux 文件管理系统

Linux的文件管理系统有很多,例如:
本地文件系统:
ext3,ext4,xfs,btrfs,reiserfs,jfs,swap(交换文件系统,交换分区专用,将磁盘当内存用),iso9660(光盘)

网络文件系统: NFS, CIFS
集群文件系统: GPS2, OCFS2
分布式文件系统: ceph,moosefs,mogilefs,GlusterFS,Lustre

分解是否支持"journal"功能分为:
日志型文件系统: ext3, ext4, xfs...
非日志文件系统: ext2, vfat

文件系统构成

内核中的文件管理模块:ext4,xfs,btrfs...
用户空间的文件系统管理工具: mkfs.ext4, mkfs.xfs, mkfs.btrfs...

Linux 的虚拟文件系统: VFS

查看系统支持的以及当前正在使用的文件系统:
[root@ansible1 ~]# cat /proc/filesystems

查看内核以及装载的管理模块:
[root@ansible1 ~]# lsmod

创建文件系统(格式化):
使用mkfs 命令
(1) mkfs.ext4(xfs|btrfs) /dev/PARTITION
(2) mkfs -t (ext4 | xfs | btrfs) /dev/PARTITION

使用mk2efs: ext系列文件夹系统管理工具
-t (ext2|ext3|ext4) 文件系统类型
-o (1024|2048|4096) 分区的块大小
-L 'label' 指定卷标
-j : == -t ext3
-i n: 为数据空间总每n个字节创建一个inode,不能小于块大小
-n n: 为数据空间创建的inode个数
-m n: 为管理人员预留的空间占据的百分比, 用作管理用,默认5%
-O feature[...] 创建是分区的特性,表示启用分区特性
-O ^feature[...] 关闭特性

例如: mke2fs -b 1024 -m 3 -L HIDATA /dev/sda5

查看分区的属性:
blokid [OPTIONS] /dev/DEVICE
-U 根据设备的UUID查找相关的设备
-L 根据设备的label来查找相关的设备

管理设备的label信息
e2label /dev/DEVICE 查看卷标
e2label /dev/DEVICE LABEL 设置卷标

设定ext系列可调整参数的值
tune2fs
-l 查看文件系统的超级块信息,super block
-L "label" 修改卷标
-m n: 修改预留管理使用的空间百分比
-j: 打开日志工具,将ext2升级为ext3
-O: 文件系统属性启动或是关闭
-o: 调整文件系统的默认挂载选项
-U UUID: 修改设备的UUID号;

列出所有可用的块设备信息可以他们之间的关系
lsblk

文件系统检测:
fsck: File System Check 文件系统检测
fsck.FS_TYPE 匹配要检测的文件系统类型

e2fsck: ext系列文件系统专用的检测修复工具

文集系统的挂载

将其他的文集系统与根文件系统的目录建立管理,以此目录为其他文件系统的访问入库称为挂载。 相反,解除关联关系的叫卸载。
设备挂载点: mount point 文件系统挂载的目录
挂载命令: mount DEVICE MOUNT_POINT
卸载命令: umount

注意: 挂载点下的原有文件在挂载完成后会被临时隐藏。

mount 命令

mount 显示所有的挂载的设备及挂载点,通过读取/etc/mtab实现
mount [-fnrsvw] [-t vfstype] [-o options] device dir
device: 指明要挂载的设备
(1) 设备文件: /dev/sda5
(2) 卷标: _L 'label', 例如: -L 'mylabel'
(3) UUID, -U 'UUID'
(4) 伪文件系统名称: proc, sysfs, devtempfs, configfs

dir: 挂载点,在挂载之前先要创建好,最好是空目录

常用命令选项:
-t vsftype: 指定要挂载的设备上的文件系统类型;
-r readonly: 只读挂载
-w: read and write, 读写挂载
-n: no 古更新/etc/mtab,该用文件用于跟踪文件信息的挂载信息, 默认是更新的
-a all 自动挂载所有支持自动挂载的设备:(定义在/etc/fstab文件中的所有文件系统,且挂载选项中有“自动挂载"功能);
-L label 根据指定的卷标进行挂载
-U UUID 根据UUID进行挂载
-B blind 绑定目录到另一个目录上

挂载文件系统的选项:
-o option1, option2, options3...
选项如下:
async: 异步模式
sync: 同步模式 数据可靠性搞
atime/noatime 每次访问都更新/不更新时间戳,包含目录和文件
diratime/nodiratime 目录的访问时间戳
auto/noduto: 是否支持自动挂载 默认是auto
exec/noexec: 是否支持将文件系统上的应用程序运行为进程。
dev/nodev: 是否支持在此文件系统上使用设备文件
suid/nosuid:
remount: 重新挂载
ro: 只读
rw: 读写
user/nouser: 是否运行普通用户挂载此设备
acl: 启用此文件系统上的acl访问控制列表功能;
说明: 上述选项可多个同时使用,因此使用逗号隔开。

查看当前已经挂载的所有设备,可以通过查看/proc/mounts文件; 默认挂载选项: defaults, 相当于:
rw,suid, dev, exec, auto, nouser, async

卸载命令

umount DEVICE
umount DEVICE_POINT

查看正在访问文件系统的进程
fuser -v mount_point

挂载交换分区

启用 swapon
swapon [OPTION]... [DEVICE]
-a 激活所有的交换分区
-p PRIORITY 指定优先级

禁用: swapoff

内存空间使用状态

free [OPTIONS]
-m 以MB为单位查看内存空间
-g: 以GB为单位查看内存使用空间

磁盘空间的空闲状态显示

-h 以易读的方式显示
-i 显示inode而不是block
-P: 以posix兼容格式输出

查看某个目录下的空间占用状态

du [OPTIONS]
-h 易读方式显示
-s summary 汇总的(总)大小

文件系统挂载配置文件

/etc/fstab 每行定义一个要挂载的文件系统的挂载信息,格式如下:
挂载的设备/伪文件系统 挂载点 文件系统类型 挂载选项 转储频率 自检次序
例如:
UUID=c8d1714a-c3bd-4e7a-8c8e-3f9e2a4a8bfd / ext4 defaults 1 1
域说明:
(1) 挂载的设备/伪文件系统: 可以是UUID, label(label="label", UUID(UUID="UUID"), 伪文件系统名称(proc, sysfs)
(2) 挂载点
(3) 文件类型类型
(4) 挂载选项 defaults
(5) 转储频率
0 不自检
1 首先自检
...

推荐阅读更多精彩内容