关于Linux的硬盘结构,前面在文件系统中记录过一部分,下面详细记录一下关于Linux的硬盘与分区结构。可以结合:https://www.cnblogs.com/641055499-mozai/p/11779936.html 与 https://www.cnblogs.com/641055499-mozai/p/11817125.html
一、Linux分区。
分区介绍:
在现在技术中,硬盘的分区主要有两种:MBR(主引导记录分区表)与GPT(GUID分区表)。
MBR:支持最大单个硬盘2.1TB,(若大于2.1TB,则多余部分无法使用);最多支持4个主分区,或者3个主分区1个扩展分区(扩展分区内可以划分逻辑分区)。
GPT:支持最大单个硬盘18EB,(1EB=1024PB=1024*1024TB);最多支持128个分区,1个系统保留分区,127个用户自定义分区。
在Linux中,是分区挂载到目录的。比如boot分区,是挂载到 /boot 这一目录中的,进入 /boot目录就相当于进入到 boot分区中。
每个分区内都包含一个文件系统。
二、文件系统介绍。
1、分类:在Windows中,文件系统包括FAT16(Linux中的fat文件系统)、FAT32(Linux中的vfat文件系统)、NTFS(Linux中需要安装ntfs-3g插件)。Linux中包含EXT、EXT2、EXT3、EXT4、XFS、iso9660。
2、补充:
(a):XFS文件系统是一个日志型文件系统,它能够在断电或系统崩溃的情况下保证文件系统数据的一致性。
(b):iso9660是光盘的标准文件系统。
(c):NFS是网络文件服务,可以实现不同主机之间共享文件的网络服务,本地主机可以通过挂载的方式共享资源。
(d):swap是Linux中交换分区的文件系统,类似于Windows中的虚拟内存,当内存不够时,暂时代替内存。它是Linux中的必需分区。
3、结构:在Linux中,文件系统的结构可以分为以下几部分。
(a)自举块:为磁盘分区的第一个块,记录文件系统分区的一些信息,引导加载当前分区的程序和数据被保存在这个块中。也被称为引导块或MBR(主引导记录)
(b)超级块(super block):用于记录block与inode的总量、使用 量、剩余量,数据真正存放的block编号,文件系统的挂载时间,最近一次写入数据的时间等。可以说,没有超级块,就没有这个文件系统。为防止super block出现问题,会有多个副本,用的使用只用一个,这样避免了当超级块出现问题时,影响整个文件系统安全性。
(c)i节点(inode):inode是用来记录文件属性的,比如说:文件的权限、所有者与组、文件的大小、修改时间等。一个文件占用一个inode,系统读取文件的时候,需要先找到inode,并分析inode所记录的权限与用户是否符合,若符合才能够开始实际读取block的内容。
(d)数据块(dateblock或block):用于实际存储数据。block的大小分为1KB、2KB、4KB(若改变大小,则需要重新格式化),一个block只能存储一个文件的数据,文件的数据大时,会占用多个block。
三、相关命令
1、df 命令 (查看空间使用占用率)
用法:df 选项
选项:-T 显示文件系统类型
-h 将存储单位转化为常用单位,一般是GB/MB等。
2、ll(ls -l)命令
用法:ll 选项 文件名
选项:-h 将存储单位转化为常用单位,一般是GB/MB/KB等。
3、du 命令
用法:du 选项 目录
选项:-a 统计目录下每个文件的大小。默认情况下只统计目录的大小。
-h 将存储单位转化为常用单位,一般是GB/MB/KB等。
-s 直接显示出目录大小,不一一列出子目录和子文件的大小。
注意:命令1和命令3都有统计磁盘使用情况的作用。但是,命令1统计磁盘的信息中包含临时文件和未释放的文件等等,系统重启就会被释放,所以命令1统计的只有剩余空间是准确的;命令3统计磁盘已使用信息或者目录大小是准确的。
4、fsck(修复文件系统)
用法:fsck 选项 设备名
这个命令在开机时会自动执行。
5、stat (查看文件详细信息)
用法:stat 文件名