我正在 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
不支持它)。您有两个选择:
- 如果虚拟机无法重新启动,您需要执行在线调整大小(例如,请参阅这个答案)。
- 如果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)。
注意:在虚拟化环境中,我建议每个磁盘设备/卷仅放置一个磁盘分区。这使得以后的更改变得更加容易,例如,如果由于任何原因必须增加文件系统/磁盘分区。