1.基本上Linux最主要的文件系统为Ext2
该文件系统内的信息主要有:
superblock:记录此 filesystem 的整体信息,包括inode/block的总量、使用量、剩余量, 以及文件系统的格式与相关信息等;
inode:记录文件的属性,一个文件占用一个inode,同时记录文件的数据所在的 block 号码;
block:实际记录文件的内容,若文件太大时,会占用多个 block 。
2. Ext2文件系统的数据访问为索引式文件系统(indexed allocation)。
3. 需要碎片整理的原因就是文件写入的 block 太过于离散了,此时文件读取的效能将会变的很差所致。 这个时候可以透过碎片整理将同一个文件所属的 blocks 汇整在一起,这样数据的读取会比较容易。
4. Ext2文件系统主要有六大部分:
(1)data block (数据区块)
data block 是用来放置文件内容数据地方,在 Ext2 文件系统中所支持的 block 大小有 1K, 2K 及 4K 三种而已。
基本限制:
原则上,block 的大小与数量在格式化完就不能够再改变了(除非重新格式化);
每个 block 内最多只能够放置一个文件的数据;
承上,如果文件大于 block 的大小,则一个文件会占用多个 block 数量;
承上,若文件小于 block ,则该 block 的剩余容量就不能够再被使用了(磁盘空间会浪费)
(2)inode table (inode 表格)
总额:将直接、间接、双间接、三间接加总,得到 12 + 256 + 256*256 + 256*256*256 (K) = 16GB
此时我们知道当文件系统将 block 格式化为 1K 大小时,能够容纳的最大文件为 16GB。
(3)Superblock (超级区块)
Superblock 是记录整个 filesystem 相关信息的地方, 没有 Superblock ,就没有这个 filesystem 了。
(4)Filesystem Description (文件系统描述说明)
这个区段可以描述每个 block group 的开始与结束的 block 号码,以及说明每个区段 (superblock, bitmap, inodemap, data block) 分别介于哪一个 block 号码之间。这部份也能够用 dumpe2fs 来观察的。
(5)block bitmap (区块对照表)
(6)inode bitmap (inode 对照表)
5.superblock, inode bitmap 及 block bitmap 的数据是经常变动的,每次新增、移除、编辑时都可能会影响到这三个部分的数据,因此才被称为中介数据。
6.为什么你想要从ext2转换到ext3呢?
有四个主要的理由:可利用性、数据完整性、速度及易于转换。
7. 挂载点一定是目录,该目录为进入该文件系统的入口。
8.常见的支持文件系统有:
传统文件系统:ext2 / minix / MS-DOS / FAT (用 vfat 模块) / iso9660 (光盘)等等;
日志式文件系统: ext3 / ReiserFS / Windows' NTFS / IBM's JFS / SGI's XFS
网络文件系统: NFS / SMBFS
9.df:列出文件系统的整体磁盘使用量;
df 主要读取的数据几乎都是针对一整个文件系统,因此读取的范围主要是在 Superblock 内的信息, 所以这个命令显示结果的速度非常的快速
du:评估文件系统的磁盘使用量(常用在推估目录所占容量)
du 这个命令其实会直接到文件系统内去搜寻所有的文件数据, 所以上述第三个范例命令的运行会运行一小段时间。
10.实体链接与符号链接: ln
两种:一种是类似 Windows 的快捷方式功能的文件,可以让你快速的链接到目标文件(或目录); 另一种则是透过文件系统的 inode 连结来产生新档名,而不是产生新文件!这种称为实体链接 (hard link)。
11.Hard Link (实体链接, 硬式连结或实际连结)
hard link 只是在某个目录下新增一笔档名链接到某 inode 号码的关连记录而已
12.Symbolic Link (符号链接,亦即是快捷方式)
Symbolic link 就是在创建一个独立的文件,而这个文件会让数据的读取指向他 link 的那个文件的档名。
13.磁盘分区: fdisk [-l] 设备名称
d 删除一个分区
n 新增一个分区
p 在屏幕上显示分区表
q 不存储,离开fdisk程序
w 将刚才的操作写入分区表
使用『 p 』可以列出目前这颗磁盘的分割表信息,这个信息的上半部在显示整体磁盘的状态
14.磁盘格式化:
mkfs [-t 文件系统格式] 设备文件名
mke2fs [-b block大小] [-i block大小] [-L 卷标] [-cf]设备
mke2fs 是一个很详细但是很麻烦的命令!因为里面的细部配置太多了!
15.磁盘检验:
fsck [-t文件系统] [-ACay]设备名称
运行 fsck 时, 被检查的 partition 务必不可挂载到系统上!亦即是需要在卸除的状态。
badblocks [-svw]设备名称
16.磁盘挂载与卸除:mount
将装置文件卸除:umount
17.磁盘参数修订:
Mknod 设备文件名 [bcp] [Major] [Minor]
e2label 设备名称 新的Label名称
优点:不论磁盘文件名怎么变,不论你将硬盘插在哪个 IDE / SATA 接口,由于系统是透过 Label ,所以,磁盘插在哪个接口将不会有影响;
缺点:如果插了两颗硬盘,刚好两颗硬盘的 Label 有重复的,那就惨了~ 因为系统可能会无法判断哪个磁盘分区槽才是正确的!
18.启动挂载 /etc/fstab 及 /etc/mtab
第一栏:磁盘装置文件名或该装置的 Label:
第二栏:挂载点 (mount point)::
第三栏:磁盘分区槽的文件系统:
第四栏:文件系统参数:
第五栏:能否被 dump 备份命令作用:
第六栏:是否以 fsck 检验扇区:
19.启动自动挂载可参考/etc/fstab之配置,配置完毕务必使用 mount -a 测试语法正确否;