
Я использую Windows 10 с шифрованием всего диска DiskCryptor на системном диске. Последнее обновление Windows 10 не устанавливается. Когда я перезапускаю систему для установки обновления, я получаю следующую последовательность событий:
- Я ввожу свой пароль DiskCryptor, который разблокирует диск
- Центр обновления Windows запрашивает раскладку клавиатуры
- Вскоре после этого Центр обновления Windows дает сбой
Если я зайду достаточно далеко в процессе, то получу сообщение о том, что продолжение невозможно, поскольку файл (или файлы) заблокированы.
Мой коллега также использует DiskCryptor на своем системном диске и столкнулся с аналогичной ситуацией.
Так:
- Известна ли эта проблема при шифровании всего диска?
- Это проблема конкретно DiskCryptor?
- Если да, то будет ли MS исправлять эту ошибку или потребуется обходной путь?
решение1
Похоже, это проблема программного обеспечения Full Disk Encryption в целом (за исключением, вероятно, BitLocker от MS). От самого координатора VeraCrypt:
Ошибка обновления Windows 10 версии 1511, сборки 10586
У TrueCrypt была бы та же проблема. Похоже, что это конкретное обновление Windows отключает драйверы фильтров, используемые для шифрования на лету, и если бы Windows была зашифрована с помощью TrueCrypt, она бы тоже не сработала. В драйвере TrueCrypt нет ничего магического, что могло бы это предотвратить.
Microsoft делает что-то отвратительное в установщике обновлений. Драйвер VeraCrypt работает как и ожидалось, но этот установщик явно блокирует его во время процесса обновления системы. Делая это, Microsoft ломает программное обеспечение FDE, отличное от Bitlocker и партнеров Microsoft.
Как лучше всего сообщить об этом в Microsoft? Очевидно, что в VeraCrypt у нас не хватает рабочей силы для дальнейшего расследования столь глубокой блокировки ядра установщиком обновления.
Обходной путь описан в отдельномсообщение на форуме:
Перед выполнением любых обновлений ОС необходимо расшифровать шифрование системы.
Кроме того, ноябрьское обновление Windows 10 требует расшифровки ОС для применения обновления Windows 10 1511. Обычно в этом нет необходимости.
ПРИМЕЧАНИЕ: Отключите и размонтируйте все внешние зашифрованные тома, подключенные к вашему ПК, прежде чем начинать обновление ОС. Я видел, как пользователи жаловались в прошлом, что обновление ОС Windows видит зашифрованный диск/раздел как формат RAW, и Windows пытается быть слишком услужливой, автоматически быстро форматируя раздел и назначая букву диска, чтобы сделать его пригодным для использования Windows.
ОБНОВЛЕНИЕ: Чтобы закрыть цикл, я выполнил следующие шаги без каких-либо побочных эффектов. Как всегда,Сначала сделайте резервную копию!! Мне не понадобился мой резервный накопитель, но я не могу гарантировать, что он вам не понадобится ;).
- Расшифруйте системный диск (скорее всего C:)
- У меня есть второй жесткий диск (D:)
- Этот диск D: также был зашифрован.
- Я не расшифровал свой диск D:
- Применить обновление Windows
- Загрузчик DiskCryptor по-прежнему запрашивал у меня пароль при каждой перезагрузке
- Я просто нажал [Enter] без пароля и машина загрузилась.
- Повторно зашифруйте системный диск.
Краткое примечание о зашифрованном диске D: (второй диск):
Будьте очень осторожны, когда Windows 10 загружается, а диск C: все еще не зашифрован. Диск D: в этом сценарии не монтируется автоматически при запуске. Если дважды щелкнуть диск D:, Windows не распознает его и предложит отформатировать его. Чтобы смонтировать диск, вам нужно открыть DiskCryptor, выбрать диск D:, нажать [Монтировать] и ввести пароль.
Windows неавтоматическиформатирую свой вторичный диск, но мне было бы очень легко сделать это случайно. Действуйте осторожно!
решение2
Я понимаю, что эта тема немного устарела, но ради тех, кто ищет... Наличие DiskCryptor предотвращает обновления Windows (10) до версии 1709 (по крайней мере) без сообщения о каких-либо конкретных связанных с этим ошибках - просто синий экран в конце и переустановка старой версии... не имеет значения, смонтированы ли диски DiskCryptor на самом деле или нет.
Простое решение — удалить DiskCryptor, запустить обновление(я) и переустановить его. Мне это помогло после многих дней исследований, почему мои системы не обновляются.
Но после установки обновления, по крайней мере с обновлением Creators, поведение смонтированных дисков изменилось. Смонтированные тома больше не отключаются при завершении работы Windows. Фактически, похоже, DiskCryptor предотвращает выключение Windows, если смонтированы какие-либо диски DiskCryptor, и станция просто переходит в спящий режим (что, если вы невнимательны, можно не заметить) - при пробуждении все диски остаются смонтированными! Я протестировал это на двух ноутбуках Lenovo с Win 10 Home и на одном настольном компьютере с Win 10 Enterprise - никаких различий. Надеюсь, это поможет кому-нибудь, и я надеюсь, что Windows быстро исправит это - если только намерение не заключается в принудительном переходе на BitLocker :( кстати, это новое поведение не присутствовало, когда я тестировал его с TrueCrypt. Диски автоматически отключаются при выключении.
решение3
Я обнаружил еще одну проблему с DiscCryptor и GPT-диском.
У меня есть несколько 32-разрядных Windows (все версии Home от Vista до 10) на одном диске GPT (единственный, который есть, это ноутбук только с BIOS, без U-EFI); да и да, это только BIOS, а диск - GPT с более чем 4 основными разделами, все разделы - GPT, за исключением одного маленького 8 МБ RAW GrubBIOS для Grub2 core.img... и да, да, Windows 32 бит; помните, что Windows не загружается ни с какого диска, который не является MBR, мне не нравится гибридный GPT+MBR, я предпочитаю небольшие файлы Grub2+MemDisk+VHD (32 МБ или меньше).
Мой диск на 100% GPT, имеет один раздел GPT NTFS для каждой Windows для системы (где есть папка WINDOWS, но загрузочный код NT60 и BCD там отсутствуют), также на нем есть дополнительный раздел NTFS для файлов Grub2, MemDisk и VHD (иначе 32-битные Windows не смогут загружаться с диска GPT, то есть 32 бита в BIOS + GPT-диск); файлы VHD имеют фиксированный размер (просто чтобы позволить memdisk эмулировать их в оперативной памяти) и внутри имеют диск MBR только с одним разделом NTFS размером 32 МБ, где находится загрузочный код NT60 и BCD для этой конкретной Windows; один VHD на Windows.
Это пример (все версии Windows 32-битные и Home, никаких Pro, Enterprise, Server, 100% легальные) на диске GPT, на котором я провожу тесты:
- 1-й сектор = загрузочный код Grub2 + защитный GPT
- GPT1 = 8 МБ RAW GrubBIOS (куда Grub2 поместил core.img в RAW)
- GPT2 = 1 ГБ NTFS для файлов Grub2 + MemDisk + файлы VHD
- GPT3 = NTFS для 32-битной системы Windows Vista SP2 (папка Windows и т. д.)
- GPT4 = NTFS для 32-битной системы Windows 7 SP1 (папка Windows и т. д.)
- GPT5 = NTFS для 32-битной системы Windows 8 (папка Windows и т. д.)
- GPT6 = NTFS для 32-битной системы Windows 8.1 (папка Windows и т. д.)
- GPT7 = NTFS для 32-битной системы Windows 10 (папка Windows и т. д.)
- GPT... и так далее...
Каждый VHD — это виртуальный MBR-диск размером около 32 МБ, например:
- 1-й сектор = загрузочный код Nt60 + таблица разделов MBR
- MBR.1 = Первичный NTFS 32 МБ (где находится содержимое BCD)
- MBR.2 = -пусто-
- MBR.3 = -пусто-
- MBR.4 = -пусто-
Один VHD-файл на каждое окно (для изоляции загрузчиков и BCD).
Если я хочу поместить все это в MBR (ограничено 3 основными и 1 расширенной), я могу поместить только 3 Windows (Grub2 может быть на логическом внутри расширенной), эти 3 основные будут теми, у которых есть каждый BCD (изолирующий BCD каждого окна)... если я разрешу всем Windows BCD на одном разделе, я могу поместить столько Windows, сколько захочу, но все они будут использовать общий BCD, поэтому загрузочное меню будет представлено Windows, они не будут изолированы, сбой на одном из них, затрагивающий такой BCD, испортит загрузку всех остальных и т. д., не говоря уже о том, что мне также нужно шифрование.
С помощью файлов GPT + Grub2 + MemDisk + VHD я получаю то, что хочу (кроме шифрования), на 100% изолируя каждую Windows от остальной части Windows.
Мне нужен BIOS, а не U-EFI по трем основным причинам:
- Я хочу, чтобы 100% жесткого диска (за исключением первого сектора, таблицы GPT и второй копии таблицы GPT в конце диска) были зашифрованы... все еще работаю над тем, как зашифровать раздел, который я использую для файлов Grub2 + MemDisk + VHD... я рассматривал возможность создания одного дополнительного раздела для каждого файла VHD... так что один будет зашифрован, как и система, а затем один для Grub2 с LUK-ключами (используя параметр modules при выполнении grub2-install).
- На моем ноутбуке нет U-EFI, есть только BIOS
- Мой жесткий диск больше 2 ТБ (MBR позволяет использовать только до 2 ТБ, остальное теряется)
Возвращаясь к проблеме с DiskCryptor, если я шифрую загруженный раздел Windows GPT (где находится папка WINDOWS), помещаю загрузочный код на другой виртуальный MBR-диск (который находится внутри файла VHD), после загрузки он запрашивает пароль, но всегда выдает ошибку «неверный пароль».
Но если я не шифрую загруженный раздел Windows GPT (где находится папка WINDOWS), а шифрую только раздел, где находится BCD (тот, что внутри виртуального диска MBR, который находится внутри файла VHD), при загрузке запрашивается пароль, и если он правильный, Windows загружается отлично (за исключением того, что он не монтирует автоматически раздел виртуального диска BCD, мне приходится монтировать его вручную... надо посмотреть, получится ли у меня сделать автоматическое монтирование), но Windows работает отлично.
А если я зашифрую их оба (одним и тем же паролем), то загрузится Windows bootmbr, но на синем фоне с белым текстовым графическим экраном появится сообщение о том, что winload.exe не найден.
Когда я шифрую только часть MBR, отсутствие автоматического монтирования может быть вызвано тем, что файл VHD не подключается достаточно рано... возможно, кэширование пароля и запуск DisckCryptor при входе в систему могут решить эту проблему, поскольку подключение VHD выполняется в расписании задач до входа в систему... я должен это проверить, если у меня будет время.
Похоже, что наличие «зарезервированной системы» или как вы там это называете (где находится загрузочный код NT60 и содержимое BCD) на другом диске не поддерживается DiskCryptor, или, по крайней мере, если Windows 32Bits находится на разделе GPT (где находится папка WINDOWS)... поскольку шифрование этой виртуальной MBR работает хорошо, но шифрование раздела GPT приводит к другим видам ошибок!
Я попробую еще много вариантов, например, создать ISO-образ и загрузиться с него и т. д.
Спасибо, у меня несколько Windows, я загрузился с другой, установил DiskCryptor, перезагрузился и попытался смонтировать GPT, она монтируется нормально, поэтому я расшифровал ее и исправил большую проблему с невозможностью ее загрузки. Пока не найду решение, проведу больше тестов на машине VirtualBOX, прежде чем снова использовать свой ноутбук... Хотелось бы, чтобы DiskCryptor предупреждал меня перед этим... но, по крайней мере, я знаю, что делаю, и знаю, как загружаться с других Windows, которые я могу расшифровать, также у меня есть Clone BackUp и т. д.
Может я что-то упускаю! Может я не до конца понимаю как загружаться или куда ставить загрузчик DiskCryptor, как его настраивать и т. д.
Пожалуйста, учтите, что мне нужно более 4 разных Windows Home 32 Bit на одном диске GPT, я хочу, чтобы они были на 100% изолированы, включая загрузочные коды, BCD и тому подобное... что не оставляет других вариантов... GPT обязателен... я также хочу, чтобы они были зашифрованы разными паролями, не только system (где находится папка Windows), но и загрузочный раздел (где находится BCD), шифрование Grub2 для меня легко, поэтому, чтобы не усложнять задачу, я использую его не зашифрованным, пока не найду работающее решение.
Я думал, что защитить загрузочный раздел (где находится BCD) будет гораздо сложнее, чем сам системный (где находится папка WINDOWS), но обнаружил прямо противоположное.
Мне нужно проверять, проверять и проверять... может быть, я нашел способ.
Да, если кто-то думает об этом, я пробовал TrueCrypt и VeraCrypt, у обоих есть более серьезные проблемы. TrueCrypt не поддерживает шифрование системы GPT, а VeraCrypt предполагает, что диски GPT предназначены только для U-EFI, поэтому при попытке сделать резервную копию данных U-EFI происходит сбой, независимо от того, создаю ли я раздел EFI, поскольку на машине нет переменных EFI (только BIOS, без U-EFI), он терпит неудачу.
Загрузка (без шифрования) происходит следующим образом: включение питания, запуск BIOS, BIOS считывает первый сектор диска, находит код загрузчика Grub2, запускает его, считывает RAW GrubBIOS (core.img) и запускает его, Grub2 выполняет свою работу (считывает файл grub.cfg) и отображает меню, я выбираю, какую систему я хочу загрузить, затем Grub2 загружает memdisk и помещает на виртуальный жесткий диск соответствующий образ VHD и переходит к нему, запускается код на MBR (код NT60), затем загружается и работает bootmgr, затем winload.exe и т. д. Обычная загрузка Windows... затем запускается моя задача Schedule для учетной записи SYSTEM, этот же VHD подключается, теперь доступ к BCD возможен, появляется приглашение на вход в систему, я выбираю пользователя и т. д. Обычная загрузка Windows продолжается... появляется рабочий стол.
Вся загрузка выполняется с одного и того же жесткого диска в стиле GPT, трюк в том, что перед загрузкой Windows я монтирую (с помощью Grub2 + memdisk + VHD-файла) виртуальный MBR-диск, на котором находятся загрузочный код nt60 и BCD, таким образом Windows на самом деле загружается с того, что ей известно, с MBR-диска, но это виртуальный диск, хранящийся в файле, хранящемся в разделе GPT, другой хороший трюк заключается в том, что Grub2 позволяет загружаться с GPT-диска на ПК, где есть только BIOS.
Надеюсь, кто-нибудь сможет воспроизвести мою процедуру загрузки и протестировать DiskCryptor. Также надеюсь, что когда-нибудь VeraCrypt не будет считать GPT = U-EFI.
Для создания VHD я использовал DiskPart из Windows; его также можно создать, смонтировать, получить к нему доступ и т. д. после загрузки с установочного носителя Windows и перехода в консоль (Shif+F10 после выбора языка) и использования DiskPart.
Спасибо DiskCryptor, я уже немного приблизился к желаемому, но все еще не достиг цели, остался всего лишь небольшой шаг... загрузка Windows!
Следующей частью будет монтирование DiskCryptor с SystemRescueCD (Linux Live distro), но это будет действительно сложная история, если она вообще возможна.