In EasyOS there is a bash script /usr/local/limine-installer/find-installations, that searches for all installed OSs.
I am using it to install Limine bootloader, and it is useful to multiple-boot any OS, not just EasyOS.
Anyway, I ran the script from a terminal:
Code: Select all
# export UEFIflg=1
# /usr/local/limine-installer/find-installations
And it reported unable to unmount some partitions, with the message "resource busy".
What the script does is mount each partition read-only, if not already mounted, perform a search, then unmount, like this:
Code: Select all
mkdir -p /mnt/$aDEV
mount -t $FSTYPE -r /dev/$aDEV /mnt/$aDEV 2>/dev/null
...search...
sync
umount /dev/$aDEV
The search is just a "find" operation, nothing exotic. That used to work fine, in fact didn't have the "sync" either, and umount always worked.
But no longer. I found inserting a "sleep 1" before the umount fixed unmounting.
But why should that be required?
What has changed that could be causing this? Well, the kernel version. Currently using 5.15.79.
The partition should just unmount, it should not be "busy". Having to implement the "sleep 1" hack is a real worry.
I think this is a question for the experts, like @dimkr , @Keef , @jamesbond , @01micko , etc.
The 'find-installations' script is here:
https://github.com/bkauler/woofq/blob/m ... tallations