Как отключить автоматическое монтирование USB

Я использую VirtualBox на своем MBP, и мне часто нужно монтировать флешку внутри гостя. Проблема, с которой я сталкиваюсь, заключается в том, что хост-ОС (OS X Mavericks) сразу же монтирует флэш-накопитель USB, когда я его вставляю. Когда я пытаюсь размонтировать его (изящно, через Finder), OS X жалуется, что устройство используется. Дальнейшее исследование lsof показывает, что Spotlight и AVG делают свое дело с флешкой.

Вместо того, чтобы возиться с настройками отдельных приложений, я хотел бы просто изменить поведение хост-ОС, чтобы USB-устройство не монтировалось автоматически. Какие-либо предложения?

Если у кого-то есть модификация, отлично, но тем временем вы можете использовать терминал для принудительного размонтирования. diskutil unmount force disk1s2Кроме того, если вы выберете файловую систему, которую Spotlight не будет индексировать, или зададите этот диск для исключения в настройках Spotlight, вы можете уменьшить эту задержку и накладные расходы, быстро изменив настройки.
Советую протестировать Disk Arbitrator: apple.stackexchange.com/a/39360/22003 . Это защитит вас от Spotlight, антивирусов и атак.

Ответы (5)

Согласно статье Тофера Кесслера на CNET , вы можете добавить запись в /etc/fstab, указав noautoопцию.

Такая запись может выглядеть так:

UUID=791E37B4-82A3-37E7-9F15-3C39359126B4   none  hfs  rw,noauto

UUID можно получить, найдя Volume UUIDстроку, которая печатается при запуске .diskutil info /Volumes/volume name

У меня есть этот chmod +x (исполняемый файл) в моем каталоге ~/bin/. gist.github.com/voltechs/fc48c9683d50c7c03cab2f0a6477d8da также см. ( apple.stackexchange.com/a/310669/43769 )
э... /etc/fstab не существует!
Можно создать файл, если он не существует, но создайте его как root. Кстати, эта команда sudo vifsрекомендуется вместо прямого редактирования, и она создаст для вас файл, если он не существует.

OS X имеет механизм, называемый Disk Arbitration framework , с помощью которого программы могут контролировать, что происходит, когда диски вставляются или извлекаются. Это также дает возможность перехватить событие вставки диска и предотвратить обычное автоматическое монтирование.

Однако для изменения поведения требуется сторонняя утилита, поскольку структура Disk Arbitration — это просто программный интерфейс. Одной из хороших утилит является Disk Arbitrator , бесплатная (под лицензией BSD) утилита от Aaron Burghardt.

Скриншот дискового арбитра

Во время работы Disk Arbitrator вы можете наложить вето на монтирование вновь вставленных дисков, монтировать их только для чтения или просто разрешить обычное автоматическое монтирование. После выхода Disk Arbitrator нормальное поведение при монтировании восстанавливается.

Это приложение также дало мне гораздо больше информации о томах и состоянии (или сбое) разделов при использовании Дисковой утилиты Apple, оно практически мгновенно обновляет статус монтирования по сравнению с вялыми ответами Дисковой утилиты. Спасибо, что поделились.

Я думаю, что модификация fstab для отключения автоматического монтирования немного чрезмерна для того, что вы пытаетесь сделать. Это похоже на снятие дверей в машине, потому что время от времени вам нужно войти или выйти.

Для этого я бы использовал встроенные USB-фильтры VirtualBox . Это позволяет автоматически монтировать конкретное USB-устройство при вставке. Вы можете найти USB-фильтры в меню «Настройки» конкретной виртуальной машины, которой вы хотите их назначить.

Например, ниже перечислены мои USB-устройства, которые доступны, если я хочу автоматически подключить их к моей виртуальной машине Windows 10 Pro. Я могу подключить свой Seagate FreeAgent Go, SanDisk Cruzer или любое из подключенных USB-устройств. Однако подключение USB-приемника Logitech в конечном итоге сделает мышь неработоспособной на хосте, поэтому будьте осторожны с тем, что вы подключаете.

введите описание изображения здесь,

Откуда я знаю, что это работает? Что ж, я случайно подключил накопитель FreeAgent Go, и он не будет (как я понял) монтироваться в OS X. См. мою первоначальную «проблему»: USB-накопитель не монтируется, не указан в Дисковых утилитах, но найден в System Profiler.

Он делает это по серийному номеру или по UUID (я недостаточно исследовал, чтобы выяснить, что именно), но у меня было несколько дисков FreeAgent Go одинаковой модели и размера, и только один из них автоматически подключался к виртуальной машине. В то время я думал, что мой драйв испортился.

Суть в том, что автоматическое монтирование все еще работало, и я смог подключить USB-устройство напрямую к виртуальной машине, не пытаясь сначала размонтировать его.

Вот как я отключаю автоматическое монтирование томов APFS в macOS Catalina.

Macintosh HD - DataДля томов macOS Macintosh HDв файлах /etc/fstab.

Найдите объем (ы) с помощью diskutil listи установите VOLUME_PATHсоответственно.

# Disable auto mounting of "macOS - Data" volume
VOLUME_PATH="/Volumes/macOS - Data"
VOLUME_UUID=`diskutil info "$VOLUME_PATH" | awk '/Volume UUID:/ { print $3 }'`
cat << EOF | sudo tee -a /etc/fstab
UUID=$VOLUME_UUID none apfs rw,noauto
EOF

# Disable auto mounting of "macOS" volume
VOLUME_PATH="/Volumes/macOS"
VOLUME_UUID=`diskutil info "$VOLUME_PATH" | awk '/Volume UUID:/ { print $3 }'`
cat << EOF | sudo tee -a /etc/fstab
UUID=$VOLUME_UUID none apfs rw,noauto
EOF

Вот что происходит при выполнении вышеуказанных команд:

Установить VOLUME_PATHпеременную в/Volumes/macOS - Data

VOLUME_PATH="/Volumes/macOS - Data"

Установите VOLUME_UUIDпеременную для тома UUID /Volumes/macOS - Dataтома

Запуск diskutil info "$VOLUME_PATH"выводит сведения о томе /Volumes/macOS - Data(включая его UUID).

Передача ( |) этих сведений для awk '/Volume UUID:/ { print $3 }'извлечения UUID.

VOLUME_UUID=`diskutil info "$VOLUME_PATH" | awk '/Volume UUID:/ { print $3 }'`

Добавление и вывод на консоль (см UUID=$VOLUME_UUID none apfs rw,noauto. tee )/etc/fstab

cat << EOF | sudo tee -a /etc/fstab
UUID=$VOLUME_UUID none apfs rw,noauto
EOF
Вопрос касается отключения автомонтирования USB/внешних дисков. Ваш ответ может быть более полезным, если вы опишете, как это можно сделать (и что в целом делают предлагаемые вами команды).
Спасибо за ответ. Эти команды предназначены для внешнего USB-накопителя, на котором выполняется отдельная установка macOS. Та же логика применима к любому объему. Думал, что я внесу альтернативу для опытных пользователей другим ответам. Я могу удалить его, если вы считаете, что это не добавляет ценности.
Это так, и с контекстом, который вы указали в комментарии, я понимаю, что делает код. Но наличие внешнего диска с разделами Catalina, вероятно, не является типичным случаем для большинства пользователей, поэтому, возможно, обновление сценария, чтобы показать, как он работает для устройства под названием USBSTICK или аналогичного, может сделать ответ более полезным для людей, не работающих с Терминалом каждый день.
Также в качестве второстепенной детали можно объединить grep/awkвawk '/Volume UUID:/ { print $3 }'
Круто не знал об этом синтаксисе. Спасибо, что поделился!

Я нашел официальное руководство по адресу https://discussions.apple.com/docs/DOC-7942 «Предотвращение монтирования тома при запуске».

Ответы на Ask Different должны быть чем-то большим, чем просто ссылка. Мы ожидаем, что ответы будут автономными, поскольку, если ваша ссылка не работает, ваш ответ будет бесполезен. Перефразирование источника и включение любой соответствующей информации в ответ гарантирует, что он останется актуальным.