I've verified this as shown in the test case above.

** Description changed:

  === Begin SRU Template ===
  [Impact]
  The impact on xenial would only be seen if there were multiple filesystems
  mounted.  In the 16.04 cloud image that is used on openstack or many other
  clouds, there is only one partition.  But in the 16.10  image there is
  a separate uefi partition that caused havoc to overlayroot as the 'workdir'
  option was not correctly supported.
  
  [Test Case]
  The following should work, but currently does not.
  Note, to test the fix, between step 1 and 2, you'll need to enable
  proposed and install overlayroot.
  
  1. Start an instance of a cloud image with 2 disks.
     On openstack by default you get 2 disks (an ephemeral and a root).
     Cloud-init will configure the ephemeral to be a /mnt.
  
  2. remove cloud-init's configuration of /etc/fstab options
      These can cause issue with the way overlayroot does its mounts.
      So just remove the special options that cloud-init writes.
  
-     $ sed -i.dist s/x-systemd.requires=cloud-
+     $ sed -i.dist s/,x-systemd.requires=cloud-
  init.service,comment=cloudconfig// /etc/fstab
  
      if you do not do that, then /mnt will not get mounted, and journalctl
      will show a ordering cycle on the mount.  The following will show failed.
         systemctl status 'media-root\x2dro-mnt.mount'
  
      Note, this is a separate bug, mentioned here only for completeness.
  
  3. Enable proposed and install overlayroot to show fix.
      $ rel=$(lsb_release -sc)
      $ echo "deb http://archive.ubuntu.com/ubuntu $rel-proposed main" |
      $ sudo tee /etc/apt/sources.list.d/proposed.list
      $ sudo apt update -qy && sudo apt install -qy overlayroot </dev/null
      $ dpkg-query --show overlayroot
      overlayroot 0.27ubuntu1.3
  
  4. configure overlayroot to use tmpfs with recurse=1 and reboot.
  
     $ echo "overlayroot=tmpfs:recurse=1" | sudo tee /etc/overlayroot.local.conf
     $ sudo reboot
  
  4. log back in and look around
  
     a.) check that 'overlay' is in /proc/mounts for / and /mnt
         $ awk '$3 ~ /overlay/ { print $0 }' /proc/mounts
         overlayroot / overlay 
rw,relatime,lowerdir=/media/root-ro,upperdir=/media/root-rw/overlay,workdir=/media/root-rw/overlay-workdir/_
 0 0
         /media/root-ro/mnt /mnt overlay 
rw,relatime,lowerdir=/media/root-ro/mnt,upperdir=/media/root-rw/overlay/mnt,workdir=/media/root-rw/overlay-workdir/mnt
 0 0
  
     b.) check that /mnt is set as overlay
         $ df -h /mnt
         Filesystem          Size  Used Avail Use% Mounted on
         /media/root-ro/mnt 1000M  1.3M  999M   1% /mnt
  
     c.) check /run/initramfs/overlayroot.log
         $ grep success /run/initramfs/overlayroot.log
         [success]: configured root with 'tmpfs:recurse=1' using overlay per 
/dev/vda1/etc/overlayroot.local.conf
  
  [Regression Potential]
  Previously almost any scenario with multiple mount points would cause
  failure to boot.  This change does improve the situation, and is not likely
  to regress it.
  
  [Other Info]
  
  === End SRU Template ===
  
  to reproduce, boot a yakkety disk1.img. this is a uefi image, so it has
  multiple partitions.
  
  sudo sh -c 'echo overlayroot=tmpfs > /etc/overlayroot.local.conf &&
  reboot'
  
  you'll see it hang. the reason i believe is the info written to
  /etc/fstab for the non-root mounts does not include workdir information.

** Tags removed: verification-needed
** Tags added: verification-done

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1619459

Title:
  workdir only used for root mount not recursed

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

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to