mirror of
https://git.yoctoproject.org/poky
synced 2026-04-18 12:32:12 +02:00
wic: Fix partition files UIDs on multi rootfs images
When a wks makes reference to multiple rootfs, libspeudo data is not properly chossen. This results in filesystems with invalid UIDs for all the files. This can be tested with this .wks file: part / --source rootfs --fstype=ext4 --rootfs-dir=core-image-base part /mnt/data1/ --fstype=ext4 --source rootfs --rootfs-dir=core-image-minimal part /mnt/data2/ --fstype=ext4 --source rootfs --rootfs-dir=core-image-minimal And this script $bitbake core-image-minimal core-image-base syslinux $losetup --partscan --find --read-only --show test*direct $sudo mount /dev/loop0p1 /mnt $ls -lan /mnt otal 40 drwxr-xr-x 18 0 0 1024 May 11 16:11 . drwxr-xr-x 25 0 0 4096 May 6 06:31 .. drwxr-xr-x 2 1000 1000 3072 May 11 15:51 bin drwxr-xr-x 2 1000 1000 1024 May 11 13:59 boot drwxr-xr-x 2 1000 1000 1024 May 11 13:59 dev drwxr-xr-x 25 1000 1000 3072 May 11 15:51 etc drwxr-xr-x 3 1000 1000 1024 May 11 13:59 home drwxr-xr-x 6 1000 1000 3072 May 11 15:51 lib drwx------ 2 0 0 12288 May 11 16:11 lost+found drwxr-xr-x 2 1000 1000 1024 May 11 13:59 media drwxr-xr-x 3 1000 1000 1024 May 11 15:50 mnt drwxr-xr-x 2 1000 1000 1024 May 11 13:59 proc drwxr-xr-x 2 1000 1000 1024 May 11 15:51 run drwxr-xr-x 2 1000 1000 3072 May 11 15:51 sbin drwxr-xr-x 2 1000 1000 1024 May 11 13:59 sys drwxr-xr-t 2 1000 1000 1024 May 11 13:59 tmp drwxr-xr-x 10 1000 1000 1024 May 11 14:54 usr drwxr-xr-x 8 1000 1000 1024 May 11 14:55 var $sudo losetup -d /dev/loop0 (From OE-Core rev: 450335ba5e73a375eb9932b4c4cf37979640dbfc) Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
99745a4ddb
commit
5f6bfdbff5
@@ -211,7 +211,7 @@ class Partition():
|
||||
"""
|
||||
p_prefix = os.environ.get("PSEUDO_PREFIX", "%s/usr" % native_sysroot)
|
||||
p_localstatedir = os.environ.get("PSEUDO_LOCALSTATEDIR",
|
||||
"%s/../pseudo" % get_bitbake_var("IMAGE_ROOTFS"))
|
||||
"%s/../pseudo" % rootfs_dir)
|
||||
p_passwd = os.environ.get("PSEUDO_PASSWD", rootfs_dir)
|
||||
p_nosymlinkexp = os.environ.get("PSEUDO_NOSYMLINKEXP", "1")
|
||||
pseudo = "export PSEUDO_PREFIX=%s;" % p_prefix
|
||||
|
||||
@@ -122,6 +122,10 @@ class DirectPlugin(ImagerPlugin):
|
||||
if self._update_fstab(fstab_lines, self.parts):
|
||||
# copy rootfs dir to workdir to update fstab
|
||||
# as rootfs can be used by other tasks and can't be modified
|
||||
new_pseudo = os.path.realpath(os.path.join(self.workdir, "pseudo"))
|
||||
from_dir = os.path.join(os.path.join(image_rootfs, ".."), "pseudo")
|
||||
from_dir = os.path.realpath(from_dir)
|
||||
copyhardlinktree(from_dir, new_pseudo)
|
||||
new_rootfs = os.path.realpath(os.path.join(self.workdir, "rootfs_copy"))
|
||||
copyhardlinktree(image_rootfs, new_rootfs)
|
||||
fstab_path = os.path.join(new_rootfs, 'etc/fstab')
|
||||
|
||||
Reference in New Issue
Block a user