如何为正在运行的AWS实例创建分区?

如何为正在运行的AWS实例创建分区?

我正在 AWS 中运行一个附加了 12 GB 卷的 EC2 实例。操作系统是Ubuntu。我想从这个 12GB 卷创建一个 2GB 的分区。

所以,这是输出sudo fdisk -l

$ sudo fdisk -l 
Disk /dev/xvda: 12 GiB, 12884901888 bytes, 25165824 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x89cdb65f

Device       Boot   Start        End     Sectors    Size    Id    Type
/dev/xvda1   *       2048   25165790    25163743     12G    83    Linux

如何在不删除操作系统的情况下创建分区?确切地说,如何从xvda1和创建分区如何确定第一个和最后一个扇区值?

答案1

正如讨论所示,没有一种简单的方法可以缩小正在运行的系统的根文件系统(resize2fs不支持它)。您有两个选择:

  1. 如果虚拟机无法重新启动,您需要执行在线调整大小(例如,请参阅这个答案)。
  2. 如果VM可以重新启动并且可以有一段时间的停机时间来调整大小,则更好的方法是拍摄EBS卷的快照,将其安装到另一个VM上并使用该VM来调整其大小。有一个很好的指南这个答案

关于您关于第一个和最后一个扇区的问题 - 分区 1 的第一个扇区仍然是 2048(即在提示时输入 2048),并将fdisk根据您输入的分区大小计算最后一个扇区号(例如,如果您指定 2GiB 的分区大小)它会自动为您计算最后一个扇区)。

正如其他人所建议的,每个 EBS 卷有一个分区确实使管理更加容易,因此您可能希望借此机会执行此操作(即,将根 EBS 卷缩小到 2GiB 并添加第二个分区) 10GiB,而不是单个分区卷)。

答案2

您的所有可用空间体积 /dev/xvda已用完分割 /dev/xvda1

如果卷上存在文件系统(和数据),但文件系统末尾有未使用的空间,请首先使用 收缩文件系统resize2fs <device> <size>,例如resize2fs /dev/xvda 2G

然后使用fdisk减少分区末尾/dev/xvda1来匹配放置在该分区上的文件系统的新大小(此处:减少 2G)。

现在您可以创建一个新分区,例如/dev/xvda2,使用卷末尾的可用空间。

第二个分区的开始将是第一个分区的结束 + 1。

第二个分区的结尾取决于您的需要,例如可用扇区的数量(此处:25165824)。

注意:在虚拟化环境中,我建议每个磁盘设备/卷仅放置一个磁盘分区。这使得以后的更改变得更加容易,例如,如果由于任何原因必须增加文件系统/磁盘分区。

相关内容