天天看点

linux文件系统

一、linux主要的文件系统类型

①ext(2/3/4) xfs ffs ufs jfs vfat ntfs

②交换文件系统swap

③网络文件系统nfs smbfs

④分布式文件系统ceph

⑤光盘文件系统 isso9660

linux最传统的文件系统是使用的EXT,所以要了解linux的文件系统,首先从ext开始。ext有ext2、ext3、ext4等ext2不支持日志功能。

二、创建分区

查看分区

fdisk -l [DEVICE]..

创建分区

fdisk [DEVICE]

交互式界面的命令

p 显示磁盘分区表

n new 新建分区

d delete 删除分区

t 修改分区系统的id

L 列出系统已经有的id

w 保存退出

q 不保存退出

脚本中怎么进行交互式?以下为创建一个20G的逻辑分区

echo '

n

+20G

w'|fdisk /dev/sda

对于已经有分区在使用的磁盘来说,新建的分区需要内核重新读取其分区

centos6 kpart -af [DEVICE]

         part -a [DEVICE] 

三、创建文件系统(格式化)

mkfs -t FSTYPE [DEVICE]

例:mkfs -t ext3 sda3=mkfs.ext3 sda3

将磁盘sda3格式化成ext3文件系统。

不过一般对于ext系统文件系统我们通过mke2fs的命令,其功能将更强大

mke2fs 

  -t {ext2|ext3|ext4}:指定文件系统

  -b {1024|2048|4096}:指定块大小

  -L LABEL: 打标   mke2fs -L LABEL=e2label DEVICE LABEL

  -j: 相当于 -t ext3

  -i #: 每多少字节给创建一个inode,此字节数不应该少小块大小

  -N #: 直接指定可用的inode数;

  -m #: 指定预留空间占整个分区空间的百分比;默认为5;

  -O:指定分区特性

blkid: 查看指定块设备的信息

 e2label:查看或设定卷标

  e2label DEVICE [LABEL]

 查看超级块信息:

  # tune2fs -l DEVICE

  # dumpe2fs -h DEVICE

 修改分区属性:tune2fs

  块大小无法调整;

  -j: ext2 --> ext3

  -L LABEL:修改卷标

  -m #: 修改预留空间百分比;

  -O [^]FEATURE: 启用指定特性,特性前加^,表示关闭此种特性

  -o [^]mount-options: 开启或关闭指定的挂载选项

 因进程意外中止或系统崩溃等情况导入写入操作非正常中止时,可能会导致文件损坏;此时,应该修复文件系统:

  注意:离线修复

  fsck

   -t fstype

   -a: 自动修复错误

   -r: 交互式修复错误

  e2fsck: 专用于修改ext系列文件系统

   -y: 对问题自动回答为yes

   -f: 强制进行检测

四、挂载

默认只有管理员才有权限

  将额外的分区与根文件系统上的某目录建立关联关系的过程;

   目录中的原有文件会被隐藏

  挂载点:另一个文件系统的访问入口

  挂载: mount DEVICE MOUNT_POINT

   固定挂载点:/mnt, /media

   mount [option]... [-t fstype] [-o option]  设备  挂载点

    挂载点:

     1、事先存在;

     2、使用空闲目录;

    常用的挂载选项:

     -t fstype:指定文件系统类型

     -r: readonly, 只读挂载

     -w: read and write, 读写挂载

     -L LABEL:以卷标方式指定设备, mount -L MYDATA 挂载点

     -U UUID: 以UUID的方式指定设备,mount UUID='uuid' 挂载点, mount -U uuid 挂载点

     -a: 自动挂载所有(/etc/fstab文件中定义的)的支持自动挂载设备

     -n: 挂载时,不更新/etc/mtab文件

    -o option:

     async:异步I/O,数据写操作先于内存完成,而后再根据某种策略同步至持久设备中

     sync: 同步I/O,

     atime/noatime: 文件和目录被访问时是更新最近一次的访问时间戳

     auto/noauto:设备是否支持mount的-a选项自动挂载

     diratime/nodiratime: 目录被访问时是更新最近一次的访问时间戳

     dev/nodev: 是否支持在此设备上使用设备;

     exec/noexec: 是否允许执行此设备上的二进制程序文件

     suid/nosuid: 是否支持在此设备的文件上使用suid

     remount: 重新挂载,通常用于不卸载的情况下重新指定挂载选项

     ro: 只读

     rw: 读写

     user/nouser: 是否允许普通挂载此文件设备

     acl: 在此设备是支持使用facl,默认不支持;

    例如:以指定挂载后支持acl为例:

     方法1:

      mount -o acl DEVICE MOUNT_POINT

     方法2:

      tune2fs -o acl DEVICE

       为设备设定默认挂载选项

      mount DEVICE MOUNT_POINT

   查看所有已经挂载的设备:

    # mount

    # cat /proc/mounts

    # cat /etc/mtab

    卸载:挂载点没有被进程访问时方可以卸载 ;

  卸载:umount DEVICE

     umount MOUNT_POINT

    查看哪些进程正在访问挂载的设备:

     fuser -v 挂载点

    中止正在此挂载点的进程:

     fuser -km 挂载点

  df: disk free

   -h: human-readable

   -i: 显示inode的使用信息而非默认的磁盘空间使用信息

  du: disk usage  每个大小

   -s:  总大小(summary)

   -h:  显示可识别的单位

五、swap分区

mkswap

  free: 查看内存及交换分区的使用信息

  启用某交换分区设备

   swapon [DEVICE]

    -a: all, 启用所有交换分区

    -p #: 指定此交换设备的优先级

  禁用某交换分区设备

   swapoff [DEVICE]

    -a: 禁用所有

 自动挂载的设备的配置文件:/etc/fstab

  6字段:

   挂载的设备:

    设备文件

    LABEL

    UUID

   挂载点:

   文件系统类型

   挂载选项:

    挂载选项可以有多个,彼此间使用逗号分隔;

   转储频率:

    0:从不转储

    1: 每天转储

    2: 每隔一天

   自检次序:

    0:不自检,额外创建的文件系统都无须自动自检

    1:首先自检,通常只有根文件系统需要首先自检

    2:次级自检,不同的设备可以使用同一个自检次序

    3

    ...

继续阅读