Linux 文件系统管理

2018-09-30  本文已影响0人  AmenSun

一、Linux文件系统类型

Linux 支持的文件系统有很多,包括 ext2, ext3, ext4, xfs, btrfs, reiserfs, jfs, vfat, swap(交换分区)等;
根据是否支持“journal”的功能:

文件系统的组成部分:

VFS

所谓VFS就是Virtual File System虚拟文件系统,也称为虚拟文件系统开关(Virtual Filesystem Switch).
这是Linux文件系统对外的接口。任何要使用文件系统的程序都必须经由这层接口来使用它。
VFS是一个异构文件系统之上的软件粘合层(注:有时也把VFS称为可堆叠的文件系统(Stackable Filesystem),因为VFS可以无缝地使用多个不同类型的文件系统,就像把多个文件系统堆叠在一起一样,故而得名)。通过VFS,可以为访问文件系统的系统调用提供一个统一的抽象接口。

检测当前内核支持的文件系统类型
# cat /proc/filesystems
# lsmod # 列出内核模块

二、文件系统创建

在磁盘分区完毕之后,需要为分区格式化,将其格式化为需要的文件系统,才可以对分区进行读写操作。
1. mkfs

mkfs [options] [-t type] [fs-options] device [size]

2. mke2fs
ext 系列专用文件系统管理工具
mke2fs - create an ext2/ext3/ext4 filesystem
# mke2fs [options] device

[-b block-size]  #块大小 {1024|2048|4096}        
[-i bytes-per-inode]  # 为数据空间中每多少个字节创建一个inode;此大小不应该小于block的大小
[-N number-of-inodes] #为数据空间创建个多少个inode   
[-m reserved-blocks-percentage] #为管理人员预留的空间占据的百分比;默认 5%
[-L volume-label] #标签
[-O feature[,...]] #启用指定特性    -O ^FEATURE:关闭指定特性
[-t fs-type] #文件系统类型 {ext2|ext3|ext4}

3. mkswap
建立 swap 分区,前提:调整其分区的ID为82。
# mkswap [options] device [size]

4. blkid
块设备属性查看

blkid -L <label> | -U <uuid>

5. e2label
管理 ext 系列文件系统的标签
# e2label device [ new-label ]

6. tune2fs
重新设定和调整 ext 系列文件系统可调整参数的值
基本参数和 mke2fs 类似,值得关注的是

[-o [^]mount_options[,...]] # 调整文件系统的默认挂载选项

7. dumpe2fs
打印当前设备上的文件系统的超级块和块设备信息

dumpe2fs [-bfhixV] [-o superblock=<num>] [-o blocksize=<num>] device

三、文件系统检测

1. fsck
检查和修复文件系统

fsck [-lrsAVRTMNP] [-C [fd]] [-t fstype] [filesystem...]  [--] [fs-specific-options]
-a # 自动修复错误
-r # 交互式询问修复

等价于:# fsck.FS_TYPE

2. e2fsck
检查ext系列文件系统
# e2fsck [options] device

四、文件系统挂载与卸载

1. 挂载

mount [-fnrsvw] [-t vfstype] [-o options] device dir
 -a, --all    mount all filesystems mentioned in fstab # 挂载所有在 /etc/fstab 中定义的文件系统
 -t, --types <list>      limit the set of filesystem types # 指定要挂在设备上的文件系统,必须与文件系统格式化的类型一致
 -r, --read-only         mount the filesystem read-only (same as -o ro) # 只读挂载
 -w, --rw, --read-write  mount the filesystem read-write (default) # 读写挂载
 -n, --no-mtab           don’t write to /etc/mtab # 不写 mtab 文件
 -l, --show-labels       lists all mounts with LABELs # 列出挂载信息时带上文件系统标签
 -L, --label <label>     synonym for LABEL=<label> # 以卷标指定挂载设备
 -U, --uuid <uuid>       synonym for UUID=<uuid> # 以UUID指定要挂载的设备
 -B, --bind              mount a subtree somewhere else (same as -o bind) # 绑定目录到另一个目录上
            -o options:(挂载文件系统的选项)
                async:异步模式;
                sync:同步模式;
                atime/noatime:包含目录和文件;
                diratime/nodiratime:目录的访问时间戳
                auto/noauto:是否支持自动挂载
                exec/noexec:是否支持将文件系统上应用程序运行为进程
                dev/nodev:是否支持在此文件系统上使用设备文件;
                suid/nosuid:
                remount:重新挂载
                ro:
                rw:
                user/nouser:是否允许普通用户挂载此设备
                acl:启用此文件系统上的acl功能

                注意:上述选项可多个同时使用,彼此使用逗号分隔;
                      默认挂载选项:defaults
                            rw, suid, dev, exec, auto, nouser, and async

# mount /dev/sda5 /python

2. 卸载

umount [-dflnrv] {dir|device}...
 -a, --all    All of the file systems described in /etc/mtab are unmounted.
 -f, --force   Force unmount (in case of an unreachable NFS system).  # 强制卸载 NFS
 -n, --no-mtab  Unmount without writing in /etc/mtab.
 -r, --read-only   In case unmounting fails, try to remount read-only.

# umount /dev/sda5

# umount /python

fuser [-fuv] [-a|-s] [-4|-6] [-c|-m|-n space] [ -k [-i] [-M] [-w] [-SIGNAL] ] name ...
       fuser -l

安装 fuser 工具 # yum install psmisc -y

3. 挂载和卸载交换分区

swapon [-d] [-f] [-p priority] [-v] specialfile...
 -a, --all       All  devices  marked  as  ``swap''  in  /etc/fstab  are made available, except for those with the ``noauto'' option. # 激活所有在 /etc/fstab 中设置为自动激活的 swap 分区
 -e, --ifexists       Silently skip devices that do not exist. # 跳过不存在的设备
 -s, --summary      Display swap usage summary by device. Equivalent to "cat /proc/swaps".  # 显示 swap 分区使用信息
 -v, --verbose       Be verbose.
 -p, --priority priority      Specify the priority of the swap device.  priority is a value between -1 and 32767.  Higher numbers indicate higher priority. # 指定优先级

# swapon -v /dev/sda6
# swapon -v

swapoff [-v] specialfile...
Usage:
 swapoff [options] [<spec>]

Options:
 -a, --all              disable all swaps from /proc/swaps
 -v, --verbose          verbose mode

# swapoff -v /dev/sda6

4. 自动挂载

/dev/mapper/centos-root                   /                       xfs     defaults        0 0
UUID=2d5d8e36-0d64-4d53-90ee-632136874187 /boot                   xfs     defaults        0 0
/dev/mapper/centos-swap                   swap                    swap    defaults        0 0

每一行分别对应如下

要挂载的设备或伪文件系统     挂载点     文件系统类型     挂载选项     转储频率     自检次序
/dev/mapper/centos-root    /           xfs        defaults      0           0

五、空间使用情况检查

六、文件系统其他

1. Inode
Inode: Index Node, 索引节点

inode bitmap:对位标识每个inode空闲与否的状态信息

2.链接文件

[root@centos-7 tmp]# ls -lh /tmp/app
lrwxrwxrwx. 1 root root 7 Oct  1 23:05 /tmp/app -> /python
[root@centos-7 tmp]#
上一篇 下一篇

猜你喜欢

热点阅读