在Linux系统中,磁盘是存储数据的核心硬件,无论是服务器部署、日常使用还是开发环境配置,都离不开磁盘管理。常见场景包括:

  • 新服务器添加硬盘后,需要分区格式化才能存储数据;
  • 系统磁盘空间不足时,需扩展分区或挂载新磁盘;
  • 为不同数据类型(如系统文件、数据库、日志)划分独立分区,提升安全性和性能。

磁盘管理的核心流程可概括为:识别磁盘 → 分区 → 格式化 → 挂载,这四个步骤环环相扣。本文将全程以实操为主,带你从零掌握每个环节的具体操作。

2. 磁盘管理基础概念(先搞懂这些再动手)

在动手操作前,先明确几个关键概念,避免踩坑:

2.1 磁盘与分区表

  • 磁盘标识:Linux中磁盘以 /dev/sdX(SATA/SCSI接口)或 /dev/nvmeXnY(NVMe接口)命名,如 /dev/sda(第一块SATA硬盘)、/dev/nvme0n1(第一块NVMe硬盘)。
  • 分区表类型:磁盘必须先创建分区表,才能划分分区,主流类型有两种:
分区表类型 支持最大磁盘容量 最大分区数 适用场景
MBR(Master Boot Record) 2TB 4个主分区(或3主+1扩展分区) 旧设备、小容量磁盘
GPT(GUID Partition Table) 18EB 理论无限制(默认128个) 新设备、大容量磁盘(推荐)

2.2 分区与文件系统

  • 分区:将一块物理磁盘划分为多个逻辑区域(如 /dev/sda1 是第一块SATA硬盘的第一个分区),每个分区独立使用。
  • 文件系统:分区后需格式化(创建文件系统),才能存储文件。Linux主流文件系统:
文件系统 特点 适用场景
ext4 稳定、兼容好、支持日志 系统分区、数据分区(通用首选)
XFS 高性能、支持大容量、适合并行I/O 服务器数据分区、数据库存储
Btrfs 支持快照、 RAID、动态扩容 需要高级功能的场景(如Docker存储)
vfat 跨平台兼容(Windows/Linux) U盘、移动硬盘(小文件存储)

2.3 挂载的核心逻辑

Linux中,分区不会自动被系统识别,需通过“挂载”将分区关联到某个目录(如 /data),此后访问该目录即操作对应分区。关键概念:

  • 挂载点:用于关联分区的目录(如 /mnt/disk1),必须是空目录;
  • 临时挂载:重启系统后失效(mount 命令);
  • 永久挂载:通过 /etc/fstab 配置,重启后自动生效(推荐)。

3. 第一步:识别磁盘(查看系统中的磁盘与分区)

在进行任何操作前,先确认系统已识别新磁盘,常用命令如下:

3.1lsblk:直观查看磁盘与分区结构

lsblk(list block devices)是最常用的磁盘查看工具,输出清晰易懂:

1

lsblk

输出示例(解读关键信息):

1

2

3

4

5

6

7

NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT

sda           8:0    0  100G  0 disk

├─sda1        8:1    0   500M  0 part /boot  # 系统引导分区

└─sda2        8:2    0  99.5G  0 part /      # 根分区

sdb           8:16   0   200G  0 disk          # 新添加的未分区磁盘(目标操作磁盘)

nvme0n1     259:0    0  512G  0 disk

└─nvme0n1p1 259:1    0  512G  0 part /home    # NVMe硬盘的/home分区

  • TYPE 列:disk 表示物理磁盘,part 表示分区;
  • MOUNTPOINT 列:显示已挂载的目录(空表示未挂载)。

3.2fdisk -l:查看磁盘详细信息(含分区表)

fdisk 是传统磁盘工具,可查看磁盘容量、分区表类型等细节:

1

sudo fdisk -l  # 需要root权限

输出示例(重点关注新磁盘 /dev/sdb):

1

2

3

4

5

6

7

Disk /dev/sdb: 200 GiB, 214748364800 bytes, 419430400 sectors

Disk model: Virtual Disk

Units: sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disklabel type: gpt  # 分区表类型为GPT

Disk identifier: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX

  • 若 Disklabel type 显示 dos,则为MBR分区表;
  • 新磁盘未分区时,会提示“no partitions”。

4. 第二步:磁盘分区(MBR/GPT分区实操)

分区工具选择:

  • fdisk:支持MBR和GPT分区表,操作简单(推荐入门);
  • parted:支持大磁盘和GPT,功能更强大(适合高级场景)。

本文以 GPT分区表(推荐新磁盘使用)为例,演示分区流程,同时兼顾MBR分区方法。

4.1 用fdisk给新磁盘(/dev/sdb)创建GPT分区

4.1.1 进入fdisk工具(指定目标磁盘)

1

sudo fdisk /dev/sdb  # 注意:是/dev/sdb(磁盘),不是分区(如/dev/sdb1)

进入后终端提示 Command (m for help):,输入对应命令操作。

4.1.2 关键操作步骤(分步详解)
  1. 查看帮助:输入 m,查看所有支持的命令(无需记忆,按需查阅);
  2. 转换分区表类型(若为MBR需转换)
    若磁盘原是MBR分区表,输入 g 转换为GPT(新磁盘默认可能无分区表,输入 g 会创建GPT):

1

2

Command (m for help): g

Created a new GPT disklabel (GUID: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX)

(若需创建MBR分区表,输入 o 即可);

创建分区:输入 n 新建分区,按提示配置:

1

2

3

4

5

6

Command (m for help): n

Partition number (1-128, default 1):  # 分区号(默认1,直接回车)

First sector (2048-419430399, default 2048):  # 起始扇区(默认2048,回车)

Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-419430399, default 419430399): +100G  # 分区大小(如+100G表示100GB,直接回车则占满剩余空间)

Created a new partition 1 of type 'Linux filesystem' and of size 100 GiB.

  • 分区类型默认是 Linux filesystem(适用于ext4/XFS等);
  • 若需创建多个分区,重复 n 命令即可(如再创建一个50GB分区);

查看分区结果:输入 p 查看已创建的分区:

1

2

3

4

5

6

Command (m for help): p

Disk /dev/sdb: 200 GiB, 214748364800 bytes, 419430400 sectors

...

Device     Start       End   Sectors  Size Type

/dev/sdb1   2048 209717247 209715200  100G Linux filesystem

/dev/sdb2 209717248 314574847 104857600   50G Linux filesystem

保存分区并退出:输入 w 保存配置(若想放弃,输入 q 退出):

1

2

3

4

Command (m for help): w

The partition table has been altered.

Calling ioctl() to re-read partition table.

Syncing disks.

验证分区:退出后执行 lsblk,确认分区已创建:

1

lsblk /dev/sdb

输出应显示 /dev/sdb1 和 /dev/sdb2 分区。

4.2 用parted工具创建分区(进阶)

parted 支持交互式和命令行模式,适合大容量磁盘分区,以创建100GB XFS分区为例:

1

2

3

4

5

sudo parted /dev/sdb  # 进入parted交互式模式

(parted) mklabel gpt  # 创建GPT分区表(若已存在可跳过)

(parted) mkpart primary xfs 0% 100GB  # 创建主分区,文件系统xfs,大小0%-100GB

(parted) print  # 查看分区

(parted) quit  # 退出

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐