Как монтировать и размонтировать жесткие диски под Windows (способ Unix)

36

На моем рабочем компьютере у меня есть два жестких диска USB, которые я использую редко. У них есть режим энергосбережения, который отправляет их в спящий режим после нескольких минут простоя.

Всякий раз, когда я открываю контекстное меню для файла, приводы просыпаются (скорее всего, из-за обработчика send). Поэтому я извлекаю диск, но не могу найти способ вернуть его, кроме как отсоединить и снова подключить его.

Есть ли способ размонтировать диски, а затем перемонтировать их только тогда, когда они мне действительно нужны? (В Windows 7 Ultimate.)

Der Hochstapler
источник
Если это поможет, я кратко изложил все варианты в своем ответе на этот вопрос
Альбин

Ответы:

39

Удалите буквы диска с помощью mountvolили diskmgmt.msc. Без буквы диска они не будут отображаться в разделе « Компьютер» или « Отправить» .

mountvol Q: /p

Использование /pфактически размонтирует устройство. В старых версиях Windows у вас есть только тот /d, который только отменяет присвоение буквы диска, но сохраняет подключенный том.

При необходимости переназначить, используя ID тома, напечатанный mountvol:

mountvol Q: \\?\Volume{1be3da43-6602-11e0-b9e6-f11e1c50f5b5}\

Вы также можете смонтировать том в пустой папке (стиль Unix), используя те же инструменты:

mkdir C:\fs\backup-disk
mountvol C:\fs\backup-disk \\?\Volume{1be3da43-6602-11e0-b9e6-f11e1c50f5b5}\

Все эти операции требуют прав администратора.


(На самом деле, вы даже можете напрямую использовать идентификатор тома в своих сценариях резервного копирования, не подключая его куда-либо. Например, \\?\Volume{1be3da43-6602-11e0-b9e6-f11e1c50f5b5}\projectsвместо Q:\projects.)

grawity
источник
6
Кстати, этот GUID привязан к устройству? Будет ли то же самое, если я подключу устройство к другому компьютеру с Windows? Это даже статично между перезагрузками на одной машине?
Der Hochstapler
2
@OliverSalzburg: GUID тома привязан к этому конкретному тому и сохраняется после перезагрузок. (Это необходимо для того, чтобы постоянные назначения букв дисков и монтирование файловой системы работали.) К сожалению, это локально для машины. (Насколько я знаю, в Windows пока нет возможности ссылаться на тома по метке или UUID файловой системы.)
grawity
3
Это действительно так же, как размонтирование в UNIX? На компьютере с UNIX, после того, как том будет смонтирован, безопасно извлечь его из компьютера. (Возможно, это нарушит работу вашей шины SATA, если у вас нет подходящей аппаратной поддержки для этого, и вам может потребоваться перезагрузка, но вы не потеряете данные.) Если вы все равно можете получить доступ к диску как \ \? \ Volume {...}, разве это не означает, что файловая система все еще доступна для ОС, и, следовательно, может иметь незагруженные данные в кэше записи и так далее?
Символ
3
@ DavidBalažic: /Dудаляет только букву диска (или путь). Демонтаж означает отключение всех таких назначений, а также закрытие самой файловой системы. Помните, что Windows монтирует все файловые системы по умолчанию на \\?\Volume{…}пути, и поэтому регулярное mountvolиспользование только добавляет / удаляет дополнительные (как mount --bind /x /yв Linux).
grawity
3
Поэтому, если я хочу, чтобы Windows полностью «отпустила» том, я должен использовать / P? Чтобы получить тот же эффект, что и umount на * nix? Использование / D удаляет одно назначение буквы / пути, в то время как объем фактически остается подключенным?
Давид Балажич
6

Используйте DISKPART, чтобы перевести диск в автономный режим.
Он будет оставаться в автономном режиме даже после перезагрузки или нового включения питания.

Используйте DISKPART, чтобы установить его обратно онлайн

Это можно сделать в скриптах

командный файл для перевода диска 2 в автономный режим:

Offline.cmd

 echo list disk              > c:\windows\temp\namexxxx.none
 echo select disk 2         >> c:\windows\temp\namexxxx.none
 echo offline disk          >> c:\windows\temp\namexxxx.none
 echo exit                  >> c:\windows\temp\namexxxx.none
 diskpart /s c:\windows\temp\namexxxx.none
 erase c:\windows\temp\namexxxx.none
 pause

командный файл для перевода диска 2 в оперативный режим:

Online.cmd

 .
 echo select disk 2 ........
 echo online disk ......
 .

Выполнить от имени администратора

Opoedre
источник
«список дисков» не нужен, он только отображает список дисков для пользователя
trogper
5

Правильный ответ - использовать параметр / P для mountvol (см. Комментарии в принятом ответе, чтобы понять, почему / D недостаточно), но это применимо только к последним версиям Windows (ядро NT версии 6 и выше) .

devconУтилита , как описано в этом ответе работает во всех версиях NT

Костин Гуцэ
источник