Linux学习笔记(三)Linux磁盘与文件系统管理

http://vbird.dic.ksu.edu.tw/linux_basic/linux_basic.php


1.目前Linux主要使用的文件系统为Ext4/Ext3,该文件系统内的信息主要有:

a.superblock:记录此filesystem的整体信息,包括inode/block的总量、使用量、剩余量,以及文件系统的格式与相关信息等。

b.inode:记录文件的属性,一个文件占用一个inode,同时记录此文件所在的block号码;

c.block:世纪记录文件的内容,若文件太大时,会占用多个block。

2.索引式文件系统(indexed allocation)与FAT文件系统对比:

inode/block 数据存取示意图                                        FAT文件系统数据存取示意图

inode/block 数据存取示意图                                                                                                                                                FAT文件系统数据存取示意图

在索引式文件系统下,操作系统可以通过inode直接获取到四个block的位置,故而可以排列磁盘的阅读顺序,

而在FAT文件系统中只能依次的读取完一个block后才能下一个block的位置,当block过于分散时读取效率会大大降低,因此需要“磁盘整理”。

3.inode(128bytes),里面有12个直接指向block号码的对照,这12笔记录可以直接取得block号码,也可以再拿一个block来记录block号码,如果文件太大时,就会使用间接的block来记录编号。如果文间持续增大,则会使用二层间接和三层间接。故文件系统支持的最大文件大小为(1.block=1k的情况下,2.每笔block号码的记录会花去4bytes):12*1K+256*1K+256*256*1K+256*256*256*1K=16G.

4.日志文件系统(Journaling filesystem)

一般来说,我们将 inode table 与 data block 称为数据存放区域,至于其他例如 superblock、block bitmap 与 inode bitmap 等区段就被称为 metadata (中介数据) 啰,因为 superblock, inode bitmap 及 block bitmap的数据是经常变动的,每次新增、移除、编辑时都可能会影响到这三个部分的数据,因此被称为中介数据。

a.预备:当系统要开始写入一个文件时,会先在日志记录区块中记录某个文件准备要写入的信息。

b,实际写入:开始写入文件的权限和数据;开始升级metadata的数据;

c.结束;完成数据和metadata的升级后,在日志记录区块中完成文件的记录。

在日志文件系统中不需要每次去对比真实的数据,只需要检查日志即可处理文件系统不一致的问题。

5.df主要查询superblock的内容,故而速度很快

[root@www ~]# df [-ahikHTm] [目录或文件名]
选项与参数:
-a  :列出所有的文件系统,包括系统特有的 /proc 等文件系统;
-k  :以 KBytes 的容量显示各文件系统;
-m  :以 MBytes 的容量显示各文件系统;
-h  :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;
-H  :以 M=1000K 取代 M=1024K 的进位方式;
-T  :连同该 partition 的 filesystem 名称 (例如 ext3) 也列出;
-i  :不用硬盘容量,而以 inode 的数量来显示

6.du会直接到文件系统内去搜寻所有的文件数据,速度较慢

[root@www ~]# du [-ahskm] 文件或目录名称
选项与参数:
-a  :列出所有的文件与目录容量,因为默认仅统计目录底下的文件量而已。
-h  :以人们较易读的容量格式 (G/M) 显示;
-s  :列出总量而已,而不列出每个各别的目录占用容量;
-S  :不包括子目录下的总计,与 -s 有点差别。
-k  :以 KBytes 列出容量显示;
-m  :以 MBytes 列出容量显示;
7.ln,硬链接与软链接

  • 每个文件都会占用一个 inode ,文件内容由 inode 的记录来指向;
  • 想要读取该文件,必须要经过目录记录的文件名来指向到正确的 inode 号码才能读取。

实体链接的文件读取示意图

硬链接:添加一个文档名指向同一个inode,一般来说,使用 hard link 配置链接文件时,磁盘的空间与 inode 的数目都不会改变!我们还是由上图来看,由图中可以知道, hard link 只是在某个目录下的 block 多写入一个关连数据而已,既不会添加 inode 也不会耗用 block 数量。

因为硬链接最后是多个文档名指向同一个inode,故而只能在同一个文件系统之内才能链接。且不能链接目录。

符号链接的文件读取示意图

软链接:类似与windows下的快捷方式,原文件删除则链接无效。

[root@www ~]# ln [-sf] 来源文件 目标文件
选项与参数:
-s  :如果不加任何参数就进行连结,那就是hard link,至于 -s 就是symbolic link
-f  :如果 目标文件 存在时,就主动的将目标文件直接移除后再创建!

8.磁盘的分割、格式化及挂载

磁盘分区: fdisk

[root@www ~]# fdisk [-l] 装置名称
选项与参数:
-l  :输出后面接的装置所有的 partition 内容。若仅有 fdisk -l 时,
      则系统将会把整个系统内能够搜寻到的装置的 partition 均列出来。

磁盘格式化:mkfs

[root@www ~]# mkfs [-t 文件系统格式] 装置文件名
选项与参数:
-t  :可以接文件系统格式,例如 ext3, ext2, vfat 等(系统有支持才会生效)

挂在/卸载:mount/umount

[root@www ~]# mount -a
[root@www ~]# mount [-l]
[root@www ~]# mount [-t 文件系统] [-L Label名] [-o 额外选项] \
 [-n]  装置文件名  挂载点
选项与参数:
-a  :依照配置文件 /etc/fstab 的数据将所有未挂载的磁盘都挂载上来
-l  :单纯的输入 mount 会显示目前挂载的信息。加上 -l 可增列 Label 名称!
-t  :与 mkfs 的选项非常类似的,可以加上文件系统种类来指定欲挂载的类型。
      常见的 Linux 支持类型有:ext2, ext3, vfat, reiserfs, iso9660(光盘格式),
      nfs, cifs, smbfs(此三种为网络文件系统类型)
-n  :在默认的情况下,系统会将实际挂载的情况实时写入 /etc/mtab 中,以利其他程序
      的运行。但在某些情况下(例如单人维护模式)为了避免问题,会刻意不写入。
      此时就得要使用这个 -n 的选项了。
-L  :系统除了利用装置文件名 (例如 /dev/hdc6) 之外,还可以利用文件系统的标头名称
      (Label)来进行挂载。最好为你的文件系统取一个独一无二的名称吧!
-o  :后面可以接一些挂载时额外加上的参数!比方说账号、密码、读写权限等:
      ro, rw:       挂载文件系统成为只读(ro) 或可擦写(rw)
      async, sync:  此文件系统是否使用同步写入 (sync) 或异步 (async) 的
                    内存机制,请参考文件系统运行方式。默认为 async。
      auto, noauto: 允许此 partition 被以 mount -a 自动挂载(auto)
      dev, nodev:   是否允许此 partition 上,可创建装置文件? dev 为可允许
      suid, nosuid: 是否允许此 partition 含有 suid/sgid 的文件格式?
      exec, noexec: 是否允许此 partition 上拥有可运行 binary 文件?
      user, nouser: 是否允许此 partition 让任何使用者运行 mount ?一般来说,
                    mount 仅有 root 可以进行,但下达 user 参数,则可让
                    一般 user 也能够对此 partition 进行 mount 。
      defaults:     默认值为:rw, suid, dev, exec, auto, nouser, and async
      remount:      重新挂载,这在系统出错,或重新升级参数时,很有用!

[root@www ~]# umount [-fn] 装置文件名或挂载点
选项与参数:
-f :强制卸除!可用在类似网络文件系统 (NFS) 无法读取到的情况下;
-n :不升级 /etc/mtab 情况下卸除。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值