Activity log for bug #1684869

Date Who What changed Old value New value Message
2017-04-20 15:35:33 Scott Moser bug added bug
2017-04-20 17:52:57 Scott Moser cloud-init: importance Undecided Medium
2017-04-20 17:52:57 Scott Moser cloud-init: status New Confirmed
2017-04-20 17:53:06 Scott Moser bug task added cloud-init (Ubuntu)
2017-04-20 18:14:38 Scott Moser description When trying to verify I found a couple cases where this still does not work. Related bugs: * bug 1677376: growing partitions does not work when booted without initramfs http://pad.lv/1684869 https://bugs.launchpad.net/ubuntu/+source/cloud-init/+bug/1684869 === Begin SRU Template === [Impact] Growing the root partition would fail in either of two cases: a.) if the device /dev/root existed b.) the kernel command line had upper case letters in PARTUUID=<value> [Test Case] get-proposed-image is https://git.launchpad.net/~smoser/cloud-init/+git/sru-info/tree/bin/get-proposed-image It downloads a cloud image of a given release, and then creates a -proposed image with cloud-init upgraded. 1.) get a (proposed) disk image image. and convert it to raw so you can read the partuuid with sfdisk (get-proposed-image does this, if not, 'qemu-img convert -O raw orig.img orig.raw') ./get-proposed-image 2.) get the partition uuid of the first partition $ raw=yakkety-server-cloudimg-amd64-proposed.raw $ ptuuid=$(sfdisk --part-uuid $raw 1) 3.) create a nocloud seed $ printf "%s\n%s\n%s\n%s\n" "#cloud-config" "password: passw0rd" \ "chpasswd: {expire: False}" "ssh_pwauth: True" > my-user-data $ echo "instance-id: $(uuidgen || echo i-abcdefg)" > my-meta-data $ cloud-localds my-seed.img my-user-data my-meta-data 4.) extract kernel from inside the image $ sudo mount-image-callback $raw -- mchroot sh -xc 'cat /boot/vmlinu?-*' > kernel 5.) boot instance with disk backed by the raw disk above. $ qemu-img create -f qcow2 -b $raw disk.img 10G $ qemu-system-x86_64 -enable-kvm \ -drive file=disk.img,if=ide,index=0 -drive file=my-seed.img,if=ide \ -net nic -net user,hostfwd=tcp::2222-:22 \ -snapshot -m 768 -nographic -echr 0x05 \ -kernel kernel \ -append "root=PARTUUID=${ptuuid} ro console=tty1 console=ttyS0" 6.) log in, verify / has been resized. log in with 'ubuntu' and password 'passw0rd' $ df -h / Filesystem Size Used Avail Use% Mounted on /dev/root 9.6G 1009M 8.6G 11% / [Regression Potential] The regression path is really the case where devent2dev finds /dev/root and /dev/root exists. In that case, we now possibly return a /dev/<device> path when previously it would have returned /dev/root. [Other Info] The qemu-system-x86 command above uses ide devices. This is because the ide device emulated by qemu is built into the -generic kernel, whilei the more common virtio-block or virtio-scsi are not. If you attach those device types, it will fail with 'cant find root'. === End SRU Template === When trying to verify I found a couple cases where this still does not work. Related bugs:  * bug 1677376: growing partitions does not work when booted without initramfs
2017-04-20 18:14:52 Scott Moser description http://pad.lv/1684869 https://bugs.launchpad.net/ubuntu/+source/cloud-init/+bug/1684869 === Begin SRU Template === [Impact] Growing the root partition would fail in either of two cases: a.) if the device /dev/root existed b.) the kernel command line had upper case letters in PARTUUID=<value> [Test Case] get-proposed-image is https://git.launchpad.net/~smoser/cloud-init/+git/sru-info/tree/bin/get-proposed-image It downloads a cloud image of a given release, and then creates a -proposed image with cloud-init upgraded. 1.) get a (proposed) disk image image. and convert it to raw so you can read the partuuid with sfdisk (get-proposed-image does this, if not, 'qemu-img convert -O raw orig.img orig.raw') ./get-proposed-image 2.) get the partition uuid of the first partition $ raw=yakkety-server-cloudimg-amd64-proposed.raw $ ptuuid=$(sfdisk --part-uuid $raw 1) 3.) create a nocloud seed $ printf "%s\n%s\n%s\n%s\n" "#cloud-config" "password: passw0rd" \ "chpasswd: {expire: False}" "ssh_pwauth: True" > my-user-data $ echo "instance-id: $(uuidgen || echo i-abcdefg)" > my-meta-data $ cloud-localds my-seed.img my-user-data my-meta-data 4.) extract kernel from inside the image $ sudo mount-image-callback $raw -- mchroot sh -xc 'cat /boot/vmlinu?-*' > kernel 5.) boot instance with disk backed by the raw disk above. $ qemu-img create -f qcow2 -b $raw disk.img 10G $ qemu-system-x86_64 -enable-kvm \ -drive file=disk.img,if=ide,index=0 -drive file=my-seed.img,if=ide \ -net nic -net user,hostfwd=tcp::2222-:22 \ -snapshot -m 768 -nographic -echr 0x05 \ -kernel kernel \ -append "root=PARTUUID=${ptuuid} ro console=tty1 console=ttyS0" 6.) log in, verify / has been resized. log in with 'ubuntu' and password 'passw0rd' $ df -h / Filesystem Size Used Avail Use% Mounted on /dev/root 9.6G 1009M 8.6G 11% / [Regression Potential] The regression path is really the case where devent2dev finds /dev/root and /dev/root exists. In that case, we now possibly return a /dev/<device> path when previously it would have returned /dev/root. [Other Info] The qemu-system-x86 command above uses ide devices. This is because the ide device emulated by qemu is built into the -generic kernel, whilei the more common virtio-block or virtio-scsi are not. If you attach those device types, it will fail with 'cant find root'. === End SRU Template === When trying to verify I found a couple cases where this still does not work. Related bugs:  * bug 1677376: growing partitions does not work when booted without initramfs === Begin SRU Template === [Impact] Growing the root partition would fail in either of two cases:  a.) if the device /dev/root existed  b.) the kernel command line had upper case letters in PARTUUID=<value> [Test Case] get-proposed-image is   https://git.launchpad.net/~smoser/cloud-init/+git/sru-info/tree/bin/get-proposed-image It downloads a cloud image of a given release, and then creates a -proposed image with cloud-init upgraded. 1.) get a (proposed) disk image image.   and convert it to raw so you can read the partuuid with sfdisk   (get-proposed-image does this, if not,   'qemu-img convert -O raw orig.img orig.raw')   ./get-proposed-image 2.) get the partition uuid of the first partition    $ raw=yakkety-server-cloudimg-amd64-proposed.raw    $ ptuuid=$(sfdisk --part-uuid $raw 1) 3.) create a nocloud seed    $ printf "%s\n%s\n%s\n%s\n" "#cloud-config" "password: passw0rd" \         "chpasswd: {expire: False}" "ssh_pwauth: True" > my-user-data    $ echo "instance-id: $(uuidgen || echo i-abcdefg)" > my-meta-data    $ cloud-localds my-seed.img my-user-data my-meta-data 4.) extract kernel from inside the image    $ sudo mount-image-callback $raw -- mchroot sh -xc 'cat /boot/vmlinu?-*' > kernel 5.) boot instance with disk backed by the raw disk above.    $ qemu-img create -f qcow2 -b $raw disk.img 10G    $ qemu-system-x86_64 -enable-kvm \        -drive file=disk.img,if=ide,index=0 -drive file=my-seed.img,if=ide \        -net nic -net user,hostfwd=tcp::2222-:22 \        -snapshot -m 768 -nographic -echr 0x05 \        -kernel kernel \        -append "root=PARTUUID=${ptuuid} ro console=tty1 console=ttyS0" 6.) log in, verify / has been resized.    log in with 'ubuntu' and password 'passw0rd'     $ df -h /     Filesystem Size Used Avail Use% Mounted on     /dev/root 9.6G 1009M 8.6G 11% / [Regression Potential] The regression path is really the case where devent2dev finds /dev/root and /dev/root exists. In that case, we now possibly return a /dev/<device> path when previously it would have returned /dev/root. [Other Info] The qemu-system-x86 command above uses ide devices. This is because the ide device emulated by qemu is built into the -generic kernel, whilei the more common virtio-block or virtio-scsi are not. If you attach those device types, it will fail with 'cant find root'. === End SRU Template === When trying to verify I found a couple cases where this still does not work. Related bugs:  * bug 1677376: growing partitions does not work when booted without initramfs
2017-04-20 18:14:57 Scott Moser cloud-init (Ubuntu): status New Confirmed
2017-04-20 18:15:00 Scott Moser cloud-init (Ubuntu): importance Undecided Medium
2017-04-21 15:07:52 Scott Moser merge proposal linked https://code.launchpad.net/~smoser/cloud-init/+git/cloud-init/+merge/322875
2017-04-21 15:48:09 Scott Moser description === Begin SRU Template === [Impact] Growing the root partition would fail in either of two cases:  a.) if the device /dev/root existed  b.) the kernel command line had upper case letters in PARTUUID=<value> [Test Case] get-proposed-image is   https://git.launchpad.net/~smoser/cloud-init/+git/sru-info/tree/bin/get-proposed-image It downloads a cloud image of a given release, and then creates a -proposed image with cloud-init upgraded. 1.) get a (proposed) disk image image.   and convert it to raw so you can read the partuuid with sfdisk   (get-proposed-image does this, if not,   'qemu-img convert -O raw orig.img orig.raw')   ./get-proposed-image 2.) get the partition uuid of the first partition    $ raw=yakkety-server-cloudimg-amd64-proposed.raw    $ ptuuid=$(sfdisk --part-uuid $raw 1) 3.) create a nocloud seed    $ printf "%s\n%s\n%s\n%s\n" "#cloud-config" "password: passw0rd" \         "chpasswd: {expire: False}" "ssh_pwauth: True" > my-user-data    $ echo "instance-id: $(uuidgen || echo i-abcdefg)" > my-meta-data    $ cloud-localds my-seed.img my-user-data my-meta-data 4.) extract kernel from inside the image    $ sudo mount-image-callback $raw -- mchroot sh -xc 'cat /boot/vmlinu?-*' > kernel 5.) boot instance with disk backed by the raw disk above.    $ qemu-img create -f qcow2 -b $raw disk.img 10G    $ qemu-system-x86_64 -enable-kvm \        -drive file=disk.img,if=ide,index=0 -drive file=my-seed.img,if=ide \        -net nic -net user,hostfwd=tcp::2222-:22 \        -snapshot -m 768 -nographic -echr 0x05 \        -kernel kernel \        -append "root=PARTUUID=${ptuuid} ro console=tty1 console=ttyS0" 6.) log in, verify / has been resized.    log in with 'ubuntu' and password 'passw0rd'     $ df -h /     Filesystem Size Used Avail Use% Mounted on     /dev/root 9.6G 1009M 8.6G 11% / [Regression Potential] The regression path is really the case where devent2dev finds /dev/root and /dev/root exists. In that case, we now possibly return a /dev/<device> path when previously it would have returned /dev/root. [Other Info] The qemu-system-x86 command above uses ide devices. This is because the ide device emulated by qemu is built into the -generic kernel, whilei the more common virtio-block or virtio-scsi are not. If you attach those device types, it will fail with 'cant find root'. === End SRU Template === When trying to verify I found a couple cases where this still does not work. Related bugs:  * bug 1677376: growing partitions does not work when booted without initramfs === Begin SRU Template === [Impact] Growing the root partition would fail in either of two cases:  a.) if the device /dev/root existed  b.) the kernel command line had upper case letters in PARTUUID=<value> [Test Case] get-proposed-image is   https://git.launchpad.net/~smoser/cloud-init/+git/sru-info/tree/bin/get-proposed-image It downloads a cloud image of a given release, and then creates a -proposed image with cloud-init upgraded. 1.) get a (proposed) disk image image.   and convert it to raw so you can read the partuuid with sfdisk   (get-proposed-image does this, if not,   'qemu-img convert -O raw orig.img orig.raw')   ./get-proposed-image 2.) get the partition uuid of the first partition    $ raw=yakkety-server-cloudimg-amd64-proposed.raw    $ ptuuid=$(sfdisk --part-uuid $raw 1) 3.) create a nocloud seed    $ printf "%s\n%s\n%s\n%s\n" "#cloud-config" "password: passw0rd" \         "chpasswd: {expire: False}" "ssh_pwauth: True" > my-user-data    $ echo "instance-id: $(uuidgen || echo i-abcdefg)" > my-meta-data    $ cloud-localds my-seed.img my-user-data my-meta-data 4.) extract kernel from inside the image    $ sudo mount-image-callback $raw -- mchroot sh -xc 'cat /boot/vmlinu?-*' > kernel 5.) boot instance with disk backed by the raw disk above.    $ qemu-img create -f qcow2 -b $raw disk.img 10G    $ qemu-system-x86_64 -enable-kvm \        -drive file=disk.img,if=ide,index=0 -drive file=my-seed.img,if=ide \        -net nic -net user,hostfwd=tcp::2222-:22 \        -snapshot -m 768 -nographic -echr 0x05 \        -kernel kernel \        -append "root=PARTUUID=${ptuuid} ro console=tty1 console=ttyS0" 6.) log in, verify / has been resized.    log in with 'ubuntu' and password 'passw0rd'     $ df -h /     Filesystem Size Used Avail Use% Mounted on     /dev/root 9.6G 1009M 8.6G 11% / [Regression Potential] The regression path is really the case where devent2dev finds /dev/root and /dev/root exists. In that case, we now possibly return a /dev/<device> path when previously it would have returned /dev/root. [Other Info] The qemu-system-x86 command above uses ide devices. This is because the ide device emulated by qemu is built into the -generic kernel, whilei the more common virtio-block or virtio-scsi are not. If you attach those device types, it will fail with 'cant find root'. === End SRU Template === When trying to verify I found a couple cases where this still does not work. Related bugs:  * bug 1677376: growing partitions does not work when booted without initramfs * bug 1685291: RFC: virtio and virtio-scsi should be built in
2017-04-26 01:30:48 Launchpad Janitor cloud-init (Ubuntu): status Confirmed Fix Released
2017-04-28 17:07:43 Chad Smith nominated for series Ubuntu Yakkety
2017-04-28 17:07:43 Chad Smith nominated for series Ubuntu Xenial
2017-04-28 17:07:43 Chad Smith nominated for series Ubuntu Artful
2017-04-28 17:07:43 Chad Smith nominated for series Ubuntu Zesty
2017-05-05 14:01:42 Scott Moser bug task added cloud-init (Ubuntu Zesty)
2017-05-05 14:01:44 Scott Moser bug task added cloud-init (Ubuntu Xenial)
2017-05-05 14:01:45 Scott Moser bug task added cloud-init (Ubuntu Artful)
2017-05-05 14:01:46 Scott Moser bug task added cloud-init (Ubuntu Yakkety)
2017-05-05 15:45:19 Scott Moser cloud-init (Ubuntu Xenial): status New Confirmed
2017-05-05 15:45:21 Scott Moser cloud-init (Ubuntu Yakkety): status New Confirmed
2017-05-05 15:45:23 Scott Moser cloud-init (Ubuntu Zesty): status New Confirmed
2017-05-05 15:45:25 Scott Moser cloud-init (Ubuntu Xenial): importance Undecided Medium
2017-05-05 15:45:27 Scott Moser cloud-init (Ubuntu Yakkety): importance Undecided Medium
2017-05-05 15:45:30 Scott Moser cloud-init (Ubuntu Zesty): importance Undecided Medium
2017-05-05 22:58:27 Steve Langasek cloud-init (Ubuntu Xenial): status Confirmed Incomplete
2017-05-08 18:43:11 Steve Langasek description === Begin SRU Template === [Impact] Growing the root partition would fail in either of two cases:  a.) if the device /dev/root existed  b.) the kernel command line had upper case letters in PARTUUID=<value> [Test Case] get-proposed-image is   https://git.launchpad.net/~smoser/cloud-init/+git/sru-info/tree/bin/get-proposed-image It downloads a cloud image of a given release, and then creates a -proposed image with cloud-init upgraded. 1.) get a (proposed) disk image image.   and convert it to raw so you can read the partuuid with sfdisk   (get-proposed-image does this, if not,   'qemu-img convert -O raw orig.img orig.raw')   ./get-proposed-image 2.) get the partition uuid of the first partition    $ raw=yakkety-server-cloudimg-amd64-proposed.raw    $ ptuuid=$(sfdisk --part-uuid $raw 1) 3.) create a nocloud seed    $ printf "%s\n%s\n%s\n%s\n" "#cloud-config" "password: passw0rd" \         "chpasswd: {expire: False}" "ssh_pwauth: True" > my-user-data    $ echo "instance-id: $(uuidgen || echo i-abcdefg)" > my-meta-data    $ cloud-localds my-seed.img my-user-data my-meta-data 4.) extract kernel from inside the image    $ sudo mount-image-callback $raw -- mchroot sh -xc 'cat /boot/vmlinu?-*' > kernel 5.) boot instance with disk backed by the raw disk above.    $ qemu-img create -f qcow2 -b $raw disk.img 10G    $ qemu-system-x86_64 -enable-kvm \        -drive file=disk.img,if=ide,index=0 -drive file=my-seed.img,if=ide \        -net nic -net user,hostfwd=tcp::2222-:22 \        -snapshot -m 768 -nographic -echr 0x05 \        -kernel kernel \        -append "root=PARTUUID=${ptuuid} ro console=tty1 console=ttyS0" 6.) log in, verify / has been resized.    log in with 'ubuntu' and password 'passw0rd'     $ df -h /     Filesystem Size Used Avail Use% Mounted on     /dev/root 9.6G 1009M 8.6G 11% / [Regression Potential] The regression path is really the case where devent2dev finds /dev/root and /dev/root exists. In that case, we now possibly return a /dev/<device> path when previously it would have returned /dev/root. [Other Info] The qemu-system-x86 command above uses ide devices. This is because the ide device emulated by qemu is built into the -generic kernel, whilei the more common virtio-block or virtio-scsi are not. If you attach those device types, it will fail with 'cant find root'. === End SRU Template === When trying to verify I found a couple cases where this still does not work. Related bugs:  * bug 1677376: growing partitions does not work when booted without initramfs * bug 1685291: RFC: virtio and virtio-scsi should be built in === Begin SRU Template === [Impact] Growing the root partition would fail in either of two cases:  a.) if the device /dev/root existed  b.) the kernel command line had upper case letters in PARTUUID=<value> [Test Case] get-proposed-image is   https://git.launchpad.net/~smoser/cloud-init/+git/sru-info/tree/bin/get-proposed-image It downloads a cloud image of a given release, and then creates a -proposed image with cloud-init upgraded. 1.) get a (proposed) disk image image.   and convert it to raw so you can read the partuuid with sfdisk   (get-proposed-image does this, if not,   'qemu-img convert -O raw orig.img orig.raw')   ./get-proposed-image 2.) get the upper-cased partition uuid of the first partition    $ raw=yakkety-server-cloudimg-amd64-proposed.raw    $ ptuuid=$(sfdisk --part-uuid $raw 1) 3.) create a nocloud seed    $ printf "%s\n%s\n%s\n%s\n" "#cloud-config" "password: passw0rd" \         "chpasswd: {expire: False}" "ssh_pwauth: True" > my-user-data    $ echo "instance-id: $(uuidgen || echo i-abcdefg)" > my-meta-data    $ cloud-localds my-seed.img my-user-data my-meta-data 4.) extract kernel from inside the image    $ sudo mount-image-callback $raw -- mchroot sh -xc 'cat /boot/vmlinu?-*' > kernel 5.) boot instance with disk backed by the raw disk above.    $ qemu-img create -f qcow2 -b $raw disk.img 10G    $ qemu-system-x86_64 -enable-kvm \        -drive file=disk.img,if=ide,index=0 -drive file=my-seed.img,if=ide \        -net nic -net user,hostfwd=tcp::2222-:22 \        -snapshot -m 768 -nographic -echr 0x05 \        -kernel kernel \        -append "root=PARTUUID=${ptuuid} ro console=tty1 console=ttyS0" 6.) log in, verify / has been resized.    log in with 'ubuntu' and password 'passw0rd'     $ df -h /     Filesystem Size Used Avail Use% Mounted on     /dev/root 9.6G 1009M 8.6G 11% / [Regression Potential] The regression path is really the case where devent2dev finds /dev/root and /dev/root exists. In that case, we now possibly return a /dev/<device> path when previously it would have returned /dev/root. [Other Info] The qemu-system-x86 command above uses ide devices. This is because the ide device emulated by qemu is built into the -generic kernel, whilei the more common virtio-block or virtio-scsi are not. If you attach those device types, it will fail with 'cant find root'. === End SRU Template === When trying to verify I found a couple cases where this still does not work. Related bugs:  * bug 1677376: growing partitions does not work when booted without initramfs  * bug 1685291: RFC: virtio and virtio-scsi should be built in
2017-05-08 18:59:08 Scott Moser description === Begin SRU Template === [Impact] Growing the root partition would fail in either of two cases:  a.) if the device /dev/root existed  b.) the kernel command line had upper case letters in PARTUUID=<value> [Test Case] get-proposed-image is   https://git.launchpad.net/~smoser/cloud-init/+git/sru-info/tree/bin/get-proposed-image It downloads a cloud image of a given release, and then creates a -proposed image with cloud-init upgraded. 1.) get a (proposed) disk image image.   and convert it to raw so you can read the partuuid with sfdisk   (get-proposed-image does this, if not,   'qemu-img convert -O raw orig.img orig.raw')   ./get-proposed-image 2.) get the upper-cased partition uuid of the first partition    $ raw=yakkety-server-cloudimg-amd64-proposed.raw    $ ptuuid=$(sfdisk --part-uuid $raw 1) 3.) create a nocloud seed    $ printf "%s\n%s\n%s\n%s\n" "#cloud-config" "password: passw0rd" \         "chpasswd: {expire: False}" "ssh_pwauth: True" > my-user-data    $ echo "instance-id: $(uuidgen || echo i-abcdefg)" > my-meta-data    $ cloud-localds my-seed.img my-user-data my-meta-data 4.) extract kernel from inside the image    $ sudo mount-image-callback $raw -- mchroot sh -xc 'cat /boot/vmlinu?-*' > kernel 5.) boot instance with disk backed by the raw disk above.    $ qemu-img create -f qcow2 -b $raw disk.img 10G    $ qemu-system-x86_64 -enable-kvm \        -drive file=disk.img,if=ide,index=0 -drive file=my-seed.img,if=ide \        -net nic -net user,hostfwd=tcp::2222-:22 \        -snapshot -m 768 -nographic -echr 0x05 \        -kernel kernel \        -append "root=PARTUUID=${ptuuid} ro console=tty1 console=ttyS0" 6.) log in, verify / has been resized.    log in with 'ubuntu' and password 'passw0rd'     $ df -h /     Filesystem Size Used Avail Use% Mounted on     /dev/root 9.6G 1009M 8.6G 11% / [Regression Potential] The regression path is really the case where devent2dev finds /dev/root and /dev/root exists. In that case, we now possibly return a /dev/<device> path when previously it would have returned /dev/root. [Other Info] The qemu-system-x86 command above uses ide devices. This is because the ide device emulated by qemu is built into the -generic kernel, whilei the more common virtio-block or virtio-scsi are not. If you attach those device types, it will fail with 'cant find root'. === End SRU Template === When trying to verify I found a couple cases where this still does not work. Related bugs:  * bug 1677376: growing partitions does not work when booted without initramfs  * bug 1685291: RFC: virtio and virtio-scsi should be built in === Begin SRU Template === [Impact] Growing the root partition would fail in either of two cases:  a.) if the device /dev/root existed This occurs on yakkety systems.  b.) the kernel command line had upper case letters in PARTUUID=<value> This can be fed via root= on either xenial or yakkety. [Test Case] get-proposed-image is   https://git.launchpad.net/~smoser/cloud-init/+git/sru-info/tree/bin/get-proposed-image It downloads a cloud image of a given release, and then creates a -proposed image with cloud-init upgraded. 1.) get a (proposed) disk image image.   and convert it to raw so you can read the partuuid with sfdisk   (get-proposed-image does this, if not,   'qemu-img convert -O raw orig.img orig.raw')   ./get-proposed-image 2.) get the partition uuid of the first partition    $ raw=yakkety-server-cloudimg-amd64-proposed.raw    $ ptuuid=$(sfdisk --part-uuid $raw 1) # sfdisk will normally output in upper case, but be explicit here. $ ptuuid=$(echo "$ptuuid" | tr '[a-z]' '[A-Z]') 3.) create a nocloud seed    $ printf "%s\n%s\n%s\n%s\n" "#cloud-config" "password: passw0rd" \         "chpasswd: {expire: False}" "ssh_pwauth: True" > my-user-data    $ echo "instance-id: $(uuidgen || echo i-abcdefg)" > my-meta-data    $ cloud-localds my-seed.img my-user-data my-meta-data 4.) extract kernel from inside the image    $ sudo mount-image-callback $raw -- mchroot sh -xc 'cat /boot/vmlinu?-*' > kernel 5.) boot instance with disk backed by the raw disk above.    $ qemu-img create -f qcow2 -b $raw disk.img 10G    $ qemu-system-x86_64 -enable-kvm \        -drive file=disk.img,if=ide,index=0 -drive file=my-seed.img,if=ide \        -net nic -net user,hostfwd=tcp::2222-:22 \        -snapshot -m 768 -nographic -echr 0x05 \        -kernel kernel \        -append "root=PARTUUID=${ptuuid} ro console=tty1 console=ttyS0" 6.) log in, verify / has been resized.    log in with 'ubuntu' and password 'passw0rd'     $ df -h /     Filesystem Size Used Avail Use% Mounted on     /dev/root 9.6G 1009M 8.6G 11% / [Regression Potential] The regression path is really the case where devent2dev finds /dev/root and /dev/root exists. In that case, we now possibly return a /dev/<device> path when previously it would have returned /dev/root. [Other Info] The qemu-system-x86 command above uses ide devices. This is because the ide device emulated by qemu is built into the -generic kernel, whilei the more common virtio-block or virtio-scsi are not. If you attach those device types, it will fail with 'cant find root'. === End SRU Template === When trying to verify I found a couple cases where this still does not work. Related bugs:  * bug 1677376: growing partitions does not work when booted without initramfs  * bug 1685291: RFC: virtio and virtio-scsi should be built in
2017-05-08 19:05:54 Steve Langasek cloud-init (Ubuntu Xenial): status Incomplete Fix Committed
2017-05-08 19:05:57 Steve Langasek bug added subscriber Ubuntu Stable Release Updates Team
2017-05-08 19:06:05 Steve Langasek bug added subscriber SRU Verification
2017-05-08 19:06:12 Steve Langasek tags verification-needed
2017-05-11 20:30:49 Steve Langasek cloud-init (Ubuntu Yakkety): status Confirmed Fix Committed
2017-05-11 20:37:42 Steve Langasek cloud-init (Ubuntu Zesty): status Confirmed Fix Committed
2017-05-12 20:40:10 Chad Smith tags verification-needed verification-done-yakkety verification-done-zesty verification-needed
2017-05-16 14:10:59 Scott Moser attachment added xenial console log of boot https://bugs.launchpad.net/cloud-init/+bug/1684869/+attachment/4877492/+files/xenial-boot.log
2017-05-16 14:11:40 Scott Moser tags verification-done-yakkety verification-done-zesty verification-needed verification-done-xenial verification-done-yakkety verification-done-zesty
2017-05-17 02:58:17 Launchpad Janitor cloud-init (Ubuntu Xenial): status Fix Committed Fix Released
2017-05-17 02:59:08 Chris Halse Rogers removed subscriber Ubuntu Stable Release Updates Team
2017-05-17 03:07:38 Launchpad Janitor cloud-init (Ubuntu Yakkety): status Fix Committed Fix Released
2017-05-17 03:14:07 Launchpad Janitor cloud-init (Ubuntu Zesty): status Fix Committed Fix Released
2017-09-23 02:31:14 Scott Moser cloud-init: status Confirmed Fix Released
2017-10-23 13:57:31 Scott Moser description === Begin SRU Template === [Impact] Growing the root partition would fail in either of two cases:  a.) if the device /dev/root existed This occurs on yakkety systems.  b.) the kernel command line had upper case letters in PARTUUID=<value> This can be fed via root= on either xenial or yakkety. [Test Case] get-proposed-image is   https://git.launchpad.net/~smoser/cloud-init/+git/sru-info/tree/bin/get-proposed-image It downloads a cloud image of a given release, and then creates a -proposed image with cloud-init upgraded. 1.) get a (proposed) disk image image.   and convert it to raw so you can read the partuuid with sfdisk   (get-proposed-image does this, if not,   'qemu-img convert -O raw orig.img orig.raw')   ./get-proposed-image 2.) get the partition uuid of the first partition    $ raw=yakkety-server-cloudimg-amd64-proposed.raw    $ ptuuid=$(sfdisk --part-uuid $raw 1) # sfdisk will normally output in upper case, but be explicit here. $ ptuuid=$(echo "$ptuuid" | tr '[a-z]' '[A-Z]') 3.) create a nocloud seed    $ printf "%s\n%s\n%s\n%s\n" "#cloud-config" "password: passw0rd" \         "chpasswd: {expire: False}" "ssh_pwauth: True" > my-user-data    $ echo "instance-id: $(uuidgen || echo i-abcdefg)" > my-meta-data    $ cloud-localds my-seed.img my-user-data my-meta-data 4.) extract kernel from inside the image    $ sudo mount-image-callback $raw -- mchroot sh -xc 'cat /boot/vmlinu?-*' > kernel 5.) boot instance with disk backed by the raw disk above.    $ qemu-img create -f qcow2 -b $raw disk.img 10G    $ qemu-system-x86_64 -enable-kvm \        -drive file=disk.img,if=ide,index=0 -drive file=my-seed.img,if=ide \        -net nic -net user,hostfwd=tcp::2222-:22 \        -snapshot -m 768 -nographic -echr 0x05 \        -kernel kernel \        -append "root=PARTUUID=${ptuuid} ro console=tty1 console=ttyS0" 6.) log in, verify / has been resized.    log in with 'ubuntu' and password 'passw0rd'     $ df -h /     Filesystem Size Used Avail Use% Mounted on     /dev/root 9.6G 1009M 8.6G 11% / [Regression Potential] The regression path is really the case where devent2dev finds /dev/root and /dev/root exists. In that case, we now possibly return a /dev/<device> path when previously it would have returned /dev/root. [Other Info] The qemu-system-x86 command above uses ide devices. This is because the ide device emulated by qemu is built into the -generic kernel, whilei the more common virtio-block or virtio-scsi are not. If you attach those device types, it will fail with 'cant find root'. === End SRU Template === When trying to verify I found a couple cases where this still does not work. Related bugs:  * bug 1677376: growing partitions does not work when booted without initramfs  * bug 1685291: RFC: virtio and virtio-scsi should be built in === Begin SRU Template === [Impact] Growing the root partition would fail in either of two cases:  a.) if the device /dev/root existed      This occurs on yakkety systems.  b.) the kernel command line had upper case letters in PARTUUID=<value>      This can be fed via root= on either xenial or yakkety. [Test Case] get-proposed-image is   https://git.launchpad.net/~smoser/cloud-init/+git/sru-info/tree/bin/get-proposed-image It downloads a cloud image of a given release, and then creates a -proposed image with cloud-init upgraded. 1.) get a (proposed) disk image image.   and convert it to raw so you can read the partuuid with sfdisk   (get-proposed-image does this, if not,   'qemu-img convert -O raw orig.img orig.raw')   ./get-proposed-image 2.) get the partition uuid of the first partition    $ raw=yakkety-server-cloudimg-amd64-proposed.raw    $ ptuuid=$(sfdisk --part-uuid $raw 1)    # sfdisk will normally output in upper case, but be explicit here.    $ ptuuid=$(echo "$ptuuid" | tr '[a-z]' '[A-Z]') 3.) create a nocloud seed    $ printf "%s\n%s\n%s\n%s\n" "#cloud-config" "password: passw0rd" \         "chpasswd: {expire: False}" "ssh_pwauth: True" > my-user-data    $ echo "instance-id: $(uuidgen || echo i-abcdefg)" > my-meta-data    $ cloud-localds my-seed.img my-user-data my-meta-data 4.) extract kernel from inside the image    $ sudo mount-image-callback $raw -- mchroot sh -xc 'cat /boot/vmlinu?-*' > kernel 5.) boot instance with disk backed by the raw disk above.    $ qemu-img create -f qcow2 -b $raw disk.img 10G    $ qemu-system-x86_64 -enable-kvm \        -drive file=disk.img,if=ide,index=0 -drive file=my-seed.img,if=ide \        -net nic -net user,hostfwd=tcp::2222-:22 \        -snapshot -m 768 -nographic -echr 0x05 \        -kernel kernel \        -append "root=PARTUUID=${ptuuid} ro console=tty1 console=ttyS0" 6.) log in, verify / has been resized.    log in with 'ubuntu' and password 'passw0rd'     $ df -h /     Filesystem Size Used Avail Use% Mounted on     /dev/root 9.6G 1009M 8.6G 11% / [Regression Potential] The regression path is really the case where devent2dev finds /dev/root and /dev/root exists. In that case, we now possibly return a /dev/<device> path when previously it would have returned /dev/root. [Other Info] The qemu-system-x86 command above uses ide devices. This is because the ide device emulated by qemu is built into the -generic kernel, whilei the more common virtio-block or virtio-scsi are not. If you attach those device types, it will fail with 'cant find root'. === End SRU Template === When trying to verify I found a couple cases where this still does not work. Related bugs:  * bug 1677376: growing partitions does not work when booted without initramfs  * bug 1685291: RFC: virtio and virtio-scsi should be built in * bug 1725067: cloud-init resizefs fails when booting with root=PARTUUID= Edit
2023-05-10 23:50:58 James Falcon bug watch added https://github.com/canonical/cloud-init/issues/2863