Linux的分区扩展无需磁盘拷贝——实现无损扩展 (linux无损扩展分区)
Linux已成为许多企业服务器的首选操作系统。但是,对于常规的Linux用户,仍然存在一些令人困惑的问题,例如分区限制。随着业务和应用程序的增长,存储需求的扩展不可避免,因此无损地扩展分区变得愈发重要。本文介绍了无需磁盘拷贝的Linux分区扩展方法。
我们需要理解什么是分区和分区扩展。分区是将一块硬盘分成更小可管理的片块,并将操作系统安装到其中一个内部片块上。分区扩展是指向现有分区添加更多的空间。比如,如果你的Server A由于磁盘空间不足而出现错误,你需要扩展Server A的分区以解决问题。
以前的方法是将整个分区备份到另外一个磁盘,然后在新的分区中恢复数据。这种方法非常耗时,并且在操作过程中也存在风险。然而,有了新的方法,您无需在进行分区和数据备份和恢复时冒风险。
我们将采用“fdisk”工具来执行分区扩展。 fdisk是一个Linux命令,可用于创建和管理磁盘分区。但是,在使用fdisk命令之前,请先确保已完全了解您的磁盘分区设置。您可以通过运行“fdisk -l”命令来查看您的磁盘分区设置。
分区扩展是分为两步完成的。首先是分区大小扩展。我们需要扩展该分区的文件系统以使其使用更多可用空间。
接下来,我们将一步步演示如何完成这些步骤。
步骤1:分区大小扩展
打开终端并以root用户身份运行fdisk命令。
$ sudo fdisk /dev/sda
注意:此处假设您要在/dev/sda上扩展分区。如果您使用的是其他磁盘,则必须在命令中使用相应的路径名。
接下来,按下“p”键显示分区表。
您应该会看到类似以下内容的输出:
Disk /dev/sda: 537.1 GiB, 576480186880 bytes, 1125981185 sectors
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: dos
Disk identifier: 0x31e174b5
Device Boot Start End Blocks Id System
/dev/sda1 * 2023 1026047 512023 83 Linux
/dev/sda2 1026048 312580095 155277024 83 Linux
在这里,启动分区为/dev/sda1,大小为512 MB,主分区/dev/sda2的大小为149 GB。
现在,要将/dev/sda2的分区大小扩展到200 GB,请使用d和n命令删除和重新创建它。
注意:使用d和n命令时,请务必小心。不要删除/dev/sda1,否则您的系统将无法引导。
使用d命令删除分区2:
Command (m for help): d
Partition number (1,2, default 2): 2
使用n命令创建新分区:
Command (m for help): n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): p
Partition number (2-4, default 2): 2
First sector (1026048-1125981184, default 1026048):
Last sector, +sectors or +size{K,M,G,T,P} (1026048-1125981184, default 1125981184): +50G
你现在可以看到分区表中分区的新信息:
Device Boot Start End Blocks Id System
/dev/sda1 * 2023 1026047 512023 83 Linux
/dev/sda2 1026048 31257671 15115812+ 83 Linux
注意,现在/dev/sda2比以前更小!
我们现在需要使用w命令保存您的新分区。这将重写您的分区表并将更改写入磁盘。
$ w
现在,您已经成功地向/dev/sda2添加了50 GB的空间,但是您的文件系统仍然会认为该分区保留为先前的149 GB大小。
步骤2:文件系统扩展
在完成第1步后,您还需要扩展文件系统以使用/dev/sda2的完整空间。这可以通过采用适当的工具来完成,如resize2fs。
我们假设文件系统的类型为ext4。因此,我们将使用resize2fs命令来扩展该文件系统。如果您的文件系统类型不是ext4,则必须使用相应的工具。
请注意,您需要卸载文件系统才能扩展文件系统。
使用umount命令卸载分区:
$ sudo umount /dev/sda2
接下来,使用下面的命令来尝试扩展文件系统:
$ sudo resize2fs /dev/sda2
文件系统现在已成功扩展使用了完整分区的所有空间。
您需要使用以下命令重新挂载分区:
$ sudo mount /dev/sda2 /mnt/data
您已经成功地通过无需拷贝数据的方式扩展了Linux分区。现在,Server A将能够容纳更多的数据和应用程序,大大提高了服务器的效率和灵活性。