首页 > 代码库 > linux文件系统

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
    ...

本文出自 “从零开始” 博客,请务必保留此出处http://zerofly.blog.51cto.com/4476065/1531127