← Back to team overview

group.of.nepali.translators team mailing list archive

[Bug 1728048] Re: squashfs url matching is too strict

 

This bug was fixed in the package cloud-initramfs-tools - 0.27ubuntu1.5

---------------
cloud-initramfs-tools (0.27ubuntu1.5) xenial; urgency=medium

  * sync with upstream at 0.40ubuntu1
    - whitespace changes.
    - rooturl: adjust squashfs url matching to not require '.'.
      Previously it would match <url>*.squashfs or <url>*.squash
      Now it will match <url>*squashfs or <url>*squash.  (LP: #1728048)
    - updateroot/*, debian/control: new package 'cloud-initramfs-updateroot'
    - debian/README.source: update upstream information for move to git.
    - overlayroot: change from storing password in
      /run/initramfs/overlayroot.passwd rather than randomly generated
      /run/initramfs/overlayroot.XXXXXX
    - overlayroot: avoid confusing systemd (LP: #1723183)
       + Mark / as 'noauto' in the newly written /etc/fstab
       + Comment out the read-only line for /.

 -- Scott Moser <smoser@xxxxxxxxxx>  Fri, 15 Dec 2017 15:57:35 -0500

** Changed in: cloud-initramfs-tools (Ubuntu Xenial)
       Status: Fix Committed => Fix Released

-- 
You received this bug notification because you are a member of नेपाली
भाषा समायोजकहरुको समूह, which is subscribed to Xenial.
Matching subscriptions: Ubuntu 16.04 Bugs
https://bugs.launchpad.net/bugs/1728048

Title:
  squashfs url matching is too strict

Status in cloud-initramfs-tools:
  Fix Released
Status in cloud-initramfs-tools package in Ubuntu:
  Fix Released
Status in cloud-initramfs-tools source package in Xenial:
  Fix Released
Status in cloud-initramfs-tools source package in Zesty:
  Won't Fix
Status in cloud-initramfs-tools source package in Artful:
  Fix Released

Bug description:
  ==== 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/server
  # 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.

  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.

To manage notifications about this bug go to:
https://bugs.launchpad.net/cloud-initramfs-tools/+bug/1728048/+subscriptions