Я хотел узнать, возможно ли подключить USB-устройство после его удаления из Finder, без необходимости заново вставлять его в USB-порт.
Если вы говорите об USB-устройствах в целом? Ответ - да и нет в зависимости от типа извлеченного устройства: Да, если это подключенный жесткий диск или SSD-накопитель, но нет, если это USB-накопитель. Подробности ниже.
Работает для жестких дисков USB
Извлечение жесткого диска USB и попытка перемонтировать его на диск с diskutil mountDisk .
Например, вот пример diskutil list с моего компьютера Mac OS X 10.9.5 (Mavericks) с подключенным одним внешним USB-накопителем и одним USB-накопителем:
/dev/disk0
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *500.1 GB   disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:                  Apple_HFS Hard Drive              499.2 GB   disk0s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3
/dev/disk2
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *2.0 TB     disk2
   1:                        EFI EFI                     209.7 MB   disk2s1
   2:                  Apple_HFS External Hard Drive     2.0 TB     disk2s2
/dev/disk3
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *8.0 GB     disk3
   1:                        EFI EFI                     209.7 MB   disk3s1
   2:                  Apple_HFS USB Flash Drive         7.7 GB     disk3s2
Хорошо, теперь я продолжаю извлекать «Внешний жесткий диск» и снова проверяю diskutil list и результат выглядит на 100% таким же, как и при монтировании:
/dev/disk0
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *500.1 GB   disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:                  Apple_HFS Hard Drive              499.2 GB   disk0s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3
/dev/disk2
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *2.0 TB     disk2
   1:                        EFI EFI                     209.7 MB   disk2s1
   2:                  Apple_HFS External Hard Drive     2.0 TB     disk2s2
/dev/disk3
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *8.0 GB     disk3
   1:                        EFI EFI                     209.7 MB   disk3s1
   2:                  Apple_HFS USB Flash Drive         7.7 GB     disk3s2
Так что теперь, если я хочу перемонтировать «Внешний жесткий диск», мне просто нужно отметить идентификатор раздела «Внешний жесткий диск» (disk2s2) и выполнить эту команду:
diskutil mountDisk /dev/disk2s2
Дождитесь завершения процесса, и том будет смонтирован, как и ожидалось.
Не работает для флеш-накопителей USB
Извлечение флэш-накопителя USB и попытка перемонтировать его на диск с diskutil mountDisk .
Но если я выберу «USB Flash Drive», а затем снова diskutil list , «USB Flash Drive» будет удален из списка:
/dev/disk0
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *500.1 GB   disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:                  Apple_HFS Hard Drive              499.2 GB   disk0s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3
/dev/disk2
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *2.0 TB     disk2
   1:                        EFI EFI                     209.7 MB   disk2s1
   2:                  Apple_HFS External Hard Drive     2.0 TB     disk2s2
И даже если я попытаюсь смонтировать эту флешку, зная точку монтирования из предыдущего списка, вот так:
diskutil mountDisk /dev/disk3s2
Система говорит:
Unable to find disk for /dev/disk3s2
Чем объясняется это несоответствие в поведении? Неуверенный. Но это сводится к тому, что если USB-устройство является жестким диском или твердотельным накопителем, и оно отображается в списке, возвращаемом diskutil list , то у вас не должно возникнуть проблем с переустановкой USB-устройства. Но если это флэш-накопитель USB и не отображается в этом списке? Он не может быть перемонтирован, если USB-накопитель не будет физически отключен и снова подключен.
Работает для флеш-накопителей USB
Выгрузка и перезагрузка расширения ядра USB-накопителя (IOUSBMassStorageClass.kext).
Все это говорит о том, что в комментарии к этому ответу Яннис Линксвайлер объясняет, как, если вы выгрузите и перезагрузите расширение ядра USB-накопителя (IOUSBMassStorageClass.kext), вы сможете эффективно перемонтировать USB-накопитель, не отключая его физически.
Протестировал это на моем компьютере Mac OS X 10.9.5 (Mavericks), и он работает как положено.
Сначала извлеките USB-накопитель, а затем выполните эту команду, чтобы выгрузить IOUSBMassStorageClass.kext:
sudo kextunload /System/Library/Extensions/IOUSBMassStorageClass.kext
Затем выполните эту команду, чтобы перезагрузить IOUSBMassStorageClass.kext:
sudo kextload /System/Library/Extensions/IOUSBMassStorageClass.kext
Сделал это, и моя флешка вернулась без физического прикосновения. Аккуратный трюк! И это не влияет на подключенные жесткие диски USB из того, что я могу сказать.