summaryrefslogtreecommitdiffstats
path: root/scripts/lib/mic/imager/direct.py
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/lib/mic/imager/direct.py')
-rw-r--r--scripts/lib/mic/imager/direct.py18
1 files changed, 11 insertions, 7 deletions
diff --git a/scripts/lib/mic/imager/direct.py b/scripts/lib/mic/imager/direct.py
index ac63c38903..2cf4c8de95 100644
--- a/scripts/lib/mic/imager/direct.py
+++ b/scripts/lib/mic/imager/direct.py
@@ -84,17 +84,19 @@ class DirectImageCreator(BaseImageCreator):
self.hdddir = hdddir
self.staging_data_dir = staging_data_dir
- def __write_fstab(self):
+ def __write_fstab(self, image_rootfs):
"""overriden to generate fstab (temporarily) in rootfs. This
is called from mount_instroot, make sure it doesn't get called
from BaseImage.mount()"""
+ if image_rootfs is None:
+ return None
- image_rootfs = self.rootfs_dir
+ fstab = image_rootfs + "/etc/fstab"
+ if not os.path.isfile(fstab):
+ return None
parts = self._get_parts()
- fstab = image_rootfs + "/etc/fstab"
-
self._save_fstab(fstab)
fstab_lines = self._get_fstab(fstab, parts)
self._update_fstab(fstab_lines, parts)
@@ -126,6 +128,8 @@ class DirectImageCreator(BaseImageCreator):
def _restore_fstab(self, fstab):
"""Restore the saved fstab in rootfs"""
+ if fstab is None:
+ return
shutil.move(fstab + ".orig", fstab)
def _get_fstab(self, fstab, parts):
@@ -235,8 +239,6 @@ class DirectImageCreator(BaseImageCreator):
self.__instimage = PartitionedMount(self._instroot)
- fstab = self.__write_fstab()
-
for p in parts:
# as a convenience, set source to the boot partition source
# instead of forcing it to be set via bootloader --source
@@ -263,6 +265,9 @@ class DirectImageCreator(BaseImageCreator):
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),
p.disk,
p.mountpoint,
@@ -273,7 +278,6 @@ class DirectImageCreator(BaseImageCreator):
boot = p.active,
align = p.align,
part_type = p.part_type)
- self._restore_fstab(fstab)
self.__instimage.layout_partitions(self._ptable_format)
self.__imgdir = self.workdir