From 2605c6ca952ec8d2a05e7673132c53ed3d3e18ca Mon Sep 17 00:00:00 2001 From: Brandon Philips Date: Mon, 9 Sep 2013 17:47:10 -0700 Subject: [PATCH] feat(vm_image_util): use bind mounts for pxe oem solid cleanup idea from marineam to use bind mounts instead of copying to generate the desired root layout. --- build_library/vm_image_util.sh | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/build_library/vm_image_util.sh b/build_library/vm_image_util.sh index b666ef9314..66695a07db 100644 --- a/build_library/vm_image_util.sh +++ b/build_library/vm_image_util.sh @@ -366,30 +366,27 @@ _write_dir_to_cpio() { _write_squashfs_root() { local cpio_target="$1" local root_mnt="${VM_TMP_DIR}/rootfs" - local root_build="${VM_TMP_DIR}/rootbuild" + local oem_mnt="${VM_TMP_DIR}/oem" local dst_dir=$(_dst_dir) local vmlinuz_name="$(_dst_name ".vmlinuz")" mkdir -p "${root_mnt}" - mkdir -p "${root_build}" mkdir -p "${cpio_target}" # Roll the rootfs into the build dir sudo mount -o loop,ro "${TEMP_ROOTFS}" "${root_mnt}" - sudo cp -Ra "${root_mnt}"/. "${root_build}" - cp "${root_mnt}"/boot/vmlinuz "${dst_dir}/${vmlinuz_name}" - sudo umount "${root_mnt}" # Roll the OEM into the build dir - local oem_mnt="${VM_TMP_DIR}/oem" - sudo cp -Ra "${oem_mnt}" "${root_build}" - sudo rm -R "${VM_TMP_DIR}/oem" - + sudo mount --bind "${oem_mnt}"/usr/share/oem "${root_mnt}"/usr/share/oem # Build the squashfs - sudo mksquashfs "${root_build}" "${cpio_target}"/newroot.squashfs - ls -la ${cpio_target} + sudo mksquashfs "${root_mnt}" "${cpio_target}"/newroot.squashfs - sudo rm -rf "${root_mnt}" "${root_build}" + cp "${root_mnt}"/boot/vmlinuz "${dst_dir}/${vmlinuz_name}" + + sudo umount "${root_mnt}"/usr/share/oem + sudo umount "${root_mnt}" + + sudo rm -rf "${root_mnt}" } # If a config format is defined write it!