** Description changed: ==== Begin SRU Template === [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 That meant a usage would have to re-publish the url. [Test Case] ## 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 ## 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 + 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 + 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 + 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 - + 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. + The fix applied here is a backport what is currently in bionic to + each release. in xenial, that means a new binary package + (cloud-initramfs-updateroot). + ==== 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.
-- 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
