Amazon 实例在 VM 导入后自动创建分区并调整分区大小

Amazon 实例在 VM 导入后自动创建分区并调整分区大小

我使用 Packer 创建一个带有 CentOS 7 的虚拟机,并.ova在安装最后将其导出为文件。默认情况下,Packer 创建一个 40GB 的虚拟磁盘 ( .vmdk)。安装后,如果我导入 .ova在 VirtualBox 中创建文件(仅用于测试)并列出创建的虚拟机的文件系统,我得到:

[root@localhost ~]# df -h
Filesystem           Size  Used Avail Use% Mounted on
/dev/mapper/cl-root   37G  1.6G   35G   5% /
devtmpfs             1.3G     0  1.3G   0% /dev
tmpfs                1.4G     0  1.4G   0% /dev/shm
tmpfs                1.4G  8.4M  1.3G   1% /run
tmpfs                1.4G     0  1.4G   0% /sys/fs/cgroup
/dev/sda1           1014M  166M  849M  17% /boot
tmpfs                268M     0  268M   0% /run/user/1000
tmpfs                268M     0  268M   0% /run/user/0

如果我.ova在 Amazon 实例中导入相同的文件,这次将根存储卷的大小增加到 100GB,我会得到以下文件系统:

[root@localhost ~]# df -h
Filesystem           Size  Used Avail Use% Mounted on
/dev/mapper/cl-root   50G  4,0G   46G   9% /
devtmpfs              15G     0   15G   0% /dev
tmpfs                 15G     0   15G   0% /dev/shm
tmpfs                 15G   18M   15G   1% /run
tmpfs                 15G     0   15G   0% /sys/fs/cgroup
/dev/xvda1          1014M  185M  830M  19% /boot
/dev/mapper/cl-home   45G   89M   45G   1% /home
tmpfs                3,0G     0  3,0G   0% /run/user/0
tmpfs                3,0G     0  3,0G   0% /run/user/1000

请注意,已/增加到 50GB,现在/home会自动创建一个新的。这让我发疯,直到我找到原因:所有安装都是由 Packer 自动完成的,使用用于autopart分区的 kickstart 配置文件。在 RedHat 文档中,我发现了这一点:

autopart (optional)
Automatically creates partitions: a root (/) partition (1 GB or larger), a swap partition, and an appropriate /boot partition for the architecture. On large enough drives (50 GB and larger), this also creates a /home partition.

因此,我决定手动创建分区,使用 kickstart 文件中的这一行而不是autopart

part /boot --fstype ext4 --size=1014
part pv.01 --size=1000 --grow
volgroup cl pv.01
logvol swap --fstype swap --name=swap --vgname=cl --size=2048
logvol / --fstype ext4 --name=root --vgname=cl --size=1 --grow

再次导入.ovaAmazon,为根卷选择相同的100GB存储大小,我终于得到了我想要的:

[root@localhost ~]# df -h
Filesystem           Size  Used Avail Use% Mounted on
/dev/mapper/cl-root   94G  2,3G   87G   3% /
devtmpfs              15G     0   15G   0% /dev
tmpfs                 15G     0   15G   0% /dev/shm
tmpfs                 15G  8,3M   15G   1% /run
tmpfs                 15G     0   15G   0% /sys/fs/cgroup
/dev/xvda1           983M  154M  762M  17% /boot
tmpfs                3,0G     0  3,0G   0% /run/user/1000

所以我发现什么正在发生,但不是如何它发生了。问题是:

  • kickstart 文件应该仅在安装时使用。 Amazon VM 导入后,如何使用与 kickstart 安装相同的约定更改文件系统?
  • 这些信息存储在哪里,以及 CentOS 7 中如何自动调整大小?

相关内容