Я хотел узнать, возможно ли подключить 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 из того, что я могу сказать.