Linux 硬盘及分区概念
核心概念层级图
为了清晰理解,我们可以将整个存储管理分为几个层级:
物理硬盘 → 分区/逻辑卷 → 文件系统 → 挂载点
下面我们自底向上解释。
1. 物理硬盘
在 Linux 中,硬盘设备被表示为 /dev/ 目录下的一个文件。
-
命名规则:
-
SATA / SAS / NVMe (SSD):
sdX-
例如:第一块硬盘
/dev/sda,第二块/dev/sdb。 -
分区则用数字表示:
/dev/sda1、/dev/sda2。
-
-
NVMe (M.2 SSD):
nvmeXnYpZ-
X是控制器编号,Y是命名空间(通常为1),Z是分区号。 -
例如:第一个控制器的第一个分区:
/dev/nvme0n1p1。
-
-
旧式 IDE:
hdX(现在已较少见)。
-
-
查看硬盘命令:
-
lsblk:最常用,以树形显示所有块设备(硬盘、分区)。 -
fdisk -l或sudo fdisk -l:列出详细信息,包括分区表类型。 -
sudo blkid:显示设备的UUID和文件系统类型。 -
cat /proc/partitions:查看内核识别的分区信息。
-
2. 分区表
分区表是写在硬盘最开始扇区的“地图”,告诉系统硬盘是如何划分的。主要有两种类型:
-
MBR
-
主引导记录,传统方案。
-
限制:最多支持 4个主分区,或 3个主分区 + 1个扩展分区(扩展分区内可再分多个逻辑分区)。最大支持 2.2TB 硬盘。
-
识别:
fdisk -l会显示Disklabel type: dos。
-
-
GPT
-
GUID 分区表,现代标准。
-
优势:几乎无分区数量限制(通常支持128个以上),支持大于 2.2TB 的硬盘,更安全(有备份和CRC校验)。
-
识别:
fdisk -l会显示Disklabel type: gpt。 -
需要 UEFI 固件支持(现代电脑都支持)。
-
3. 分区
硬盘被划分成独立逻辑区域,每个分区在 /dev/ 下表现为一个独立的设备文件(如 /dev/sda1)。
-
分区类型:
-
主分区:MBR下可以直接使用的分区。
-
扩展分区:MBR下的特殊容器,本身不能直接使用,用于包含逻辑分区。
-
逻辑分区:在MBR扩展分区内创建,编号从5开始(
/dev/sda5)。 -
GPT分区:所有分区都是平等的,没有主/逻辑之分。
-
-
Linux下的常见分区方案:
-
/(根分区):必需,包含操作系统核心文件。 -
/boot:存放系统启动所需文件(内核、initramfs)。在旧系统或使用LVM时推荐单独分区。使用UEFI/GPT时,必须有 EFI系统分区。 -
/home:强烈建议单独分区,存放用户数据。系统重装时可以保留。 -
swap(交换分区):用作虚拟内存,现在也可以使用 交换文件。 -
/var:存放经常变化的文件(日志、缓存)。对服务器建议独立。 -
/tmp:临时文件。
-
4. 文件系统
分区就像一块“空地”,文件系统则是上面的“建筑规则和道路规划”,决定了数据如何存储、索引。
-
常见 Linux 文件系统:
-
ext4: 最常用、稳定可靠的默认选择。
-
XFS: 高性能,特别适合大文件(如数据库、视频),在线调整大小(只能扩大)。
-
Btrfs: 高级功能(写时复制、快照、子卷、数据去重),但仍在发展中。
-
ZFS: 企业级,功能极其强大(快照、压缩、纠删码),但非原生Linux内核,许可问题需注意。
-
FAT32 / NTFS / exFAT: Windows文件系统,Linux通过内核驱动支持,常用于U盘或跨平台共享。
-
-
创建文件系统(格式化):
sudo mkfs.ext4 /dev/sdb1 # 格式化为ext4 sudo mkfs.xfs /dev/sdb2 # 格式化为XFS
5. 挂载
将分区(及其上的文件系统)关联到目录树上的某个目录,这个目录称为 挂载点。只有挂载后,才能通过文件系统访问其中的数据。
-
挂载命令:
sudo mount /dev/sdb1 /mnt/mydata-
将设备
/dev/sdb1挂载到目录/mnt/mydata。/mnt/mydata目录必须已存在。
-
-
卸载命令:
sudo umount /mnt/mydata # 或 sudo umount /dev/sdb1-
重要:卸载前确保没有程序正在访问该挂载点。
-
-
自动挂载 (
/etc/fstab):-
系统启动时自动挂载的配置文件。
-
每行格式:
<设备> <挂载点> <文件系统> <挂载选项> <dump> <pass> -
设备推荐使用 UUID(全局唯一标识符),比
/dev/sda1更稳定(因为设备名可能变)。blkid # 查看UUID -
示例
/etc/fstab条目:UUID=1234-abcd-5678 /home ext4 defaults 0 2
-
6. 进阶:逻辑卷管理器
LVM 提供了比物理分区更灵活的磁盘管理方式。
-
核心概念:
-
PV: 物理卷,就是一块硬盘或一个分区(
/dev/sda1)。 -
VG: 卷组,由一个或多个PV组成的大存储池。
-
LV: 逻辑卷,从VG中划分出的“逻辑分区”,这才是最终被格式化和使用的部分。
-
优势:
-
动态调整: LV可以轻松在线扩展、缩减。
-
快照: 可以创建某个时间点的数据快照,用于备份或测试。
-
条带化/镜像: 提升性能或可靠性。
-
-
-
基本操作流程:
-
创建PV:
sudo pvcreate /dev/sdb -
创建VG:
sudo vgcreate myvg /dev/sdb -
创建LV:
sudo lvcreate -n mylv -L 100G myvg -
格式化LV:
sudo mkfs.ext4 /dev/myvg/mylv -
挂载LV:
sudo mount /dev/myvg/mylv /mnt/data
-
总结与实践建议
-
新手/桌面用户:
-
使用图形化分区工具(如安装程序中的
gparted)。 -
简单的 GPT 分区方案:
/+swap+/home。 -
文件系统用 ext4 即可。
-
-
服务器/高级用户:
-
根据用途选择文件系统:通用用 ext4 或 XFS,需要高级功能考虑 Btrfs 或 ZFS。
-
考虑使用 LVM 以获得灵活性,特别是当未来存储需求可能变化时。
-
规划好分区,将日志(
/var)、数据(/home、/srv)与系统分离。
-
-
通用命令速查:
lsblk # 查看设备树 sudo fdisk -l /dev/sda # 查看分区表 sudo blkid # 查看UUID和文件系统类型 df -h # 查看已挂载文件系统的使用情况 sudo mount # 查看当前挂载信息 sudo fdisk /dev/sdb # 对sdb进行分区操作(MBR/GPT) sudo gdisk /dev/sdb # 对sdb进行GPT分区操作(更推荐) sudo parted /dev/sdb # 功能强大的分区工具
理解这些概念后,你将能更从容地管理 Linux 系统的存储,无论是添加新硬盘、调整分区大小还是规划复杂的存储架构。
更多推荐




所有评论(0)