前言

之前写过一篇【Linux下操作分区扩容】,那篇文章中操作分区扩容的工具是parted,这次换fdisk

一般linux各发行版都自带fdisk,而parted都需要另外安装。

对于分区扩容这个操作,parted用起来会让人简单 & 放心,因为它是直接resizepart,而fdisk是先删除旧分区再建新分区,虽然两种操作都是变更分区表信息、都不会丢失数据,但fdisk那种删旧建新的过程确实会让人更胆战心惊一些。


操作

第一步:确认当前分区结构

首先要确认想要扩容分区需要是连续的扇区,如下示意图,在根区分之后有空闲空间,就可以扩容根分区。

|-------------------------------------11GB-----------------------------------------|
|---512MB启动分区---|---954MB缓存(swap)分区---|---8.6GB根(/)分区---|---空闲空间---|

分区结构如下

NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
sda      8:0    0   11G  0 disk
├─sda1   8:1    0  512M  0 part /boot/efi
├─sda2   8:2    0  954M  0 part [SWAP]
└─sda3   8:3    0  8.6G  0 part /

最后使用fdisk命令查看分区信息

sudo fdisk /dev/sda 

分区信息如下

Disk /dev/sda: 11 GiB, 11811160064 bytes, 23068672 sectors
Disk model: Virtual Disk
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: E73B5228-BBA7-453F-AD2D-0D97322BC45B

Device       Start      End  Sectors  Size Type
/dev/sda1     2048  1050623  1048576  512M EFI System
/dev/sda2  1050624  3004415  1953792  954M Linux swap
/dev/sda3  3004416 20971486 17967071  8.6G Linux filesystem

查看以上信息是为了确保对分区信息的正确掌握,避免错误操作导致系统崩溃。

第二步:扩容分区

我们是要扩容根(/)分区,也就是/dev/sda3,扩容的操作实际分成两步,先删除/dev/sda3,再新建一个/dev/sda3。此过程中不必担心先删除分区会导致数据丢失。

使用fdisk工具对/dev/sda硬盘进行操作

sudo fdisk /dev/sda

进入fdisk工具的命令行操作界面,显示内容如下

Command (m for help):

接下去就开始进行分区操作

# 首先要删除分区
Command (m for help): d

# 输入需要删除的分区编号,根据第一步中了解的分区信息,这里是3
Partition number (1-3, default 3): 3

# 分区删除成功
Partition 3 has been deleted.

# 新建分区
Command (m for help): n

# 新分区编号,默认是3,也可以手动输入
Partition number (3-128, default 3): 3

# 设定起始扇区,默认即可
First sector (3004416-23068638, default 3004416):

# 设定结束扇区,提示信息显示最末扇区是23068638,默认会预留几个扇区不用,可以直接默认设置,也可以物尽其用,手动输入结束扇区
Last sector, +/-sectors or +/-size{K,M,G,T,P} (3004416-23068638, default 23066623): 23068638

# 提示新分区创建成功
Created a new partition 3 of type 'Linux filesystem' and of size 9.6 GiB.

# 提示3号分区已经存在一个ext4的签名
Partition #3 contains a ext4 signature.

# 是否要删除3号分区的旧签名,这里选是,敲y
Do you want to remove the signature? [Y]es/[N]o: y

# 提示信息,最后保存时会删除旧的分区签名
The signature will be removed by a write command.

# 保存新的分区信息
Command (m for help): w

# 提示分区已完成
The partition table has been altered.
Syncing disks.

最后再resize一下新分区即可

sudo resize2fs /dev/sda3

喝杯奶茶