[OE-core] [PATCH 1/2] wic: When using --use-uuid make sure that we update the fstab with PARTUUID

Ed Bartosh ed.bartosh at linux.intel.com
Wed Nov 8 14:30:19 UTC 2017


On Wed, Nov 08, 2017 at 10:00:54AM -0500, Tom Rini wrote:
> On Wed, Nov 08, 2017 at 01:20:15PM +0200, Ed Bartosh wrote:
> > On Tue, Nov 07, 2017 at 09:54:57AM -0500, Tom Rini wrote:
> > > On Tue, Nov 07, 2017 at 10:11:35AM +0200, Ed Bartosh wrote:
> > > > On Mon, Nov 06, 2017 at 07:44:23AM -0500, Tom Rini wrote:
> > > > > On Mon, Nov 06, 2017 at 09:36:20AM -0200, Otavio Salvador wrote:
> > > > > > On Mon, Nov 6, 2017 at 8:08 AM, Ed Bartosh <ed.bartosh at linux.intel.com> wrote:
> > > > > > > On Fri, Nov 03, 2017 at 08:51:50AM -0400, Tom Rini wrote:
> > > > > > >> On Fri, Oct 20, 2017 at 09:15:05AM -0400, Tom Rini wrote:
> > > > > > >> > On Tue, Oct 10, 2017 at 05:01:49PM -0400, Tom Rini wrote:
> > > > > > >> > > On Thu, Sep 21, 2017 at 01:46:16PM -0400, Tom Rini wrote:
> > > > > > >> > > > When we have been told to use the UUID we should also update the fstab
> > > > > > >> > > > to make use of PARTUUID instead of hard-coding the device in question.
> > > > > > >> > > > This will make the resulting image much more portable.
> > > > > > >> > > >
> > > > > > >> > > > Signed-off-by: Tom Rini <trini at konsulko.com>
> > > > > > >> > > > ---
> > > > > > >> > > >  scripts/lib/wic/plugins/imager/direct.py | 9 ++++++---
> > > > > > >> > > >  1 file changed, 6 insertions(+), 3 deletions(-)
> > > > > > >> > >
> > > > > > >> > > Where we did we end up with this?  Ed pointed out that you can tell wic
> > > > > > >> > > to use a specific UUID, so reproducible images are not a problem.  And
> > > > > > >> > > making images that are readily portable is why other distros use
> > > > > > >> > > UUID/LABEL and not device names as much as possible.  I personally enjoy
> > > > > > >> > > being able to put an image on uSD for minnow and have it work :)
> > > > > > >> > > Thanks!
> > > > > > >> >
> > > > > > >> > ping?
> > > > > > >>
> > > > > > >> I was just reminded about the real problems this solves (swap isn't
> > > > > > >> /dev/sda3, boot is being excessively slow), so, ping?
> > > > > > >>
> > > > > > >
> > > > > > > I'm generally ok with the patchset. The only thing I'm thinking of is if busybox mount
> > > > > > > supports PARTUUID syntax in fstab. Can you check this, please?
> > > > > > 
> > > > > > It does.
> > > > > 
> > > > > It doesn't, you need util-linux for a mount that figures these out (or,
> > > > > it did when I wrote the patch set).
> > > 
> > > Let me correct myself here.  I think what threw me off for a moment
> > > (since I hadn't picked these patches up in a while) was that busybox
> > > mount might handle PARTUUID, but busybox swapon/off doesn't.  But that's
> > > not quite the point, either.
> > > 
> > 
> > Just checked it out with core-image-minimal:
> > 
> > root at qemux86-64:~# grep UUID /etc/fstab
> > PARTUUID=452e020d-01	/boot	vfat	defaults	0	0
> > PARTUUID=452e020d-03	/mnt	ext4	defaults	0	0
> > root at qemux86-64:~# mount |grep mnt
> > root at qemux86-64:~# mount /mnt
> > mount: mounting PARTUUID=452e020d-03 on /mnt failed: No such file or
> > directory
> > 
> > 
> > It could be that busybox can be configured to do this, but at least current
> > oe-core busybox doesn't understand PARTUUID syntax in fstab.
> 
> More clarity required then. :)  busybox mount does support LABEL and
> UUID (filesystem UUID, that is) but not PARTUUID.  The kernel doesn't
> support LABEL nor UUID (that is to say, root=UUID=xxx works via
> initramfs when it's used in other cases).
> 
> But the above leaves out one use case, and it's the one that got me
> started here, swap.  busybox does not support UUID nor PARTUUID in
> swapon/swapoff.  It's an additional feature to have it create swapfiles
> with a UUID at all.
> 
> > > > This practically means that this patch makes it impossible to use
> > > > --use-uuid for busybox-powered images. This is quite a big regression
> > > > from my point of view. We need to make this feature optional then.
> > > 
> > > How does it change anything at all for that case?  Today there's cases
> > > where you would want to in some cases use PARTUUID, via --use-uuid, but
> > > you can't.  --use-uuid is only valid for the root device as the kernel
> > > handles parsing PARTUUID and our fstab only ever has /dev/root listed,
> > > and all other entires in the table, even when we say --use-uuid, do not
> > > use the UUID but instead use the device name.  Today, we only pass
> > > --use-uuid in, in that case.
> > > 
> > > What 1/2 allows for is passing in --use-uuid for any partition and
> > > having it be enforced.  There's no canned wks file changes made at all.
> > > 
> > > What 2/2 does is update the systemd canned wks (where you will not be
> > > able to have busybox swapon/off, you're already forced into util-linux
> > > for utils) to make use of --use-uuid.  I would strongly encourage this
> > > to be applied as well as it makes systemd-based images much more useful
> > > and does not change anything about busybox-only images.  It also allows
> > > for external wks files to use UUIDs when they want to.
> > 
> > This makes sense to me. The patchset doesn't introduce regressions to
> > the current functionality.
> 
> Agreed.
> 
> > It would be nice to at least try to make it
> > working with busybox-powered images though.
> 
> I'm not sure this would be worth the effort.  Given what I said above,
> I don't think it's possible.   We could introduce enough logic to say to
> use PARTUUID for root, call out to blkid to get the filesystem UUID and
> use that for most filesystems, and then still have the busybox issue for
> swap.  PARTUUID is always going to work, with a full util-linux.
>

Even considering what you've said I think it worth the effort. There are
a lot of busybox images around and they'd benefit from at least partial
support of this.

> > If we can't do that for one or another reason we should at least mention
> > it in the documentation and wic help. Please, include this into the
> > patch.
> 
> OK, I can add a little verbage to help.py.  Is there work that needs
> doing to the yocto docs repository as well?
> 

That would be great if you do that as well. You can also mention this in
the bug and ask help from people who maintain Yocto documentation.

> > 
> > > > >  That's why 2/2 only updates the
> > > > > systemd canned wks as that _will_ have full mount.  But please note that
> > > > > you can already make a wks file that doesn't work with busybox mount by
> > > > > using the --use-uuid flag for non-root partitions :)
> > > >
> > > > What's the point of using --use-uuid for non-root partitions? I thought
> > > > it only makes sense for root as it triggers update of kernel command
> > > > line.
> > > 
> > > For the same reasons you want to use PARTUUID for the kernel.  You do
> > > not know that you're going to be "sda".  You might be "vda" or "mmcblk"
> > > or something else.  As a specific example, having "sda3" for swap in the
> > > systemd wks file, but your actual device being something else, means
> > > that you spend 90s during start-up for systemd trying very hard and
> > > being mad that sda3 cannot be swapon'd (it will have swapon'd mmcblk0p3
> > > already, automatically).
> > 
> > My question was about the current functionaily, i.e. without your patch.
> > With your patch using --use-uuid for non-root partitions started to make
> > sense.
> 
> OK.
> 
> > P.S. there is a bugzilla item for this:
> > https://bugzilla.yoctoproject.org/show_bug.cgi?id=11525
> > please, don't hesitate to comment there.
> 
> I've grabbed the bugzilla entry since I'm going to push this until it's
> done.  Thanks!

Thank you!

--
Regards,
Ed



More information about the Openembedded-core mailing list