网站首页 > 技术文章 正文
1、硬盘结构
1.1、硬盘的逻辑结构
每个扇区的大小是固定的,为512Byte。扇区也是磁盘的最小存贮单位。
硬盘的大小是使用“磁头数x柱面数x扇区数x每个扇区的大小”这样的公式来计算的。其中磁头数(Heads)表示硬盘总共有几个磁头,也可以理解成为硬盘有几个盘面,然后乘以二:柱面(Cylinders)表示硬盘每一面盘片有几条磁道;扇区数(Sectors)表示每条磁道上有几个扇区;每个扇区的大小一般是 512Byte。
1.2、硬盘接口
- IDE 硬盘接口(Integrated Drive Electronics,并口,即电子集成驱动器)也称作“ATA 硬盘或“PATA 硬盘”,是早期机械硬盘的主要接口,ATA133 硬盘的理论速度可以达到 133MB/S(此速度为理论平均值),IDE硬盘接口
- SATA 接口(Serial ATA,串口)是速度更高的硬盘标准,具备了更高的传输速度,并具备了更强的纠错能力。目前已经是 SATA 三代,理论传输速度达到 600MB/s(此速度为理论平均值)
- SCSI接口(Small Computer System Interface,小型计算机系统接口)广泛应用在服务器上,具有应用范围广、多任务、带宽大、CPU占用率低及支持热插拔等优点,理论传输速度达到320MB/s
2、文件系统
2.1、Linux文件系统特性
- super block(超级块):记录整个文件系统的信息,包括 block 与 inode 的总量,已经使用的 inode 和 block 的数量,未使用的 inode 和 block 的数量,block 与 inode 的大小,文件系统的挂载时间,最近一次的写入时间,最近一次的磁盘检验时间等。
- date block(数据块,也称作 block):用来实际保存数据的(柜子的隔断),block 的大小(1KB、2KB 或 4KB)和数量在格式化后就已经决定,不能改变,除非重新格式化(制作柜子的时候,隔断大小就已经决定,不能更改,除非重新制作柜子)。每个blcok 只能保存一个文件的数据,要是文件数据小于一个 block 块,那么这个 block 的剩余空间不能被其他文件是要:要是文件数据大于一个block块,则占用多个block 块。Windows 中磁盘碎片整理工具的原理就是把一个文件占用的多个 block 块尽量整理到一起,这样可以加快读写速度。
- inode(i 节点,柜子门上的标签):用来记录文件的权限(r、w、x),文件的所有者和属组,文件的大小,文件的状态改变时间(ctime),文件的最近一次读取时间(atime),文件的最近一次修改时间(mtime),文件的数据真正保存的 block 编号。每个文件需要占用一个 inode.
2.2、Linux常见的文件系统
ext4:是许多Linux发行版的默认文件系统,提供了良好的性能和可靠性。它支持大文件、大分区、文件压缩、在线碎片整理等特性。
XFS:由SGI开发,用于高性能的写入密集型应用,如数据库和文件服务器。XFS支持非常大的文件和卷,以及高并发操作。
NTFS:微软Windows的默认文件系统。Linux可以通过第三方驱动如ntfs-3g来读取和写入NTFS文件系统。
FAT32:一种较旧的文件系统,广泛用于USB闪存驱动器和移动存储设备。Linux可以原生支持FAT32文件系统的读取和写入。
exFAT:专为闪存存储设计的文件系统,支持大于4GB的文件和大容量存储设备。Linux对exFAT的支持正在逐渐改善。
Btrfs:一种现代化的文件系统,支持高级特性,如数据完整性校验、快照、文件系统级压缩和写入时复制(COW)。
ZFS:由Sun Microsystems开发,以其数据完整性、可扩展性和性能而闻名。ZFS是一个复杂的文件系统,提供了类似RAID的数据保护特性。
ReiserFS:一种性能优异的文件系统,特别是在小文件写入和大数量文件系统操作方面表现出色。
JFS:IBM开发的一种文件系统,用于大型数据库和文件服务器,支持文件系统级别的压缩。
Swap:虽然不是传统意义上的文件系统,但swap空间在Linux中用于虚拟内存,允许系统在物理内存不足时使用磁盘空间作为临时存储。
tmpfs:基于内存的临时文件系统,通常用于存储临时文件,如/dev/shm。
F2FS:Flash-Friendly File System,专为闪存存储(如SSD)设计,优化了闪存的读写特性。
UDF:通用磁盘格式,常用于光学介质和DVD视频。
ISO 9660:光盘的标准化文件系统,广泛用于数据CD和DVD。
OCFS2:Oracle Cluster File System的第二代,用于数据库和高可用性系统。
3、常用硬盘命令
3.1、df命令
df命令用于统计空间使用大小,统计剩余空间是准确的
df -hT
#-a显示特殊文件系统,这些文件系统几乎都是保存在内存中的。如/proc,因为是挂载在内存中,所以占用量都是0
#-h 单位不再只用KB,而是换算成习惯单位
#-T 多出了文件系统类型一列
3.2、du命令
du命令用于统计文件大小,统计的文件大小是准确的
du -sh /opt
选项:
-a 显示每个子文件的磁盘占用量。默认只统计子目录的磁盘占用量
-h 使用习惯单位显示磁盘占用量,如KB,MB 或 GB 等
-s 统计总占用量,而不列出子目录和子文件的占用量
lsof | grep deleted 查看被删除的文件
lsof 是 linux 下的一个非常实用的系统级的监控、诊断工具。 它的意思是 List Open Files,很容易你就记住了它是 “ls + of”的组合,它可以用来列出被各种进程打开的文件信息,记住:linux 下 “一切皆文件”,包括但不限于 pipes, sockets, directories, devices, 等等。 因此,使用 lsof,你可以获取任何被打开文件的各种信息,只需输入 lsof 就可以生成大量的信息,因为 lsof 需要访问核心内存和各种文件,所以必须以 root 用户的身份运行它才能够充分地发挥其功能。
3.3、fsck文件系统修复命令
fsck -y /dev/sdb1
3.4、查看文件的详细信息
[root@sun161 test]# stat aa.txt
- 上一篇: 在 Linux 系统中如何删除一个逻辑卷?
- 下一篇: Linux常见的目录及其作用
猜你喜欢
- 2025-01-14 如何使用mv命令在Linux中移动文件和目录?
- 2025-01-14 linux基础命令之rm命令
- 2025-01-14 如何更改 Linux 文件和目录权限?
- 2025-01-14 超详细的Linux 基础命令大全
- 2025-01-14 linux常用命令在线查询工具
- 2025-01-14 Linux命令执行过程(新手必读)
- 2025-01-14 Linux下用户的创建与删除
- 2025-01-14 61个Linux常用命令解读,掌握它=掌握Linux(内赠资料)
- 2025-01-14 chown 命令使用方法
- 2025-01-14 linux chmod命令设置目录/文件权限详解
- 02-21走进git时代, 你该怎么玩?_gits
- 02-21GitHub是什么?它可不仅仅是云中的Git版本控制器
- 02-21Git常用操作总结_git基本用法
- 02-21为什么互联网巨头使用Git而放弃SVN?(含核心命令与原理)
- 02-21Git 高级用法,喜欢就拿去用_git基本用法
- 02-21Git常用命令和Git团队使用规范指南
- 02-21总结几个常用的Git命令的使用方法
- 02-21Git工作原理和常用指令_git原理详解
- 最近发表
- 标签列表
-
- cmd/c (57)
- c++中::是什么意思 (57)
- sqlset (59)
- ps可以打开pdf格式吗 (58)
- phprequire_once (61)
- localstorage.removeitem (74)
- routermode (59)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- log.warn (60)
- cannotinstantiatethetype (62)
- js数组插入 (83)
- resttemplateokhttp (59)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- reader.onload (61)
- outofmemoryerror是什么意思 (64)
- flask文件上传 (63)
- eacces (67)
- 查看mysql是否启动 (70)
- java是值传递还是引用传递 (58)
- 无效的列索引 (74)