** Description changed: ==== Begin SRU Template === - [Impact] + [Impact] Squashfs images published by Ubuntu on http://cloud-images.ubuntu.com end in '.squashfs' and on http://images.maas.io/ephemeral-v3/ the files are named 'squashfs'. When you boot an initramfs with rooturl it would automatically determine/assume that content is squashfs if it ended in '.squash' or '.squashfs'. The filter was just too strict and would thus not match - http://images.maas.io/ephemeral-v3/..../squashfs + http://images.maas.io/ephemeral-v3/..../squashfs That meant a usage would have to re-publish the url. [Test Case] - Base this off of test case in bug 1711760 + ## setup system to build maas images + $ sudo apt-get install -qy --no-install-recommends bzr + $ bzr branch lp:maas-images + $ cd maas-images + $ ./system-setup - [Regression Potential] + ## download the reference squashfs images. + $ arch=amd64 + $ burl=http://cloud-images.ubuntu.com/ + # download reference squashfs images + $ for rel in xenial zesty artful; do + file=../$rel-server-cloudimg-$arch.squashfs + [ -f "$file" ] && continue + wget "$burl/$rel/current/$file" -O "$file.tmp" && mv "$file.tmp" "$file"; + done + + ## build maas image output. This creates a squashfs image and kernel/initramfs + ## files that have the updated packages inside. + ## It does take a while to run, and lots of cpu and IO. + ## You can reduce the kernels built by commenting out 'lowlatency' and 'edge' + ## kernels: + ## sed -i -e '/^[ ].*\(lowlatency\|edge\)/s/^/#/' conf/meph-v3.yaml + # either set 'proposed' or add the repo via M2E_ADD_REPOS + $ proposed="--proposed" + $ export M2E_ADD_REPOS=ppa:smoser/cloud-initramfs-tools + $ for rel in xenial zesty artful; do + img=../$rel-server-cloudimg-$arch.squashfs + PATH=$PWD/bin:$PATH ./bin/meph2-build $proposed --config=conf/meph-v3.yaml \ + $arch $rel $(date +"%Y%m%d") $img ../$rel.d/ 2>&1 | + tee ../$rel.log + done + + ## After running, you will have files like: + $ find xenial.d/xenial -type f | sort + xenial.d/xenial/amd64/20171221/ga-16.04/generic/boot-initrd + xenial.d/xenial/amd64/20171221/ga-16.04/generic/boot-kernel + xenial.d/xenial/amd64/20171221/hwe-16.04/generic/boot-initrd + xenial.d/xenial/amd64/20171221/hwe-16.04/generic/boot-kernel + xenial.d/xenial/amd64/20171221/squashfs + xenial.d/xenial/amd64/20171221/squashfs.manifest + + ## You can verify in the $rel.log files you have 'Setting up cloud-initramfs-' + $ grep '^Setting up overlayroot' xenial.log + Setting up overlayroot (0.27ubuntu1.5~ppa16.04.1) ... + + + ## Now download the test-boot script, provide it a directory and + ## the squashfs, kernel, initramfs + + $ ./test-boot test-x xenial.d/xenial/amd64/20171221/squashfs \ + xenial.d/xenial/amd64/20171221/ga-16.04/generic/boot-kernel \ + xenial.d/xenial/amd64/20171221/ga-16.04/generic/boot-initrd + + $ r=zesty; ./test-boot work.d $r.d/*/amd64/*/squashfs $r.d/*/amd64/*/ga-*/generic/boot-kernel $r.d/*/amd64/*/ga-*/generic/boot-initrd + Now, do: + cd work.d + ./boot + + + ## Running ./boot will serve the squashfs image over http, and then + ## boot the kernel and initrd with a kernel command line of + ## root=http://<url>/squashfs + ## and + ## ds=nocloud-net;seedfrom=http://10.0.2.2:9999/ + ## which will the read the 'user-data' and 'meta-data' files in that dir. + ## + ## The result is that you can log in with 'ubuntu' and 'passw0rd' + + ## Then collect some information + # you'll see the 'LABEL=' entry is commented out. + $ cat /etc/fstab + # local-fs.target should be fine + $ systemctl status local-fs.target --no-pager + # just for record + $ cat /proc/cmdline + + [Regression Potential] Very low. If a url does not match, rooturl would just complain and do nothing. This just extends the things that match. [Other Info] This does seem to be low importance. In fact it is, but its jsut part of syncing cloud-initramfs-tools across xenial, artful, zesty with bionic. ==== End SRU Template === The code that automatically determines a squashfs url is just to strict. You can explicitly declare it as squash with: root=squashfs:http://<>/... but currently the automatic matching requires it to end in .squashfs or .squash. This doesn't match urls like <url>/squashfs <url>/my-squash which are as obviously squashfs urls as others.
** Attachment added: "test-squashfs-boot: script to boot a squashfs, kernel and initrd with overlayroot" https://bugs.launchpad.net/cloud-initramfs-tools/+bug/1728048/+attachment/5025774/+files/test-squashfs-boot -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1728048 Title: squashfs url matching is too strict To manage notifications about this bug go to: https://bugs.launchpad.net/cloud-initramfs-tools/+bug/1728048/+subscriptions -- ubuntu-bugs mailing list [email protected] https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
