如何使用fdisk命令调整分区大小?
美国、香港服务器
如何使用fdisk命令调整分区大小?
08-07 来源:
需要注意的是:fdisk 命令本身不支持直接调整已有分区的大小(无法在线扩容或缩容)。它的主要功能是创建、删除、查看分区,若要调整分区大小,需通过「删除原有分区→重建分区(调整大小)→修复文件系统」的间接方式实现,且此操作存在数据丢失风险,需谨慎操作。
前提条件与风险提示
数据备份:操作前必须备份分区内所有数据(如复制到其他磁盘),因删除分区可能导致数据丢失。
卸载分区:确保目标分区已卸载,无进程占用(可通过 umount /dev/xxx 和 fuser -m /dev/xxx 确认)。
文件系统支持:调整后需用对应工具修复文件系统(如 resize2fs 用于 ext 系列,xfs_growfs 用于 XFS)。
使用 fdisk 调整分区大小的步骤(以扩容为例)
假设要调整 /dev/vdb1 分区的大小(从 50GB 扩容到 100GB,硬盘总容量足够):
步骤 1:查看当前分区信息(记录关键参数)
bash
# 查看分区的起始扇区(Start)和大小,记录Start值(如2048)
sudo fdisk -l /dev/vdb
# 示例输出(需记录/dev/vdb1的Start扇区):
Device Boot Start End Sectors Size Id Type
/dev/vdb1 2048 104857599 104855552 50G 83 Linux
步骤 2:删除原有分区(关键操作,谨慎!)
进入 fdisk 交互模式:
bash
sudo fdisk /dev/vdb
输入 d 并回车,删除目标分区(如分区 1):
plaintext
Command (m for help): d
Partition number (1, default 1): 1 # 输入要删除的分区编号
确认分区已删除(输入 p 查看,原分区应消失)。
步骤 3:重建分区(设置新大小,保留起始扇区)
输入 n 新建分区:
plaintext
Command (m for help): n
Partition type: p(主分区)
Partition number (1-4, default 1): 1 # 保持与原分区编号一致
First sector (2048-209715199, default 2048): 2048 # 必须与原分区的Start扇区一致!
Last sector, +/-sectors or +/-size{K,M,G,T,P}: +100G # 设置新大小(如100GB)
输入 p 确认新分区参数(起始扇区不变,结束扇区扩大)。
输入 w 保存退出,刷新分区表:
plaintext
Command (m for help): w
执行 partprobe 刷新分区信息(避免重启):
bash
sudo partprobe /dev/vdb
步骤 4:修复文件系统(关键,确保数据可识别)
根据分区的文件系统类型,使用对应工具调整文件系统大小,使其匹配新分区:
ext4/ext3 文件系统:
bash
# 先检查文件系统错误
sudo e2fsck -f /dev/vdb1
# 调整文件系统大小(自动扩展到分区最大容量)
sudo resize2fs /dev/vdb1
XFS 文件系统(只能扩容,不能缩容):
bash
# 需先挂载分区
sudo mount /dev/vdb1 /data
# 扩容文件系统
sudo xfs_growfs /data
步骤 5:验证调整结果
bash
# 查看新分区大小
lsblk /dev/vdb1
# 查看文件系统大小
df -h /dev/vdb1
限制与替代方案
fdisk 的局限性:
仅支持 MBR 分区表,不支持 GPT 分区表的调整。
操作风险高,一旦起始扇区输入错误,数据会直接丢失。
不支持在线调整(必须卸载分区)。
更安全的工具:
推荐使用 parted(支持 GPT 和在线调整)或图形工具 gparted。
云服务器场景下,可直接通过云厂商控制台扩容磁盘(需先扩展分区表和文件系统)。
总结
使用 fdisk 调整分区大小本质是「删除重建」,仅建议在无其他工具可用的紧急场景下使用,且必须严格备份数据、保留原起始扇区。对于生产环境,更推荐使用 parted 或专用工具,降低数据丢失风险。
三二互联专业提供香港VPS,美国VPS主机,香港云服务器租用等业务香港美国到大陆CN2 GIA速度最快