Linux 硬盘、分区和文件系统
我们可以根据存储的特性将存储分为内存和外存:
-
内存:又叫做主存储器,计算机中所有程序的运行都是在内存中进行。
-
外存:又叫做辅助存储器,因为内存容量小且断电会丢失所有数据。所以用来实现数据的持久化存储。例如:硬盘,U盘,软盘,光盘
硬盘和磁盘的关系:
包含关系,磁盘是一个广泛的概念,是一个总的称呼,用来描述多种不同类型的存储介质,包括硬盘、软盘、光盘、闪存盘等等。所以硬盘也可以被称为磁盘,因为硬盘也是一种磁性存储介质。
硬盘的类型:
根据存储原理的不同,可以将硬盘分为机械硬盘和固态硬盘两类。
-
机械硬盘:HDD(Hard Disk Drive), 由物理盘片、磁头、控制电机、转轴等几部分组成
-
固态硬盘:SSD(Solid State Drive) ,用固态电子存储芯片阵列而制成的硬盘
硬盘的接口类型:
-
IDE:并行接口,早期家用电脑接口(淘汰了)
-
SCSI:并行接口,早期服务器用的接口
-
SATA:SATA数据端口与电源端口是分开的,即需要两条线,一条数据线,一条电源线, 一般的家用电脑的接口
-
SAS:SAS是一整条线,数据端口与电源端口是一体化的,SAS中是包含供电线的,而SATA中不包含供电线。SATA标准其实是SAS标准的一个子集,二者可兼容,SATA硬盘可以插入SAS主板上,反之不行
-
USB:Universal Serial Bus,中文叫通用串行总线
-
M.2:M.2接口,是Intel推出的一种替代MSATA新的接口规范(M.2就是从笔记本诞生的)。可以兼容多种通信协议,如sata、PCIe、USB等。如果 M.2 插槽如果不支持特定的协议,相应的固态硬盘将无法识别和使用

硬盘的尺寸:
-
LFF:3.5寸硬盘
-
SFF:2.5寸硬盘
机械硬盘存储数据原理:
将整个盘面划分为很多个同心圆,每个圆圈叫作一个磁道。然后再把每个磁道划分为若干个块,每个块叫作一个扇区。规定每个扇区的空间大小是512字节。
把最外面的磁道叫作0磁道,0磁道的第一个扇区叫作0扇区。
硬盘的使用
将硬盘通过对应的接口线连接到主机上后,还需要对硬盘进行分区、格式化和挂载等操作才能正常使用硬盘。
-
分区:将一个物理硬盘在逻辑上分为多个硬盘,每一个逻辑硬盘就叫做一个分区
-
格式化:将存储设备初始化为特定的文件系统的过程,格式化会删除存储设备上的所有数据
-
挂载:将额外文件系统与根文件系统某现存的目录建立起关联关系
分区的类型:
常用的分区类型有两种,MBR分区和GPT分区;
-
MBR分区:MBR是Master Boot Record(主引导记录)的缩写,使用32位表示扇区数,分区的大小不能超过2T,最多只能有四个主分区,如果需要使用更多的分区,可以将一个分区格式化为逻辑分区,再基于逻辑分区创建多个扩展分区。
-
GPT分区:GPT是GUID(Globals Unique Identifiers) partition table的缩写,最多支持128个分区,其中没有扩展分区的概念。每个分区都可以是主分区.每个分区的最大空间理论上可以达到9.4ZB
boot loader的概念
boot loader叫作引导加载器,是计算机启动过程中运行的一小段程序,负责加载并启动操作系统。
常见的bootloader:
GRUB(GNU GRand Unified Bootloader)、LILO(Linux Loader)、Windows Boot Manager
分区类型和系统引导程序的关系:
现在计算机常用的系统引导程序有BIOS和UEFI
-
BIOS:BIOS是BasicInput/Output System(基本输入输出系统)的缩写。是一个很老的引导程序了。BIOS是电脑主板上内置的程序代码。
-
UEFI:UEFI是由EFI(Extensible Firmware Interface:可扩展固件接口)发展而来的,EFI刚开始是英特尔的专有技术,旨在代替BIOS,后来大家都觉得这项技术比价好,所以经过很多大公司的推动和支持,发展成为了UEFI((Unified Extensible Firmware Interface:统一的可扩展固件接口)
BIOS和UEFI的区别:
-
BIOS只能引导传统的MBR分区,UEFI支持MBR、GPT等分区。
-
UEFI提供了Secure Boot(安全启动)功能,在启动过程中只加载由受信任的制造商签名的软件和驱动程序。
-
UEFI支持的硬件设备和接口更多,例如USB 3.0、NVMe、网络堆栈等
-
UFEI提供了图形界面,可以用鼠标操作,BIOS只能用键盘操作。
说明:
-
windows:只能安装 BIOS + MBR 或是 UEFI + GPT组合。
-
linux:可以实现 BIOS + GPT + GRUB 组合
文件系统:
文件系统就是在操作系统中负责管理和存储文件信息的软件结构称为文件管理系统。在我们格式化硬盘的时候,就是在创建文件系统的过程。
windows 常用文件系统
-
FAT32:最多只能支持16TB的文件系统和单个文件的最大大小是4GB。
-
NTFS:New Technology File System。windows独有的文件系统,linux默认不支持。最多只能支持16EB的文件系统和16EB的文件
-
exFAT:Linux和windows都支持,时为了解决FAT32等不支持4G及其更大的文件而推出,适合于闪存的文件系统,例如U盘。
Linux 常用文件系统
-
ext系列:最新版本的时ext4,Ext4的文件系统容量达到1EB,而支持单个文件则达到16TB,理论上支持无限数量的子目录。
-
xfs:最大可以支持8EB的文件系统,而支持单个文件则达到8EB,能以接近裸设备I/O的性能存储数据。
-
swap:用于Linux的交换分区,在Linux中,使用整个交换分区来提供虚拟内存。
-
iso9660: 光盘的文件系统类型
裸文件系统
raw:一个没有文件系统的存储设备,可以直接被特定应用程序访问而不通过常规文件系统的设备。
裸文件系统说明:
没有文件系统的裸设备对于普通用户和常规应用程序来说,缺乏标准的数据组织和管理方式,因此常见的文件操作如浏览、拷贝、删除等不可用。但特定的应用程序,如果它知道如何在裸设备上组织和管理数据,它可以直接与设备进行交互,执行读写操作。这通常在那些需要直接硬件访问和高性能的场景中发生,例如某些数据库存储系统可能直接在裸设备上管理其数据。
网络文件系统
-
NFS:(Network File System)网络文件系统,一般使用在局域网中。
-
CIFS:(Common Internet File System)通用过internet文件系统。
虚拟文件系统
VFS: 为用户程序提供文件和文件系统操作的统一接口,屏蔽不同文件系统的差异和操作细节。

例如: 使用ls查看磁盘上的文件,因为文件系统的功能是由操作系统的内核提供,应用程序是通过访问文件系统,然后文件系统再去访问具体的文件,但是不同文件系统底层是实现和区别差别可能非常大。所以程序的系统调用可能会不同,为了方便程序的统一调用,就就使用了虚拟文件系统提供统一的接口。
Linux中文件系统的组成:
Linux中的文件系统可以理解为由三部分组成。内核中的模块提供对应文件系统的功能,虚拟文件系统供统一的接口,用户空间的管理工具对文件系统进行管理。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了