<div dir="ltr"><div></div><div>Hi,<br><br></div><div><br>On Wed, Aug 6, 2014 at 4:35 AM, sylecn <<a href="mailto:sylecn@gmail.com" target="_blank">sylecn@gmail.com</a>> wrote:<br>><br>> Hi stackers,<br>><br>
> I have come across this problem of growpart/resizefs not working with CentOS 6.5 Cloud image on first boot.<br>
<br></div>Which kernel version are you running in the guest?<br><br><div><br>> Here is the relevant config in cloud.cfg<br>> ==============================<br>><br>> growpart:<br>> mode: auto<br>> devices: ["/"]<br>
> resize_rootfs: True<br>> resize_rootfs_tmp: /dev<br>><br>> cloud_init_modules:<br>> - bootcmd<br>> - write-files<br>> - growpart<br>> - resizefs<br><br></div><div>Growpart called by cloud-init only works for kernels >3.8. Only newer kernels support changing the partition size of a mounted partition. When using an older kernel the resizing of the root partition happens in the initrd stage before the root partition is mounted and the subsequent cloud-init growpart run is a no-op.<br>
</div><div><br><br>> Here is the relevant log on first boot:<br>> ============================<br>> [CLOUDINIT] helpers.py[DEBUG]: Running config-growpart using lock (<cloudinit.helpers.DummyLock object at 0x1ed06d0>)<br>
> [CLOUDINIT] util.py[DEBUG]: Running command ['growpart', '--help'] with allowed return codes [0] (shell=False, capture=True)<br>> [CLOUDINIT] util.py[DEBUG]: Reading from /proc/1108/mountinfo (quiet=False)<br>
> [CLOUDINIT] util.py[DEBUG]: Read 521 bytes from /proc/1108/mountinfo<br>> [CLOUDINIT] util.py[DEBUG]: Reading from /sys/class/block/vda1/partition (quiet=False)<br>> [CLOUDINIT] util.py[DEBUG]: Read 2 bytes from /sys/class/block/vda1/partition<br>
> [CLOUDINIT] util.py[DEBUG]: Reading from /sys/devices/pci0000:00/0000:00:05.0/virtio2/block/vda/dev (quiet=False)<br>> [CLOUDINIT] util.py[DEBUG]: Read 6 bytes from /sys/devices/pci0000:00/0000:00:05.0/virtio2/block/vda/dev<br>
> [CLOUDINIT] util.py[DEBUG]: Running command ['growpart', '--dry-run', '/dev/vda', '1'] with allowed return codes [0] (shell=False, capture=True)<br>> [CLOUDINIT] util.py[DEBUG]: Running command ['growpart', '/dev/vda', '1'] with allowed return codes [0] (shell=False, capture=True)<br>
> [CLOUDINIT] util.py[DEBUG]: resize_devices took 0.076 seconds<br>> [CLOUDINIT] cc_growpart.py[DEBUG]: '/' NOCHANGE: no change necessary (/dev/vda, 1)<br>> [CLOUDINIT] helpers.py[DEBUG]: Running config-resizefs using lock (<cloudinit.helpers.DummyLock object at 0x1ed08d0>)<br>
> [CLOUDINIT] util.py[DEBUG]: Reading from /proc/1108/mountinfo (quiet=False)<br>> [CLOUDINIT] util.py[DEBUG]: Read 521 bytes from /proc/1108/mountinfo<br>> [CLOUDINIT] cc_resizefs.py[DEBUG]: resize_info: dev=/dev/vda1 mnt_point=/ path=/<br>
> [CLOUDINIT] cc_resizefs.py[DEBUG]: Resizing / (ext4) using resize2fs /dev/vda1<br>> [CLOUDINIT] util.py[DEBUG]: Running command ('resize2fs', '/dev/vda1') with allowed return codes [0] (shell=False, capture=True)<br>
> [CLOUDINIT] util.py[DEBUG]: Resizing took 0.004 seconds<br>><br>> In the base image, I have upgraded cloud-init to 0.7.4-1.el6, and installed cloud-utils, cloud-initramfs-tools. After the first *reboot*, growpart/resizefs does their job and the root file system is grown to disk size.<br>
<br></div><div>There is no cloud-initramfs-tools package for CentOS. You need cloud-utils-growpart and dracut-modules-growroot from EPEL6 for the initrd based partition resizing.<br></div><div><br><br></div><div>> After a reboot, the relevant cloud-init logs:<br>
> ===================================<br>
> cc_growpart.py[DEBUG]: '/' NOCHANGE: no change necessary (/dev/vda, 1)<br>> util.py[DEBUG]: Resizing took 13.776 seconds<br>> cc_resizefs.py[DEBUG]: Resized root filesystem (type=ext4, val=True)<br><br>
</div><div>These are log messages from cloud-init's growpart run. Can you post the boot messages from initrd growpart?<br><br></div><div><br></div><div>...Juerg<br><br></div><div><br><br>> I wish the growpart/resizefs happen on first boot, what can I do?<br>
><br>><br>> --<br>> YY Inc. is hiring openstack and python developers. Interested? Check <a href="http://soa.game.yy.com/jobs.html" target="_blank">http://soa.game.yy.com/jobs.html</a><br>><br>> --<br>> Thanks,<br>
> Yuanle<br>
><br>> _______________________________________________<br>> Mailing list: <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack</a><br>
> Post to : <a href="mailto:openstack@lists.openstack.org" target="_blank">openstack@lists.openstack.org</a><br>> Unsubscribe : <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack</a><br>
><br></div></div>