IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

linux磁盘管理学习笔记(上)

SourceJoy 2010-08-26 09:32:08 累计浏览 4,326 次
本机暂存

要玩儿转linux,磁盘管理是必须的,为期三篇的文章,就详细将一下Linux磁盘管理吧。
本篇主要讲一下磁盘的相关基础知识。

首先说说硬盘基础知识

硬盘最小的物理组成单位为扇区(sector),数个扇区组成同心圆时,就成为柱面(cylinder)。

1个硬盘分为两个区域,一个是MBR(主引导分区),一个是数据区域。

MBR里记录了两个重要信息,分别是引导程序与磁盘分区表。

分区表定义了“第n个磁盘块是从第x个柱面到第y个柱面”,所以,系统每次都取n磁盘块时,就只会读取第x到第y个扇区之间数据。

由于MBR容量有限,设计的时候,就只有设计成4个分区记录,4个主分区或者3个主分区和一个扩展分区。

如果超过四个分区,系统允许在额外的硬盘空间放另一份磁盘分区信息,那就是扩展分区,当硬盘被出一个扩展分区的时候,实际上扩展分区在MBR磁盘分区表中的信息为另外那份分区表的位置。所以,在扩展分区里面还要划分逻辑分区才能使用。
主分区每个硬盘最多只允许4个,其他的分区只能放在扩展分区中。


一个磁盘扇区512个字节,操作系统引进逻辑块概念,加快磁头读取扇区速度,一个逻辑块只能保存1个文件,如果分配磁盘空间的时候,划分大块,而存储的都是小文件,就会造成磁盘空间浪费。


磁盘分区时,每个分区就是一个文件系统,每个文件系统的第一个块,为超级块,保存了当前文件系统的相关信息。

磁盘的基本知识就是这样啦,windows和Linux是通用的,在windows下也是只能建立4个分区的。

下面再讲讲linux下的文件系统ext2

ext2文件系统把linux文件分为属性和内容两部分,在ext2中,分为inode和块分别存储文件的属性(包括属性信息,文件内容块指针)和文件内容。所以,分区格式化为ext2时,就必须要指定inode与块大小。

接下来说说linux如何读取一个文件内容
目录:
建立一个目录时,ext2给该目录分配一个inode和至少一个块。inode记录该目录的相关属性,和目录的块指针。块记录在这个目录下的相关文件(或目录)的关联性。
文件:
建立文件时,ext2会给该文件分配至少一个inode与对于该文件大小的块数量。inode本身不记录文件名,而是记录文件的相关属性,文件名记录在目录所属块块中。文件相关连接都会记录在目录块数据区。所以读取一个文件内容时,linux会先由根(/)递归获取该文件的上级目录所在inode,再由该目录所记录的文件关联性获取该文件的inode,最后通过inode内提供的块指针来获取最终文件内容。

一个分区所能容纳的最大文件数和inode的数量有关,因为一个文件至少占一个inode。

一个目录下面的文件数太多,无法容纳所有相关信息,linux就会给予该目录多个块继续记录关联数据。


通常inode数量设置为“分区容量”除以“一个inode预计要控制的容量”。
比如:
若块规划为4K,假设一个inode控制两个块,即一个文件大小在8k左右,分区容量为1G,则inode数量inode数量有:(1G*1024M/G*1024K/M)/(8K)=131072个。而一个inode占128个字节,则inode表为16M,也就是说1G分区,没有使用前,已经少了16M容量。


因此inode数量比块多是没有意义的。
块越小,inode数量越多,可利用的空间就越多,但大文件写入的效率就差,适用于小文件系统。
块越大,inode数量越少,大文件写入效率较好,但可能浪费更多时间,使用大文件系统。

基础知识就是这么多啦,相信大家对Linux磁盘管理有了大体的了解,接下来几篇就会讲讲linux磁盘管理的具体操作命令了。

-CONTINUE-

同分类推荐文章

  1. 从零重建 macOS 开发机:可复现的环境初始化流程 (2026-06-14 20:36:00)
  2. 百度物理网络监控工具开源第二弹:毫秒级监控工具 baize,让你的网络问题无处遁形 (2026-06-11 08:10:28)
  3. How to Set Up Homebrew Tap for Private CLI Tools: A Complete Guide (2026-05-27 02:13:03)

查看更多 DevOps 文章 →

建议继续学习

  1. Linux如何统计进程的CPU利用率 (累计阅读 16,307)
  2. 我的 RHCA 之路 (累计阅读 14,012)
  3. Linux内存点滴 用户进程内存空间 (累计阅读 13,228)
  4. 给程序员新手的一些建议 (累计阅读 13,088)
  5. Linux 性能监控、测试、优化工具 (累计阅读 13,011)
  6. 关于linux内存free的一些事情 (累计阅读 12,867)
  7. ps - 按进程消耗内存多少排序 (累计阅读 12,686)
  8. Google怎么用linux (累计阅读 12,580)
  9. Linux Used内存到底哪里去了? (累计阅读 11,866)
  10. find命令的一点注意事项 (累计阅读 11,864)