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 |
|