[OE-core] [PATCH v2] wic: do not overwrite autogenerated /etc/fstab with original too early

Tom Zanussi tom.zanussi at intel.com
Fri Jul 25 00:49:49 UTC 2014


On Thu, 2014-07-24 at 14:27 +0200, Maciej Borzecki wrote:
> DirectImageCreator.__write_fstab() generates new /etc/fstab in sysroot
> with rootfs contents. The fstab entries are generated base on the
> initialn contents of /etc/fstab, plus any extra (other than / or
> /boot) partitions listed in *.wks. A backup of original /etc/fstab is
> done in a temp location. Subsequent call to __restore_fstab() restores
> the backup copy, replacing the autogenerated one.
> 
> Calling __restore_fstab() before Wic_PartData.prepare() brings back the
> original fstab before the partition image file actually is created. As
> such, the autogenerated /etc/fstab will not make it to the partition.
> 

OK, I knew there was something funny about this, and it wasn't really
fixing the problem.  I also knew that it had previously worked, and
digging around realized that the problem was that the recent patch 'wic:
Extend --rootfs-dir to connect rootfs-dirs' is what actually broke
things.

So this patch shouldn't be applied - I need to look at it a bit more and
come up with a proper fix..

Tom

> Signed-off-by: Maciej Borzecki <maciej.borzecki at open-rnd.pl>
> Signed-off-by: Maciek Borzecki <maciek.borzecki at gmail.com>
> ---
> 
> Notes:
>     Previous version got messed up during merges and faulty code was sent
>     out. This one works as expected.
> 
>  scripts/lib/mic/imager/direct.py | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/scripts/lib/mic/imager/direct.py b/scripts/lib/mic/imager/direct.py
> index 2cf4c8d..77a118a 100644
> --- a/scripts/lib/mic/imager/direct.py
> +++ b/scripts/lib/mic/imager/direct.py
> @@ -262,10 +262,12 @@ class DirectImageCreator(BaseImageCreator):
>              # when/if we need to actually do package selection we
>              # should modify things to use those objects, but for now
>              # we can avoid that.
> +
> +            fstab = self.__write_fstab(self.rootfs_dir.get("ROOTFS_DIR"))
> +
>              p.prepare(self, self.workdir, self.oe_builddir, self.rootfs_dir,
>                        self.bootimg_dir, self.kernel_dir, self.native_sysroot)
>  
> -            fstab = self.__write_fstab(p.get_rootfs())
>              self._restore_fstab(fstab)
>  
>              self.__instimage.add_partition(int(p.size),
> @@ -278,6 +280,7 @@ class DirectImageCreator(BaseImageCreator):
>                                             boot = p.active,
>                                             align = p.align,
>                                             part_type = p.part_type)
> +
>          self.__instimage.layout_partitions(self._ptable_format)
>  
>          self.__imgdir = self.workdir





More information about the Openembedded-core mailing list