[OE-core] [PATCH] wic: remove intermediate partitions

Alexandre Belloni alexandre.belloni at free-electrons.com
Mon Apr 27 23:36:42 UTC 2015


Hi,

On 28/04/2015 at 01:29:07 +0200, Alexandre Belloni wrote :
> Remove intermediate partitions that may have been created by a previous
> wic invocation. Those partitions are causing issues on some systems. In
> particular vfat partition creation is hanging on mcopy execution on
> Fedora.
> 

I forgot to add that this fixes #7573.

> Signed-off-by: Alexandre Belloni <alexandre.belloni at free-electrons.com>
> ---
>  scripts/lib/wic/kickstart/custom_commands/partition.py | 8 ++++++++
>  1 file changed, 8 insertions(+)
> 
> diff --git a/scripts/lib/wic/kickstart/custom_commands/partition.py b/scripts/lib/wic/kickstart/custom_commands/partition.py
> index ff906010b8bf..b228b0d73902 100644
> --- a/scripts/lib/wic/kickstart/custom_commands/partition.py
> +++ b/scripts/lib/wic/kickstart/custom_commands/partition.py
> @@ -230,6 +230,7 @@ class Wic_PartData(Mic_PartData):
>          image_rootfs = rootfs_dir
>          rootfs = "%s/rootfs_%s.%s" % (cr_workdir, self.label ,self.fstype)
>  
> +        exec_cmd("rm -f %s" % rootfs)
>          du_cmd = "du -ks %s" % image_rootfs
>          out = exec_cmd(du_cmd)
>          actual_rootfs_size = int(out.split()[0])
> @@ -281,6 +282,7 @@ class Wic_PartData(Mic_PartData):
>          image_rootfs = rootfs_dir
>          rootfs = "%s/rootfs_%s.%s" % (cr_workdir, self.label, self.fstype)
>  
> +        exec_cmd("rm -f %s" % rootfs)
>          du_cmd = "du -ks %s" % image_rootfs
>          out = exec_cmd(du_cmd)
>          actual_rootfs_size = int(out.split()[0])
> @@ -325,6 +327,7 @@ class Wic_PartData(Mic_PartData):
>          image_rootfs = rootfs_dir
>          rootfs = "%s/rootfs_%s.%s" % (cr_workdir, self.label, self.fstype)
>  
> +        exec_cmd("rm -f %s" % rootfs)
>          du_cmd = "du -bks %s" % image_rootfs
>          out = exec_cmd(du_cmd)
>          blocks = int(out.split()[0])
> @@ -377,6 +380,7 @@ class Wic_PartData(Mic_PartData):
>          image_rootfs = rootfs_dir
>          rootfs = "%s/rootfs_%s.%s" % (cr_workdir, self.label ,self.fstype)
>  
> +        exec_cmd("rm -f %s" % rootfs)
>          squashfs_cmd = "mksquashfs %s %s -noappend" % \
>                         (image_rootfs, rootfs)
>          exec_native_cmd(pseudo + squashfs_cmd, native_sysroot)
> @@ -415,6 +419,7 @@ class Wic_PartData(Mic_PartData):
>          """
>          fs = "%s/fs_%s.%s" % (cr_workdir, self.label, self.fstype)
>  
> +        exec_cmd("rm -f %s" % fs)
>          dd_cmd = "dd if=/dev/zero of=%s bs=1k seek=%d count=0" % \
>              (fs, self.size)
>          exec_cmd(dd_cmd)
> @@ -442,6 +447,7 @@ class Wic_PartData(Mic_PartData):
>          """
>          fs = "%s/fs_%s.%s" % (cr_workdir, self.label, self.fstype)
>  
> +        exec_cmd("rm -f %s" % fs)
>          dd_cmd = "dd if=/dev/zero of=%s bs=1k seek=%d count=0" % \
>              (fs, self.size)
>          exec_cmd(dd_cmd)
> @@ -466,6 +472,7 @@ class Wic_PartData(Mic_PartData):
>          Prepare an empty vfat partition.
>          """
>          fs = "%s/fs_%s.%s" % (cr_workdir, self.label, self.fstype)
> +        exec_cmd("rm -f %s" % fs)
>  
>          blocks = self.size
>  
> @@ -492,6 +499,7 @@ class Wic_PartData(Mic_PartData):
>                        "Proceeding as requested." % self.mountpoint)
>  
>          fs = "%s/fs_%s.%s" % (cr_workdir, self.label, self.fstype)
> +        exec_cmd("rm -f %s" % fs)
>  
>          # it is not possible to create a squashfs without source data,
>          # thus prepare an empty temp dir that is used as source
> -- 
> 2.1.4
> 

-- 
Alexandre Belloni, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com



More information about the Openembedded-core mailing list