Linux存储结构
Linux目录结构
磁盘命名规则
/dev/sda
/dev/sdb
/dev/sdc
磁盘名是系统的识别顺序决定的,在系统启动过程中,内核会按照扫描到硬盘的顺序分配盘符;
udev设备管理器服务决定了设备在/dev目录中的名称;
系统识别磁盘的顺序一般和主板上的磁盘插槽顺序一致;这仅仅是一种巧合.
磁盘插槽顺序只是影响了系统识别顺序。
但不代表系统识别磁盘的顺序就是按照磁盘插槽顺序进行的.
查看系统中的磁盘列表
lsblk
磁盘扇区
每个磁盘由N个扇区组成;
每个扇区占用512字节
第一个扇区非常重要,保存了主引导记录(MBR)及分区表信息.
MBR占用了446个字节,(其实还有两个字节作为扇区的结束符);剩余64个字节;
每写入一个分区的信息,需要占用16个字节;只能保存4个分区的信息.
也就是说,一个磁盘只能有4个主分区;
四个以上的分区需要用逻辑分区.
MBR分区表和GPT分区表
主分区
只有把分区信息写入在第一个扇区上面的才把它叫做主分区.
如果将分区信息直接写入第一个扇区的话,它就是主分区,MBR格式分区表,最多4个主分区;
GPT分区表最多128个主分区。
扩展分区
如果我们需要4个以上分区,那就要取出一个原先用于保存分区信息的16个字节,作为一个指针,指向到一个新的扇区上面,又有了一个新的512字节的空间,512/16后,又有了64个用于保存分区信息的空间.
- 只有把分区信息写入在第一个扇区上面的才把它叫做主分区.
原有用来保存16字节分区信息的那个空间,用来作为指针了,这个指针叫做“扩展分区”;
指针不能存储分区信息,它只是一个指针而已;作用是指向一个空的空间;
一个扩展分区就有一个指针.
逻辑分区
在指针指向的空的512字节的空间(新的扇区)中创建的分区,叫做逻辑分区
分区建议
3主分区+1扩展分区
分区编号
主分区的编号是1到4
扩展分区的编号1到4
逻辑分区的编号是5—(5以后)
文件存储结构
所有的文件都由两部分构成:
inode和block之间的关系就像是一本书一样,inode是一本书的目录,一本书会有很多内容,一个知识点或者一个故事会占很多页,一个block就相当于书中的一页内容。
- inode(索引节点)
保存文件的属性信息和指针
inode大小一般是128字节或256字节,一个文件不足128字节或245字节,也会占用一个inode;
inode和block的大小是可以手动去指定的,并且在不同的操作系统和文件系统下inode和block的大小是不一样的。
- 文件名称
- 文件属主的User ID
- 文件属组的Group ID
- 文件的读、写、执行权限
- 文件的时间戳
- ctime创建时间
- mtime内容上一次修改时间
- atime 文件最后一次被访问时间
- 文件大小
- 链接数,即有多少文件名指向这个inode
- 指针–指向block,即文件数据block的位置
- 可以用stat命令,查看某个文件的inode信息
- block(块)
系统读硬盘时,一次性连续读取多个扇区(一扇区512字节,约0.5kb),即一次性读取一个"块"(block)。这种由多个扇区组成的"块",是文件存取的最小单位。"块"的大小,最常见的是4KB,即连续八个 sector组成一个 block。
文件数据都储存在"块"中
- block才是文件的实际数据(内容)
测试题
- /dev/sdc4 是主板上第三个磁盘插槽的设备吗?
答: 不一定
- /dev/sdc4 这块硬盘上有4个分区?
答: 不一定,分区编号4可能是扩展分区,扩展分区下可能还有逻辑分区
- /dev/sdc4 是个主分区吗?
答: 不一定,分区编号4还可能是扩展分区
- /dev/sdc8 是个逻辑分区吗?
答: 是的
- 哪个服务决定了设备在/dev目录中的名称?
**答:**udev设备管理器服务。
文件系统
文件系统包含VFS和具体文件系统
VFS
虚拟文件系统,动态将用户产生的数据格式双向转换为对应的文件系统格式,让用户不用再关心底层的文件系.