unmounting disc from web ui doesnt unmount from mac #153

Open
opened 2026-02-20 08:20:46 -05:00 by deekerman · 5 comments
Owner

Originally created by @si458 on GitHub (Mar 9, 2025).

Originally assigned to: @ym on GitHub.

I have a mac mini, when testing using both stable and dev channels,

i can mount an ISO as expected, but then when you say Unmount,

it says it unmounted successfully but in fact it doesnt actually unmount its still mounted on the mac

i ran a custom build on my jetkvm and console is showing the error
Remove Mass Storage Image Error failed to set image path: write /sys/kernel/config/usb_gadget/jetkvm/functions/mass_storage.usb0/lun.0/file: device or resource busy

also side note: when you mount an iso it doesnt actually close the window, it stays open, thats a GUI bug i think

Originally created by @si458 on GitHub (Mar 9, 2025). Originally assigned to: @ym on GitHub. I have a mac mini, when testing using both stable and dev channels, i can mount an ISO as expected, but then when you say Unmount, it says it unmounted successfully but in fact it doesnt actually unmount its still mounted on the mac i ran a custom build on my jetkvm and console is showing the error `Remove Mass Storage Image Error failed to set image path: write /sys/kernel/config/usb_gadget/jetkvm/functions/mass_storage.usb0/lun.0/file: device or resource busy` also side note: when you mount an iso it doesnt actually close the window, it stays open, thats a GUI bug i think
Author
Owner

@MattOates commented on GitHub (Mar 10, 2025):

@si458 you might also want to give the team lsof /sys/kernel/config/usb_gadget/jetkvm/functions/mass_storage.usb0/lun.0/file to see what's using it.

@MattOates commented on GitHub (Mar 10, 2025): @si458 you might also want to give the team `lsof /sys/kernel/config/usb_gadget/jetkvm/functions/mass_storage.usb0/lun.0/file` to see what's using it.
Author
Owner

@si458 commented on GitHub (Mar 10, 2025):

@MattOates the output doesnt show the is any attachment to the file?

# lsof /sys/kernel/config/usb_gadget/jetkvm/functions/mass_storage.usb0/lun.0/file
1	/bin/busybox	0	/dev/console
1	/bin/busybox	1	/dev/console
1	/bin/busybox	2	/dev/console
131	/bin/busybox	0	/dev/console
131	/bin/busybox	1	/dev/console
131	/bin/busybox	2	/dev/console
131	/bin/busybox	10	/dev/tty
179	/userdata/jetkvm/bin/jetkvm_app	0	/dev/null
179	/userdata/jetkvm/bin/jetkvm_app	1	/userdata/jetkvm/last.log
179	/userdata/jetkvm/bin/jetkvm_app	2	/userdata/jetkvm/last.log
179	/userdata/jetkvm/bin/jetkvm_app	3	/dev/null
179	/userdata/jetkvm/bin/jetkvm_app	4	anon_inode:[eventpoll]
179	/userdata/jetkvm/bin/jetkvm_app	5	anon_inode:[eventfd]
179	/userdata/jetkvm/bin/jetkvm_app	6	socket:[5867]
179	/userdata/jetkvm/bin/jetkvm_app	7	socket:[6266]
179	/userdata/jetkvm/bin/jetkvm_app	8	socket:[6267]
179	/userdata/jetkvm/bin/jetkvm_app	9	socket:[6269]
179	/userdata/jetkvm/bin/jetkvm_app	10	socket:[6270]
179	/userdata/jetkvm/bin/jetkvm_app	11	/dev/input/event1
179	/userdata/jetkvm/bin/jetkvm_app	12	socket:[6283]
179	/userdata/jetkvm/bin/jetkvm_app	13	/dev/watchdog
179	/userdata/jetkvm/bin/jetkvm_app	15	/dev/ttyS3
179	/userdata/jetkvm/bin/jetkvm_app	16	pipe:[5926]
179	/userdata/jetkvm/bin/jetkvm_app	17	pipe:[5926]
179	/userdata/jetkvm/bin/jetkvm_app	18	socket:[5935]
179	/userdata/jetkvm/bin/jetkvm_app	19	socket:[5938]
179	/userdata/jetkvm/bin/jetkvm_app	20	socket:[6321]
179	/userdata/jetkvm/bin/jetkvm_app	21	anon_inode:[pidfd]
179	/userdata/jetkvm/bin/jetkvm_app	22	socket:[6322]
179	/userdata/jetkvm/bin/jetkvm_app	23	socket:[6323]
179	/userdata/jetkvm/bin/jetkvm_app	24	socket:[5952]
179	/userdata/jetkvm/bin/jetkvm_app	25	socket:[6324]
179	/userdata/jetkvm/bin/jetkvm_app	26	socket:[6326]
179	/userdata/jetkvm/bin/jetkvm_app	27	socket:[6305]
179	/userdata/jetkvm/bin/jetkvm_app	28	/dev/hidg0
179	/userdata/jetkvm/bin/jetkvm_app	29	/dev/hidg1
179	/userdata/jetkvm/bin/jetkvm_app	30	socket:[6306]
179	/userdata/jetkvm/bin/jetkvm_app	31	socket:[6307]
179	/userdata/jetkvm/bin/jetkvm_app	32	socket:[6308]
179	/userdata/jetkvm/bin/jetkvm_app	33	socket:[6309]
179	/userdata/jetkvm/bin/jetkvm_app	34	socket:[6327]
179	/userdata/jetkvm/bin/jetkvm_app	35	/dev/ptmx
179	/userdata/jetkvm/bin/jetkvm_app	39	anon_inode:[pidfd]
191	/sbin/dropbear	0	/dev/null
191	/sbin/dropbear	1	/dev/console
191	/sbin/dropbear	2	/dev/console
191	/sbin/dropbear	3	socket:[5766]
191	/sbin/dropbear	4	socket:[5767]
245	/userdata/jetkvm/bin/jetkvm_native	0	/dev/null
245	/userdata/jetkvm/bin/jetkvm_native	1	/userdata/jetkvm/last.log
245	/userdata/jetkvm/bin/jetkvm_native	2	/userdata/jetkvm/last.log
245	/userdata/jetkvm/bin/jetkvm_native	3	/dev/fb0
245	/userdata/jetkvm/bin/jetkvm_native	4	/dev/input/event1
245	/userdata/jetkvm/bin/jetkvm_native	5	socket:[5937]
245	/userdata/jetkvm/bin/jetkvm_native	6	socket:[5867]
245	/userdata/jetkvm/bin/jetkvm_native	7	/dev/mpi/vlog
245	/userdata/jetkvm/bin/jetkvm_native	8	anon_inode:inotify
245	/userdata/jetkvm/bin/jetkvm_native	9	socket:[5947]
245	/userdata/jetkvm/bin/jetkvm_native	10	/dev/mpi/valloc
245	/userdata/jetkvm/bin/jetkvm_native	11	/dev/mpi/vsys
245	/userdata/jetkvm/bin/jetkvm_native	12	/dev/mpi/vrgn
245	/userdata/jetkvm/bin/jetkvm_native	13	/dev/mpi/venc
245	/userdata/jetkvm/bin/jetkvm_native	14	/dev/mpi/vpss
245	/userdata/jetkvm/bin/jetkvm_native	15	/dev/ttyS3
245	/userdata/jetkvm/bin/jetkvm_native	16	pipe:[5926]
245	/userdata/jetkvm/bin/jetkvm_native	17	pipe:[5926]
245	/userdata/jetkvm/bin/jetkvm_native	18	/dev/mpi/vvi
245	/userdata/jetkvm/bin/jetkvm_native	19	/dev/mpi/avs
245	/userdata/jetkvm/bin/jetkvm_native	20	/dev/mpi/vrga
245	/userdata/jetkvm/bin/jetkvm_native	21	/dev/mpi/venc
245	/userdata/jetkvm/bin/jetkvm_native	22	/dev/mpi/aiisp
245	/userdata/jetkvm/bin/jetkvm_native	23	socket:[5951]
245	/userdata/jetkvm/bin/jetkvm_native	24	/dev/v4l-subdev2
245	/userdata/jetkvm/bin/jetkvm_native	25	/dev/mpi/valloc
245	/userdata/jetkvm/bin/jetkvm_native	26	/dmabuf:vmpi
245	/userdata/jetkvm/bin/jetkvm_native	27	/dmabuf:vmpi
245	/userdata/jetkvm/bin/jetkvm_native	28	/dmabuf:vmpi
245	/userdata/jetkvm/bin/jetkvm_native	29	/dev/video0
245	/userdata/jetkvm/bin/jetkvm_native	30	/dev/vcodec
245	/userdata/jetkvm/bin/jetkvm_native	31	/dev/mpi/valloc
245	/userdata/jetkvm/bin/jetkvm_native	32	/dmabuf:vmpi
245	/userdata/jetkvm/bin/jetkvm_native	33	/dmabuf:vmpi
270	/bin/busybox	0	/dev/null
270	/bin/busybox	1	/dev/null
270	/bin/busybox	2	/dev/null
270	/bin/busybox	3	pipe:[5843]
270	/bin/busybox	4	pipe:[5843]
274	/bin/busybox	0	/dev/pts/0
274	/bin/busybox	1	/dev/pts/0
274	/bin/busybox	2	/dev/pts/0
274	/bin/busybox	6	socket:[5867]
274	/bin/busybox	10	/dev/tty
274	/bin/busybox	15	/dev/ttyS3
274	/bin/busybox	16	pipe:[5926]
274	/bin/busybox	17	pipe:[5926]
277	/sbin/dropbear	0	/dev/null
277	/sbin/dropbear	1	/dev/console
277	/sbin/dropbear	2	/dev/console
277	/sbin/dropbear	3	pipe:[6396]
277	/sbin/dropbear	4	pipe:[6396]
277	/sbin/dropbear	5	socket:[6391]
277	/sbin/dropbear	6	/dev/ptmx
278	/bin/busybox	0	/dev/pts/1
278	/bin/busybox	1	/dev/pts/1
278	/bin/busybox	2	/dev/pts/1
278	/bin/busybox	10	/dev/tty
@si458 commented on GitHub (Mar 10, 2025): @MattOates the output doesnt show the is any attachment to the file? ``` # lsof /sys/kernel/config/usb_gadget/jetkvm/functions/mass_storage.usb0/lun.0/file 1 /bin/busybox 0 /dev/console 1 /bin/busybox 1 /dev/console 1 /bin/busybox 2 /dev/console 131 /bin/busybox 0 /dev/console 131 /bin/busybox 1 /dev/console 131 /bin/busybox 2 /dev/console 131 /bin/busybox 10 /dev/tty 179 /userdata/jetkvm/bin/jetkvm_app 0 /dev/null 179 /userdata/jetkvm/bin/jetkvm_app 1 /userdata/jetkvm/last.log 179 /userdata/jetkvm/bin/jetkvm_app 2 /userdata/jetkvm/last.log 179 /userdata/jetkvm/bin/jetkvm_app 3 /dev/null 179 /userdata/jetkvm/bin/jetkvm_app 4 anon_inode:[eventpoll] 179 /userdata/jetkvm/bin/jetkvm_app 5 anon_inode:[eventfd] 179 /userdata/jetkvm/bin/jetkvm_app 6 socket:[5867] 179 /userdata/jetkvm/bin/jetkvm_app 7 socket:[6266] 179 /userdata/jetkvm/bin/jetkvm_app 8 socket:[6267] 179 /userdata/jetkvm/bin/jetkvm_app 9 socket:[6269] 179 /userdata/jetkvm/bin/jetkvm_app 10 socket:[6270] 179 /userdata/jetkvm/bin/jetkvm_app 11 /dev/input/event1 179 /userdata/jetkvm/bin/jetkvm_app 12 socket:[6283] 179 /userdata/jetkvm/bin/jetkvm_app 13 /dev/watchdog 179 /userdata/jetkvm/bin/jetkvm_app 15 /dev/ttyS3 179 /userdata/jetkvm/bin/jetkvm_app 16 pipe:[5926] 179 /userdata/jetkvm/bin/jetkvm_app 17 pipe:[5926] 179 /userdata/jetkvm/bin/jetkvm_app 18 socket:[5935] 179 /userdata/jetkvm/bin/jetkvm_app 19 socket:[5938] 179 /userdata/jetkvm/bin/jetkvm_app 20 socket:[6321] 179 /userdata/jetkvm/bin/jetkvm_app 21 anon_inode:[pidfd] 179 /userdata/jetkvm/bin/jetkvm_app 22 socket:[6322] 179 /userdata/jetkvm/bin/jetkvm_app 23 socket:[6323] 179 /userdata/jetkvm/bin/jetkvm_app 24 socket:[5952] 179 /userdata/jetkvm/bin/jetkvm_app 25 socket:[6324] 179 /userdata/jetkvm/bin/jetkvm_app 26 socket:[6326] 179 /userdata/jetkvm/bin/jetkvm_app 27 socket:[6305] 179 /userdata/jetkvm/bin/jetkvm_app 28 /dev/hidg0 179 /userdata/jetkvm/bin/jetkvm_app 29 /dev/hidg1 179 /userdata/jetkvm/bin/jetkvm_app 30 socket:[6306] 179 /userdata/jetkvm/bin/jetkvm_app 31 socket:[6307] 179 /userdata/jetkvm/bin/jetkvm_app 32 socket:[6308] 179 /userdata/jetkvm/bin/jetkvm_app 33 socket:[6309] 179 /userdata/jetkvm/bin/jetkvm_app 34 socket:[6327] 179 /userdata/jetkvm/bin/jetkvm_app 35 /dev/ptmx 179 /userdata/jetkvm/bin/jetkvm_app 39 anon_inode:[pidfd] 191 /sbin/dropbear 0 /dev/null 191 /sbin/dropbear 1 /dev/console 191 /sbin/dropbear 2 /dev/console 191 /sbin/dropbear 3 socket:[5766] 191 /sbin/dropbear 4 socket:[5767] 245 /userdata/jetkvm/bin/jetkvm_native 0 /dev/null 245 /userdata/jetkvm/bin/jetkvm_native 1 /userdata/jetkvm/last.log 245 /userdata/jetkvm/bin/jetkvm_native 2 /userdata/jetkvm/last.log 245 /userdata/jetkvm/bin/jetkvm_native 3 /dev/fb0 245 /userdata/jetkvm/bin/jetkvm_native 4 /dev/input/event1 245 /userdata/jetkvm/bin/jetkvm_native 5 socket:[5937] 245 /userdata/jetkvm/bin/jetkvm_native 6 socket:[5867] 245 /userdata/jetkvm/bin/jetkvm_native 7 /dev/mpi/vlog 245 /userdata/jetkvm/bin/jetkvm_native 8 anon_inode:inotify 245 /userdata/jetkvm/bin/jetkvm_native 9 socket:[5947] 245 /userdata/jetkvm/bin/jetkvm_native 10 /dev/mpi/valloc 245 /userdata/jetkvm/bin/jetkvm_native 11 /dev/mpi/vsys 245 /userdata/jetkvm/bin/jetkvm_native 12 /dev/mpi/vrgn 245 /userdata/jetkvm/bin/jetkvm_native 13 /dev/mpi/venc 245 /userdata/jetkvm/bin/jetkvm_native 14 /dev/mpi/vpss 245 /userdata/jetkvm/bin/jetkvm_native 15 /dev/ttyS3 245 /userdata/jetkvm/bin/jetkvm_native 16 pipe:[5926] 245 /userdata/jetkvm/bin/jetkvm_native 17 pipe:[5926] 245 /userdata/jetkvm/bin/jetkvm_native 18 /dev/mpi/vvi 245 /userdata/jetkvm/bin/jetkvm_native 19 /dev/mpi/avs 245 /userdata/jetkvm/bin/jetkvm_native 20 /dev/mpi/vrga 245 /userdata/jetkvm/bin/jetkvm_native 21 /dev/mpi/venc 245 /userdata/jetkvm/bin/jetkvm_native 22 /dev/mpi/aiisp 245 /userdata/jetkvm/bin/jetkvm_native 23 socket:[5951] 245 /userdata/jetkvm/bin/jetkvm_native 24 /dev/v4l-subdev2 245 /userdata/jetkvm/bin/jetkvm_native 25 /dev/mpi/valloc 245 /userdata/jetkvm/bin/jetkvm_native 26 /dmabuf:vmpi 245 /userdata/jetkvm/bin/jetkvm_native 27 /dmabuf:vmpi 245 /userdata/jetkvm/bin/jetkvm_native 28 /dmabuf:vmpi 245 /userdata/jetkvm/bin/jetkvm_native 29 /dev/video0 245 /userdata/jetkvm/bin/jetkvm_native 30 /dev/vcodec 245 /userdata/jetkvm/bin/jetkvm_native 31 /dev/mpi/valloc 245 /userdata/jetkvm/bin/jetkvm_native 32 /dmabuf:vmpi 245 /userdata/jetkvm/bin/jetkvm_native 33 /dmabuf:vmpi 270 /bin/busybox 0 /dev/null 270 /bin/busybox 1 /dev/null 270 /bin/busybox 2 /dev/null 270 /bin/busybox 3 pipe:[5843] 270 /bin/busybox 4 pipe:[5843] 274 /bin/busybox 0 /dev/pts/0 274 /bin/busybox 1 /dev/pts/0 274 /bin/busybox 2 /dev/pts/0 274 /bin/busybox 6 socket:[5867] 274 /bin/busybox 10 /dev/tty 274 /bin/busybox 15 /dev/ttyS3 274 /bin/busybox 16 pipe:[5926] 274 /bin/busybox 17 pipe:[5926] 277 /sbin/dropbear 0 /dev/null 277 /sbin/dropbear 1 /dev/console 277 /sbin/dropbear 2 /dev/console 277 /sbin/dropbear 3 pipe:[6396] 277 /sbin/dropbear 4 pipe:[6396] 277 /sbin/dropbear 5 socket:[6391] 277 /sbin/dropbear 6 /dev/ptmx 278 /bin/busybox 0 /dev/pts/1 278 /bin/busybox 1 /dev/pts/1 278 /bin/busybox 2 /dev/pts/1 278 /bin/busybox 10 /dev/tty ```
Author
Owner

@legomind commented on GitHub (Sep 20, 2025):

only way to unmount the iso is to reboot the jetkvm device. My host machine is centos btw.

@legomind commented on GitHub (Sep 20, 2025): only way to unmount the iso is to reboot the jetkvm device. My host machine is centos btw.
Author
Owner

@ym commented on GitHub (Sep 26, 2025):

Thanks for raising this. We'll add a feature that forces a reset if umount fails, since in some cases the storage device cannot be removed while the OS is still using it.

@ym commented on GitHub (Sep 26, 2025): Thanks for raising this. We'll add a feature that forces a reset if umount fails, since in some cases the storage device cannot be removed while the OS is still using it.
Author
Owner

@technowhizz commented on GitHub (Nov 2, 2025):

App: 0.4.9
System: 0.2.7
Host: Ubuntu 22.04

Even after rebooting the kvm the virtual media (when using streaming from link) is still there. The only way to get the sr0 device to disappear is to change the function of the usb emulation to keyboard only. However when re-enabling keyboard, mouse and Mass Storage, the sr0 device appears again on my host machine. Again, this persists after reboots too. I'm really confused as to why

@technowhizz commented on GitHub (Nov 2, 2025): App: 0.4.9 System: 0.2.7 Host: Ubuntu 22.04 Even after rebooting the kvm the virtual media (when using streaming from link) is still there. The only way to get the `sr0` device to disappear is to change the function of the usb emulation to keyboard only. However when re-enabling `keyboard, mouse and Mass Storage`, the `sr0` device appears again on my host machine. Again, this persists after reboots too. I'm really confused as to why
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/kvm#153
No description provided.