From fc89419875e28d46671caaaa81d5701dd853b138 Mon Sep 17 00:00:00 2001 From: Jefferyyen Date: Wed, 13 Nov 2024 18:20:27 +0800 Subject: [PATCH] Umount the device first during mount_usb_storage() (Bugfix) (#1587) To prevent the inserted storage from failing to mount twice, first ensure it is unmounted. Because the OS will auto-mount the inserted storage, the existing subprocess.call(["mount", device_to_mount, FOLDER_TO_MOUNT]) command will cause an error if the format of inserted storage is NTFS. Perform an umount on device_to_mount (e.g., for the media card in #1587, it would be umount /dev/mmcblk0p1) before attempting to mount it again to avoid this issue. --- checkbox-support/checkbox_support/scripts/usb_read_write.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/checkbox-support/checkbox_support/scripts/usb_read_write.py b/checkbox-support/checkbox_support/scripts/usb_read_write.py index 0668e8f10d..67f7906a36 100644 --- a/checkbox-support/checkbox_support/scripts/usb_read_write.py +++ b/checkbox-support/checkbox_support/scripts/usb_read_write.py @@ -170,6 +170,8 @@ def mount_usb_storage(partition): # use pipe so I could hide message like # "umount: /tmp/tmpjzwb6lys: not mounted" subprocess.call(["umount", FOLDER_TO_MOUNT], stderr=subprocess.PIPE) + # umount device_to_mount such as "umount /dev/mmcblk0p1" to avoid when the storage type is ntfs, which could not be mounted twice. + subprocess.call(["umount", device_to_mount], stderr=subprocess.PIPE) # mount the target device/partition # if the return code of the shell command is non-zero, # means something wrong.