fdisk 磁盘分区实战:MBR与GPT分区表创建与3种分区类型详解

📅 2026/7/6 12:09:30
fdisk 磁盘分区实战:MBR与GPT分区表创建与3种分区类型详解
fdisk 磁盘分区实战MBR与GPT分区表创建与3种分区类型详解1. 磁盘分区基础概念与选择当我们需要在Linux系统中管理磁盘空间时分区是必不可少的一步操作。一块全新的硬盘就像一张白纸分区就是在这张纸上划分出不同的区域每个区域可以独立使用不同的文件系统服务于不同的用途。分区表类型是磁盘分区的底层框架目前主要有两种MBRMaster Boot Record传统分区方案兼容性好最大支持2TB磁盘最多4个主分区或3主分区1扩展分区扩展分区内可创建多个逻辑分区GPTGUID Partition Table新一代分区方案UEFI标准支持超过2TB的大容量磁盘理论上分区数量无限制实际受系统约束内置冗余校验更安全可靠提示对于新购买的服务器或云主机特别是使用UEFI启动的系统建议优先选择GPT分区表。而需要兼容旧系统或小容量磁盘时MBR仍是可靠选择。在云服务器环境中阿里云、华为云等厂商提供的系统盘通常已经预装了操作系统并完成了分区。我们需要重点掌握的是数据盘的分区管理这也是日常运维中最常遇到的操作场景。2. MBR分区实战操作2.1 准备工作首先确认磁盘设备名和当前分区状态# 查看所有磁盘及分区信息 fdisk -l # 示例输出 Disk /dev/vda: 50 GiB, 53687091200 bytes, 104857600 sectors Units: sectors of 1 * 512 512 bytes Disk /dev/vdb: 100 GiB, 107374182400 bytes, 209715200 sectors假设我们要对/dev/vdb进行分区这是一个100GB的云数据盘。2.2 创建MBR分区表进入fdisk交互界面fdisk /dev/vdb在fdisk提示符下输入o创建新的MBR分区表Command (m for help): o Created a new DOS disklabel with disk identifier 0x3e1a5b8c.2.3 创建主分区下面创建一个20GB的主分区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-209715199, default 2048): Last sector, sectors or size{K,M,G,T,P} (2048-209715199, default 209715199): 20G Created a new partition 1 of type Linux and of size 20 GiB.2.4 创建扩展分区和逻辑分区将剩余空间创建为扩展分区并在其中划分逻辑分区Command (m for help): n Partition type p primary (1 primary, 0 extended, 3 free) e extended (container for logical partitions) Select (default p): e Partition number (2-4, default 2): First sector (41945088-209715199, default 41945088): Last sector, sectors or size{K,M,G,T,P} (41945088-209715199, default 209715199): Created a new partition 2 of type Extended and of size 80 GiB. Command (m for help): n Partition type p primary (1 primary, 1 extended, 2 free) l logical (numbered from 5) Select (default p): l Adding logical partition 5 First sector (41947136-209715199, default 41947136): Last sector, sectors or size{K,M,G,T,P} (41947136-209715199, default 209715199): 30G Created a new partition 5 of type Linux and of size 30 GiB.2.5 查看并保存分区结果使用p命令查看分区表确认无误后w保存Command (m for help): p Disk /dev/vdb: 100 GiB, 107374182400 bytes, 209715200 sectors Device Boot Start End Sectors Size Id Type /dev/vdb1 2048 41945087 41943040 20G 83 Linux /dev/vdb2 41945088 209715199 167770112 80G 5 Extended /dev/vdb5 41947136 104857599 62910464 30G 83 Linux Command (m for help): w The partition table has been altered.3. GPT分区实战操作3.1 创建GPT分区表对于大于2TB的磁盘必须使用GPT分区表fdisk /dev/vdc输入g创建GPT分区表Command (m for help): g Created a new GPT disklabel (GUID: 8B6F0E2D-3A1C-4F89-B5F4-9D7C1A3E5F9B).3.2 创建分区GPT分区没有主分区、扩展分区的概念所有分区都是平等的Command (m for help): n Partition number (1-128, default 1): First sector (2048-209715166, default 2048): Last sector, sectors or size{K,M,G,T,P} (2048-209715166, default 209715166): 50G Created a new partition 1 of type Linux filesystem and of size 50 GiB.可以继续创建更多分区GPT理论上支持最多128个分区。3.3 分区类型调整如果需要更改分区类型如创建swap分区Command (m for help): t Partition number (1-2, default 2): 2 Partition type (type L to list all types): 19 # Linux swap Changed type of partition Linux filesystem to Linux swap.4. 分区类型深度解析4.1 主分区 vs 扩展分区 vs 逻辑分区分区类型最大数量编号范围是否可引导典型用途主分区41-4是系统分区扩展分区11-4否容器分区逻辑分区无限制5否数据存储4.2 分区方案设计建议单系统简单方案/dev/sda1/boot 分区500MB-1GB/dev/sda2swap 分区内存的1-2倍/dev/sda3/ 根分区剩余空间的70%/dev/sda4/home 分区剩余30%数据库服务器方案/dev/sdb1系统分区50GB/dev/sdb2数据分区剩余空间/dev/sdb5日志分区单独分区提高IO性能云服务器数据盘方案/dev/vdb1单一数据分区使用全部空间或按业务需求划分多个逻辑分区5. 云环境下的特殊考量在阿里云、华为云等云平台使用fdisk时有几个需要特别注意的点设备命名规则系统盘通常为/dev/vda数据盘从/dev/vdb开始依次递增分区对齐# 检查分区对齐 fdisk -l /dev/vdb | grep sectors$确保起始扇区是2048的倍数现代磁盘的最佳实践在线扩容处理# 扩容后刷新分区表 partprobe /dev/vdb # 调整文件系统大小 resize2fs /dev/vdb1自动化脚本示例#!/bin/bash DISK/dev/vdb echo -e n\np\n1\n\n\nw | fdisk $DISK mkfs.ext4 ${DISK}1 mkdir /data echo ${DISK}1 /data ext4 defaults 0 0 /etc/fstab mount -a6. 高级技巧与故障处理6.1 分区恢复技巧误删分区后不要进行任何写操作尝试恢复# 搜索丢失的分区 testdisk /dev/vdb6.2 性能优化参数# 查看分区IO统计 iostat -x /dev/vdb1 1 # 调整调度器对SSD特别有效 echo deadline /sys/block/vdb/queue/scheduler6.3 常见问题解决问题1fdisk显示分区但系统不识别解决partprobe /dev/vdb问题2扩展分区空间已满无法新建逻辑分区解决备份数据删除并重建更大的扩展分区恢复逻辑分区问题3GPT分区表损坏解决gdisk /dev/vdb # 选择recovery transformation选项