首页 > 系统服务 > 详细

Linux文件系统管理

时间:2019-05-27 00:45:12      阅读:207      评论:0      收藏:0      [点我收藏+]

Linux文件系统管理

1.文件系统

1.1定义:

文件在分区里面组织方法和数据结构

1.2常见:

windows: fat32 ntfs
linux: ext2 ext3 ext4 xfs

1.3名称:

  1. indode:用来存放文件的元数据(metadata)包括权限、属性、block号码、时间戳、文件类型、拥有者所属组等
  • stat FILE 查看文件元数据
  • ls -i FILE 查看文件inode编号
  • 一般存放在一个block的inode table中
  1. block:用于存放数据基本单位,普通block用于存放文件的实际数据
  2. superblock :用来存放文件系统整体信息,包括inode/block的总量、使用量、剩余,以及档案系统的格式和相关信息等
  • dumpe2fs /dev/sda1 查看整体信息

1.4链接

1.4.1软链接(符号链接)

  1. 用法:ln -s SRC DST
  2. 特点:可以跨文件系统、可以对目录和文件做
  3. 指向不同的inode,而且要申请新的block

    1.4.2硬链接

  4. ln SRC DST
  5. 特点:不可以跨文件系统、不能对目录做、删除一个文件并不影响另一个文件
  6. 同一个inode被多个文件引用为硬链接数

    1.4.3注意

  • 文件和文件名是不同的东西,rm A删除的只是A这个文件名,而A对应的数据块(文件)只有在inode节点链接数减少为0的时候才会被系统回收。

1.5思考

1.5.1题目

  1. block是越大越好还是越小越好?
  2. 目录的block有什么数据?
  3. 为什么/目录和/boot目录的inode编号一样?
  4. 为什么目录的大小都是block的倍数?
  5. 如果提示磁盘空间不足可能是什么原因?
  6. 一个文件系统能够创建的文件总数与什么有关?
  7. 创建、删除、移动、复制等操作对inode和block有什么影响?
  8. 硬链接为什么不能对目录做,为什么不能跨文件系统?

    1.5.2参考

  9. 视情况而定,要创建和存放多大的文件,避免浪费block的空间
  10. 存放文件的条目(entry),即文件→inode x
  11. 处在不同的文件系统,如sda1,sda2
  12. 因为是每个block用满之后再申请另一个block
  13. data block用尽;inode用尽(每个文件有且仅用一个inode,小文件太多)
  14. inode数量
    • 创建:先向文件系统申请空闲的inode,同时向目录所在的block里面写入文件entry
    • 复制:向目标文件系统申请空闲inode,根据源文件所需要的block数,向目标文件系统申请空闲的block,把源block数据复制到新的block中,同时向目标目录所在的block里面写入文件entry
    • 删除:硬链接数为1(将文件的inode和block置空,删除目录下文件的entry);硬链接数大于1(删除硬链接,再删除目录下文件的entry)
    • 移动文件:同文件系统(只移动entry);不同文件系统(向目标文件系统申请新的block和inode,将源数据复制到新block中,在新目录增加entry,删除源文件)
  15. 不能对目录做是因为同一个inode被链接的目录引用的话,目录下的文件也需要符合整个entry指向,会浪费很多系统空间;不能跨文件系统是因为在不同的文件系统中可能会出存在同一个inode指向不同的block.

2.文件系统管理

2.1创建文件系统的步骤

  1. 规划分区
  2. 查看当前硬盘可用空间

    • fdisk -l
  3. 分区
    • fdisk -cu /dev/sda
    交互式选项 功能
    d 删除分区
    l 列出已知分区类型
    m 打印此帮助
    n 新建分区
    p 打印分区表
    q 不保存退出
    t 修改分区ID
    w 保存分区信息到硬盘的分区表并退出
    • parted
      |选项|功能|
      |---|---|
      |||
  4. 重读分区表(重启)

    • partx -a /dev/sda
  5. 制作文件系统类型(格式化)

    • mkfs -t ext4 /dev/sda5(sda6,sda7)
  6. 挂载
    • 创建挂载点 mkdir /mnt/disk{1,2,3}
    • 挂载 mount -t ext4 /dev/sda5(6,7) /mnt/disk1(2,3)
    • 检查挂载信息 df -TH (type human-readable)
  7. 写入fstab

    • /dev/sda5(6,7) /mnt/disk1(2,3) ext4 defaults 0 0

3.挂载

  1. 语法:mount [options] Device Dir
  2. options:
    • -t FS_type文件系统类型
    • -o 挂载选项
      |挂载选项|功能|
      |---|---|
      |auto|能够被mount -a挂载|
      |sync/async|同步/异步|
      |defaults|使用默认挂载选项|
      |ro/rw|只读/读写|
      |loop|用于挂载本地的文件到本地目录|
      |remount|在不卸载的情况下重新挂载,修改其挂载选项|
    • 默认挂载选项是指rw,suid,dev,exec,auto,nouser,async
    • mount -t iso9660 -0 loop centos6.9_x86_64.iso /mnt/cd
    • mount -o remount,rw /mnt/disk1

4.fstab文件格式

  • 格式:[file system] [dir] [type] [options] [dump] [pass]
  • filesystem可以是分区名,也可以是UUID(blkid /dev/sda5),也可以是LABEL(e2label /dev/sda5 game)
  • dir:挂载点 ; type:文件系统类型(ext4)options:挂载选项(defaults);dump:是否备份(0/1);pass:是都fsck文件系统检查(0/1)

    5.卸载umount

  • 用法:umount [FILE]/[DIR]
  • 前提:文件系统不能被其他进程占用
  • 查看占用:losf DEVICE / fuser -av DEVICE/DIR

    6.swap分区

Linux文件系统管理

原文:https://www.cnblogs.com/benlack/p/10928379.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!