文件系统

文件系统

inode

硬盘存储数据:分区->格式化创建文件系统->挂载->存储数据

inode用来标识(存储数据属性信息,如ls -l)、block用来存储实际数据

inode大小为128k or 256k

df -i : 查看inode容量
df -h : 查看磁盘容量

  1. 磁盘被分区并格式化为ext4文件系统后,会生成一定数量的inode和block.
  2. niode的表现形式是一串数字,inode节点号相同的文件,互为硬链接文件,可以认为是一个文件的不同入口。
  3. block可以为1k, 2k, 4k几种,引导分区一般1k,普通分区一般4k.
  4. 即使文件很小,也会占用一个block。
  5. 每读取一个Block就会消耗一次IO操作
  6. 企业里文件一般比较大,block设置大一些会提升磁盘访问效率

1583409089570

存储小文件的时候需要考虑inode的大小、大文件则可以忽略inode的大小

软硬链接

  1. 硬链接会增加文件链接数、软链接不会。
  2. 软链接用得比较多,即使软件更新,软连接也不会改变,类似一个保存文件路径的文本文件(源文件改了名字会失效)。ln -s 源文件 软连接文件
  3. ..是上级目录的硬链接,.是自身目录的硬链接,所以创建一个新目录时,链接数为2;再创建一个子目录的话,本目录的链接数变为3(因为多了一个子目录的..), ln不能对目录做硬链接
  4. 硬链接相当于做了一次备份
  5. 硬链接文件与源文件的inode节点号相同,软链接不同。
  6. 软链接可以跨文件系统、硬链接不可以

linux删除block的条件:硬链接数为0、打开该文件的进程数为0

slof <file> : 查看占用该文件的进程

磁盘的最小存储单位叫“扇区”,一般为512字节

mount

  • mount可以选择挂载后,对文件的操作是否使用缓存(-sync),不使用缓存是为了预防断电后数据丢失。
  • -noatime, 不更新文件的访问时间,可以提升部分效率。
  • -t vfstype 指定文件系统的类型,通常不必指定。mount 会自动选择正确的类型。但是指定自定义的文件系统时需要。
  • -o loop 用来把一个文件当成硬盘分区挂接上系统
  • umount相当于window的弹出设备
  • lsof /mnt/ or fuser -m /mnt查看占用该挂载点的进程
  • 自动挂载: 配置/etc/stab (每行代表一个配置项)

loop设备

在类 UNIX 系统里,loop 设备是一种伪设备(pseudo-device),或者也可以说是仿真设备。它能使我们像块设备一样访问一个文件。
在使用之前,一个 loop 设备必须要和一个文件进行连接。这种结合方式给用户提供了一个替代块特殊文件的接口。因此,如果这个文件包含有一个完整的文件系统,那么这个文件就可以像一个磁盘设备一样被 mount 起来

posted @ 2020-03-06 07:02  friedCoder  阅读(143)  评论(0)    收藏  举报