<div dir="ltr">Would it be neater to change sparse_copy itself so that it does the fallback, not every caller?<div><br></div><div>Ross</div></div><div class="gmail_extra"><br><div class="gmail_quote">On 16 November 2017 at 11:49, Dogukan Ergun <span dir="ltr"><<a href="mailto:dogukan.ergun@gmail.com" target="_blank">dogukan.ergun@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Docker's aufs filesystem doesn't support file ioctl operations like FIGETBSZ<br>
or FIEMAP.<br>
Sparse_copy operation will fail if those ioctls are not supported.<br>
If sparse_copy fails while generating wic images, fallback to dd for copying<br>
filesystems on final image.<br>
<br>
Signed-off-by: Dogukan Ergun <<a href="mailto:dogukan.ergun@gmail.com">dogukan.ergun@gmail.com</a>><br>
---<br>
scripts/lib/wic/plugins/<wbr>imager/direct.py | 10 ++++++++--<br>
1 file changed, 8 insertions(+), 2 deletions(-)<br>
<br>
diff --git a/scripts/lib/wic/plugins/<wbr>imager/direct.py b/scripts/lib/wic/plugins/<wbr>imager/direct.py<br>
index da1c061..70f93ee 100644<br>
--- a/scripts/lib/wic/plugins/<wbr>imager/direct.py<br>
+++ b/scripts/lib/wic/plugins/<wbr>imager/direct.py<br>
@@ -577,8 +577,14 @@ class PartitionedImage():<br>
for part in self.partitions:<br>
source = part.source_file<br>
if source:<br>
- # install source_file contents into a partition<br>
- sparse_copy(source, self.path, seek=part.start * self.sector_size)<br>
+ try:<br>
+ # install source_file contents into a partition<br>
+ sparse_copy(source, self.path, seek=part.start * self.sector_size)<br>
+ except:<br>
+ # Sparse_copy failed, fallback to dd method<br>
+ dd_cmd = "dd if=%s of=%s bs=%d seek=%d count=%d conv=notrunc" % \<br>
+ (source, self.path, self.sector_size, part.start, part.size_sec)<br>
+ exec_cmd(dd_cmd)<br>
<br>
logger.debug("Installed %s in partition %d, sectors %d-%d, "<br>
"size %d sectors", source, part.num, part.start,<br>
<span class="HOEnZb"><font color="#888888">--<br>
2.7.4<br>
<br>
--<br>
______________________________<wbr>_________________<br>
Openembedded-core mailing list<br>
<a href="mailto:Openembedded-core@lists.openembedded.org">Openembedded-core@lists.<wbr>openembedded.org</a><br>
<a href="http://lists.openembedded.org/mailman/listinfo/openembedded-core" rel="noreferrer" target="_blank">http://lists.openembedded.org/<wbr>mailman/listinfo/openembedded-<wbr>core</a><br>
</font></span></blockquote></div><br></div>