引言
在 Linux 系统管理和使用中,磁盘分区是一项基础而重要的技能。无论是安装新系统、扩容存储空间,还是优化磁盘性能,合理的分区方案都能带来更好的使用体验。本文将详细介绍 Linux 磁盘分区的完整教程,从基础知识到实战操作,帮助你掌握这项必备技能。
一、Linux 磁盘分区基础知识
1.1 什么是磁盘分区
磁盘分区是将物理硬盘划分为多个逻辑存储单元的过程。每个分区可以独立格式化、挂载和使用,就像独立的硬盘一样。分区的主要目的包括:
- 数据组织:将系统文件、用户数据、应用程序分开存储
- 安全性:某个分区出现问题不影响其他分区
- 性能优化:根据用途选择合适的文件系统
- 多系统共存:支持 Windows+Linux 双系统
1.2 分区类型
主分区(Primary Partition):最多 4 个,可直接用于启动系统
扩展分区(Extended Partition):只能有 1 个,用于容纳逻辑分区
逻辑分区(Logical Partition):数量不限,位于扩展分区内
1.3 常见文件系统
| 文件系统 | 适用场景 | 特点 |
|---|---|---|
| ext4 | 通用 Linux 系统 | 稳定、成熟、兼容性好 |
| XFS | 大文件存储 | 高性能、支持超大文件 |
| Btrfs | 高级功能需求 | 支持快照、压缩、RAID |
| swap | 虚拟内存 | 用于内存交换空间 |
二、查看磁盘信息
2.1 使用 lsblk 命令
lsblk
lsblk -f # 显示文件系统信息
lsblk -m # 显示权限信息
lsblk 以树状结构显示所有块设备,直观易懂,是最常用的磁盘查看工具。
2.2 使用 fdisk 命令
sudo fdisk -l # 列出所有磁盘分区
sudo fdisk -l /dev/sda # 查看特定磁盘
2.3 使用 df 和 du 命令
df -h # 查看磁盘空间使用情况
du -sh /path # 查看目录大小
三、使用 fdisk 进行分区(传统方法)
3.1 启动 fdisk
sudo fdisk /dev/sdb
注意:将/dev/sdb替换为实际要操作的磁盘设备名。
3.2 常用 fdisk 命令
| 命令 | 功能 |
|---|---|
| n | 新建分区 |
| d | 删除分区 |
| p | 打印分区表 |
| w | 写入并退出 |
| q | 退出不保存 |
| t | 更改分区类型 |
| m | 显示帮助 |
3.3 创建新分区示例
sudo fdisk /dev/sdb
# 进入交互界面后:
Command (m for help): n # 新建分区
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p): p # 选择主分区
Partition number (1-4, default 1): 1
First sector (2048-..., default 2048): # 直接回车使用默认值
Last sector, +sectors or +size{K,M,G,T,P} (2048-..., default ...): +50G # 分区大小 50GB
Command (m for help): w # 写入并退出
3.4 删除分区
sudo fdisk /dev/sdb
Command (m for help): d # 删除分区
Partition number (1-4, default 1): 1 # 选择要删除的分区号
Command (m for help): w # 写入并退出
四、使用 parted 进行分区(推荐方法)
4.1 parted 的优势
- 支持大于 2TB 的磁盘(GPT 分区表)
- 更直观的命令行界面
- 支持在线调整分区大小
4.2 创建 GPT 分区表
sudo parted /dev/sdb mklabel gpt
警告:此操作会清除磁盘上所有数据!
4.3 创建分区
sudo parted /dev/sdb
# 进入 parted 交互界面:
(parted) mkpart primary ext4 1MiB 50GiB # 创建 50GB ext4 分区
(parted) mkpart primary ext4 50GiB 100GiB # 创建第二个 50GB 分区
(parted) print # 查看分区表
(parted) quit # 退出
4.4 parted 常用命令
| 命令 | 功能 |
|---|---|
| mklabel gpt/msdos | 创建 GPT 或 MBR 分区表 |
| mkpart | 创建分区 |
| rm <number> | 删除分区 |
| 显示分区表 | |
| resizepart | 调整分区大小 |
| help | 显示帮助 |
五、格式化分区
5.1 格式化为 ext4
sudo mkfs.ext4 /dev/sdb1
5.2 格式化为 XFS
sudo mkfs.xfs /dev/sdb1
5.3 创建 swap 分区
sudo mkswap /dev/sdb2
sudo swapon /dev/sdb2 # 启用 swap
5.4 查看文件系统信息
sudo blkid /dev/sdb1
sudo file -s /dev/sdb1
六、挂载分区
6.1 创建挂载点
sudo mkdir -p /data/disk1
6.2 临时挂载
sudo mount /dev/sdb1 /data/disk1
df -h # 验证挂载
6.3 永久挂载(修改 fstab)
# 1. 获取 UUID
sudo blkid /dev/sdb1
# 2. 编辑 fstab 文件
sudo nano /etc/fstab
# 3. 添加以下内容(替换为实际 UUID):
UUID=xxxx-xxxx-xxxx /data/disk1 ext4 defaults 0 2
# 4. 测试配置
sudo mount -a
6.4 fstab 配置说明
# 字段说明: # UUID=xxx - 分区 UUID # /data/disk1 - 挂载点 # ext4 - 文件系统类型 # defaults - 挂载选项 # 0 - dump 备份选项(0 表示不备份) # 2 - fsck 检查顺序(根分区为 1,其他为 2,0 表示不检查)
七、调整分区大小
7.1 使用 resize2fs(ext4)
# 1. 卸载分区
sudo umount /dev/sdb1
# 2. 检查文件系统
sudo e2fsck -f /dev/sdb1
# 3. 调整文件系统大小
sudo resize2fs /dev/sdb1 100G
# 4. 重新挂载
sudo mount /dev/sdb1 /data/disk1
7.2 使用 parted 调整
sudo parted /dev/sdb
(parted) resizepart 1 100GB # 调整 1 号分区到 100GB
(parted) quit
八、实战案例
案例 1:新硬盘初始化
# 1. 查看新硬盘
lsblk
# 2. 创建 GPT 分区表
sudo parted /dev/sdc mklabel gpt
# 3. 创建单个分区(使用全部空间)
sudo parted /dev/sdc mkpart primary ext4 1MiB 100%
# 4. 格式化
sudo mkfs.ext4 /dev/sdc1
# 5. 创建挂载点并挂载
sudo mkdir -p /data/storage
sudo mount /dev/sdc1 /data/storage
# 6. 配置永久挂载
echo "UUID=$(sudo blkid -s UUID -o value /dev/sdc1) /data/storage ext4 defaults 0 2" | sudo tee -a /etc/fstab
案例 2:扩容根分区
# 警告:操作根分区有风险,建议先备份数据!
# 1. 使用 live CD/USB 启动系统
# 2. 使用 gparted 图形工具调整分区
# 3. 或使用命令行:
sudo parted /dev/sda resizepart 1 100%
sudo resize2fs /dev/sda1
九、常见问题与解决方案
9.1 分区后无法挂载
原因:未格式化或文件系统损坏
解决:
sudo fsck /dev/sdb1 # 检查并修复
9.2 磁盘空间不足
解决:使用df -h查看使用情况,清理不必要文件或扩容
9.3 挂载点繁忙无法卸载
sudo lsof +f -- /mount/point # 查看占用进程
sudo fuser -km /mount/point # 终止占用进程
sudo umount /mount/point
结论
Linux 磁盘分区是系统管理的核心技能之一。通过本文的学习,你应该掌握了:
- 分区基础知识和常见文件系统
- 使用 fdisk 和 parted 进行分区操作
- 格式化、挂载和配置永久挂载
- 分区大小调整方法
- 常见问题的排查与解决
重要提醒:分区操作涉及数据安全,操作前务必备份重要数据!在生产环境中,建议先在测试环境练习熟练后再进行操作。
参考资源
- man fdisk / man parted – 官方手册
- GParted – 图形化分区工具
- Linux 文件系统官方文档
原创文章,作者:小微财服云,如若转载,请注明出处:https://www.779it.com/239.html