文件系统
文件系统
inode
硬盘存储数据:分区->格式化创建文件系统->挂载->存储数据
inode用来标识(存储数据属性信息,如ls -l)、block用来存储实际数据
inode大小为128k or 256k
df -i
: 查看inode容量
df -h
: 查看磁盘容量
- 磁盘被分区并格式化为ext4文件系统后,会生成一定数量的inode和block.
- niode的表现形式是一串数字,inode节点号相同的文件,互为硬链接文件,可以认为是一个文件的不同入口。
- block可以为1k, 2k, 4k几种,引导分区一般1k,普通分区一般4k.
- 即使文件很小,也会占用一个block。
- 每读取一个Block就会消耗一次IO操作
- 企业里文件一般比较大,block设置大一些会提升磁盘访问效率
存储小文件的时候需要考虑inode的大小、大文件则可以忽略inode的大小
软硬链接
- 硬链接会增加文件链接数、软链接不会。
- 软链接用得比较多,即使软件更新,软连接也不会改变,类似一个保存文件路径的文本文件(源文件改了名字会失效)。
ln -s 源文件 软连接文件
..
是上级目录的硬链接,.
是自身目录的硬链接,所以创建一个新目录时,链接数为2;再创建一个子目录的话,本目录的链接数变为3(因为多了一个子目录的..
), ln不能对目录做硬链接- 硬链接相当于做了一次备份
- 硬链接文件与源文件的inode节点号相同,软链接不同。
- 软链接可以跨文件系统、硬链接不可以
linux删除block的条件:硬链接数为0、打开该文件的进程数为0
slof <file>
: 查看占用该文件的进程
磁盘的最小存储单位叫“扇区”,一般为512字节
mount
- mount可以选择挂载后,对文件的操作是否使用缓存(
-sync
),不使用缓存是为了预防断电后数据丢失。 -noatime
, 不更新文件的访问时间,可以提升部分效率。- -t vfstype 指定文件系统的类型,通常不必指定。mount 会自动选择正确的类型。但是指定自定义的文件系统时需要。
- -o loop 用来把一个文件当成硬盘分区挂接上系统
- umount相当于window的弹出设备
lsof /mnt/
orfuser -m /mnt
查看占用该挂载点的进程- 自动挂载: 配置
/etc/stab
(每行代表一个配置项)
loop设备
在类 UNIX 系统里,loop 设备是一种伪设备(pseudo-device),或者也可以说是仿真设备。它能使我们像块设备一样访问一个文件。
在使用之前,一个 loop 设备必须要和一个文件进行连接。这种结合方式给用户提供了一个替代块特殊文件的接口。因此,如果这个文件包含有一个完整的文件系统,那么这个文件就可以像一个磁盘设备一样被 mount 起来。