Linux文件系统管理
1.文件系统
1.1定义:
文件在分区里面组织方法和数据结构
1.2常见:
windows: fat32 ntfs
linux: ext2 ext3 ext4 xfs
1.3名称:
- indode:用来存放文件的元数据(metadata)包括权限、属性、block号码、时间戳、文件类型、拥有者所属组等
- stat FILE 查看文件元数据
- ls -i FILE 查看文件inode编号
- 一般存放在一个block的inode table中
- block:用于存放数据基本单位,普通block用于存放文件的实际数据
- superblock :用来存放文件系统整体信息,包括inode/block的总量、使用量、剩余,以及档案系统的格式和相关信息等
- dumpe2fs /dev/sda1 查看整体信息
1.4链接
1.4.1软链接(符号链接)
- 用法:ln -s SRC DST
- 特点:可以跨文件系统、可以对目录和文件做
指向不同的inode,而且要申请新的block
1.4.2硬链接
- ln SRC DST
- 特点:不可以跨文件系统、不能对目录做、删除一个文件并不影响另一个文件
同一个inode被多个文件引用为硬链接数
1.4.3注意
- 文件和文件名是不同的东西,rm A删除的只是A这个文件名,而A对应的数据块(文件)只有在inode节点链接数减少为0的时候才会被系统回收。
1.5思考
1.5.1题目
- block是越大越好还是越小越好?
- 目录的block有什么数据?
- 为什么/目录和/boot目录的inode编号一样?
- 为什么目录的大小都是block的倍数?
- 如果提示磁盘空间不足可能是什么原因?
- 一个文件系统能够创建的文件总数与什么有关?
- 创建、删除、移动、复制等操作对inode和block有什么影响?
硬链接为什么不能对目录做,为什么不能跨文件系统?
1.5.2参考
- 视情况而定,要创建和存放多大的文件,避免浪费block的空间
- 存放文件的条目(entry),即文件→inode x
- 处在不同的文件系统,如sda1,sda2
- 因为是每个block用满之后再申请另一个block
- data block用尽;inode用尽(每个文件有且仅用一个inode,小文件太多)
- inode数量
- 创建:先向文件系统申请空闲的inode,同时向目录所在的block里面写入文件entry
- 复制:向目标文件系统申请空闲inode,根据源文件所需要的block数,向目标文件系统申请空闲的block,把源block数据复制到新的block中,同时向目标目录所在的block里面写入文件entry
- 删除:硬链接数为1(将文件的inode和block置空,删除目录下文件的entry);硬链接数大于1(删除硬链接,再删除目录下文件的entry)
- 移动文件:同文件系统(只移动entry);不同文件系统(向目标文件系统申请新的block和inode,将源数据复制到新block中,在新目录增加entry,删除源文件)
不能对目录做是因为同一个inode被链接的目录引用的话,目录下的文件也需要符合整个entry指向,会浪费很多系统空间;不能跨文件系统是因为在不同的文件系统中可能会出存在同一个inode指向不同的block.
2.文件系统管理
2.1创建文件系统的步骤
- 规划分区
查看当前硬盘可用空间
- 分区
d |
删除分区 |
l |
列出已知分区类型 |
m |
打印此帮助 |
n |
新建分区 |
p |
打印分区表 |
q |
不保存退出 |
t |
修改分区ID |
w |
保存分区信息到硬盘的分区表并退出 |
- parted
|选项|功能|
|---|---|
|||
重读分区表(重启)
制作文件系统类型(格式化)
- mkfs -t ext4 /dev/sda5(sda6,sda7)
- 挂载
- 创建挂载点 mkdir /mnt/disk{1,2,3}
- 挂载 mount -t ext4 /dev/sda5(6,7) /mnt/disk1(2,3)
- 检查挂载信息 df -TH (type human-readable)
写入fstab
- /dev/sda5(6,7) /mnt/disk1(2,3) ext4 defaults 0 0
3.挂载
- 语法:mount [options] Device Dir
- 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文件格式
Linux文件系统管理
原文:https://www.cnblogs.com/benlack/p/10928379.html