Как убрать «фантомные» буквы дисков?

16

Недавно я подключил два жестких диска USB в формате GPT к моей рабочей станции Win10. Мне пришлось обновить хранилище BCD на них, чтобы я использовал Diskpart для назначения букв S: и T: разделам EFI на дисках. Теперь у меня есть две буквы фантомного диска S: и T:, которые теперь постоянно отображаются на моем ПК, даже если у меня больше нет подключенных жестких дисков.

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

Я попытался подключить диски обратно, чтобы удалить букву, но разделы EFI на этих дисках не получили буквы дисков (что является нормальным поведением). Я снова попытался использовать Diskpart, чтобы присвоить им одинаковые буквы, но он говорит, что эти буквы уже используются.

Буквы дисков не соответствуют чему-либо в консоли управления дисками, поэтому я не могу удалить их оттуда. В диспетчере устройств нет ничего, что могло бы их удерживать. Я решил показать скрытые устройства и удалил все серые тома в списке, но буквы дисков остались.

Эти буквы диска "застряли" сейчас, и я не могу избавиться от них.

Есть идеи?

Уэс Сайид
источник

Ответы:

19

Команда для удаления буквы диска - которая не должна быть нужна, но, эй, Win10, есть еще некоторые ошибки - есть mountvol <drive> /D, так что для вас это будет mountvol S: /Dи mountvol T: /D. Вы также можете попробовать mountvol /R, который должен удалить все назначения букв дисков, для которых в данный момент нет подключенного диска. Вы также можете попробовать использовать /Pвместо /D, но он предназначен для использования, когда объем фактически присутствует.

Вы также можете использовать removeкоманду diskpartдля удаления буквенных обозначений дисков. Вы упомянули об использовании mountvol, чтобы попытаться переназначить буквы дисков, но не упомянули, что пытались их удалить. Я уверен, что он просто вызывает те же API, что mountvolи на самом деле.

Все эти команды необходимо запускать от имени администратора, естественно.

CBHacking
источник
Я не могу использовать его diskpartдля удаления, потому что прежде selectчем вы сможете removeэто сделать, вы должны сначала включить том , а буквы не соответствуют никому. Похоже, mountvolтоже не справляется. / D говорит, что система не может найти указанный файл. / R говорит, что каталог не пустой.
Уэс Сайид
Это ... странные ошибки. Я предполагаю, что они сохраняются после перезагрузки, и эти попытки были предприняты после перезагрузки. Следующее место, которое вы можете проверить, это HKLM\SYSTEM\MountedDevicesраздел реестра; если есть значения, называемые такими вещами, как \DosDevices\S:, удалите их. Тем не менее, я подозреваю, что это вызвало ошибку «Файл не найден» mountvol; он попытался удалить эти значения программно, а их там нет. Хотя стоит проверить.
CBHacking
1
Да, они сохраняются после перезагрузки, и нет, HKLM \ MountingDevices не имеет ссылок на них. Однако проблема исчезла сама по себе после некоторых обновлений Windows. Я написал реальный виновник в моем ответе.
Уэс Сайид
1
@CBHacking Спасибо, это помогло мне решить проблему потока файлов Google Drife. Однажды он покинул раздел G: и создал H: для использования в качестве нового. Я не мог найти способ удалить его, но ваше предложение mountvol /Rсработало, чтобы удалить фантомный диск
файлового потока
7

Эта проблема исчезла сама по себе после того, как некоторые обновления Windows вызвали перезагрузку компьютера.

Такое поведение представляется ошибкой. Я подозреваю, что причина, по которой буквы фантомного диска сохранялись после перезагрузки, заключалась в функциях «мягкого перезапуска» и «быстрого запуска» Windows 10, которые на самом деле больше не выключаются и не перезагружаются, когда вы говорите, чтобы он завершал работу или перезагружался.

Вероятно, потому, что система фактически никогда не проходила полную инициализацию HW (и, следовательно, никогда не проверяла наличие этих букв дисков), пока обновления Windows не вызвали проблему, выполнив полную перезагрузку.


Краткий обзор функций мягкого перезапуска и быстрого запуска:

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

Windows 10 расширяет это поведение с помощью функции мягкого перезапуска. При перезапуске система сбрасывает программное обеспечение, как если бы оно выполняло перезагрузку, но не выполняет повторную инициализацию оборудования или ядра, что ускоряет процесс перезагрузки. Вы не можете отключить эту функцию.


В Windows 10 ЕДИНСТВЕННЫЙ способ полной перезагрузки системы - это выполнить shutdown -r -f -t 0команду из командной строки.

Уэс Сайид
источник
А что если вы отключили hibernate ( powercfg /H off)? Я бы, конечно, ожидал, что это отключит мягкое выключение и, возможно, мягкий перезапуск. Еще одна вещь, которая, по-видимому, препятствует мягкому перезапуску, - это использование расширенных параметров запуска, скажем, для загрузки BIOS / EFI SETUP.
CBHacking
Я только что подтвердил, что это работает на Windows 10 Build 10586. К вашему сведению: вам не нужно, -fкогда вы делаете -t 0; shutdown -r -t 0тоже работает
Грейнджер
Кстати, вы МОЖЕТЕ отключить эту функцию из Панели управления \ Все элементы панели управления \ Параметры электропитания \ Системные настройки, также известные как «Выберите, что делают кнопки питания». Он также отключен по определению, когда гибернация полностью отключена при отключенном powercfg -h.
sCiphre
У меня была эта проблема, несмотря на годы перезагрузки и обновления. Я полагаю, что это было связано с использованием диска VirtualClone (или подобного инструмента), который резервирует буквы дисков. Может быть, я даже сделал некоторую командную строку, чтобы зарезервировать их.
Фурманатор