Соболь, UEFI и BitLocker

Представьте, что вам пришла в голову прекрасная мысль поставить ПАК «Соболь» на компьютер с Windows 10, в котором включен Unified Extensible Firmware Interface (UEFI), а системный диск зашифрован BitLocker’ом. И не просто поставить, а чтобы он еще и работал — контролировал целостность файлов, например. На этом пути вас ждет множество удивительных приключений.

Во-первых, Соболь не дружит с UEFI и GPT. Когда они включены, загрузка просто пролетает мимо, не обращая на Соболь никакого внимания, поэтому для начала вам придется сходить в BIOS компьютера и изменить метод загрузки на Legacy, после чего Соболь радостно предложит инициализировать плату. Только вот Windows загружаться больше не будет, потому что далеко не все Legacy BIOS умеют работать с таблицей разделов GPT. Следующим шагом вам нужно будет конвертировать GPT в MBR и починить загрузчик Windows — это отдельный интересный процесс, но в целом ничего сложного.

И вот — ура! — Соболь при включении машины просит предъявить идентификатор, Windows запускается, вы ставите драйверы Соболя и готовы включить контроль целостности во имя соответствия формуляру! Перегружаетесь, в Соболе идете в меню настроек контроля целостности и задаете ему папку с шаблонами C:\Sobol. А её нет. Ну как же нет? — вот же, только что была. Понятно, в общем-то, что Соболь не умеет читать диски, зашифрованные BitLocker’ом. Ничего страшного, запускаете Windows и пишете в командной строке:

manage-bde -off c:

Тут придется подождать, пока диск расшифруется, но оно того стоит, ведь КЦ гораздо лучше BitLocker’а! По ходу процесса можно проверять готовность диска командой

manage-bde -status c:

Когда статус сменится на «Полностью расшифрован», время доставать шампанское. Но не спешите его открывать, положите пока на лед, потому что Соболь все равно не увидит расшифрованный диск.

В смысле?

Ну вот так. Не увидит. Нет C:\Sobol.

Почему? Говорят, лучшие умы человечества, и, в частности, Кода Безопасности многие годы ломали головы над этой загадкой. А выяснилось вот что: зашифрованный (и впоследствии расшифрованный) раздел с Windows отформатирован в NTFS, но вот в таблице разделов MBR запись о нем содержит ID файловой системы не 0x07, как полагается для NTFS, а 0x0C, как будто там FAT32. Кто меняет FS ID и по каким причинам — науке неизвестно, но получается так, что Соболь верит всему, что на заборе в MBR написано, и пытается NTFS-раздел читать как FAT32, что в целом бесперспективно. Всего-то нужно HEX-редактором для MBR заменить в строке нужного раздела FS ID на правильный (то есть для NTFS исправить 0x0C на 0x07) — и вот тут время открывать шампанское.

Есть, конечно, и секретный уровень: если у вас обычная инсталляция Windows, в которой сначала идет активный загрузочный раздел, потом системный, а потом все остальное, то придется еще немного повозиться с MBR с тем чтобы загрузочный раздел был на первом месте в таблице разделов, а за ним следовал системный, и после этого указать в настройках Соболя папку с шаблонами не C:\Sobol, а D:\Sobol — и все! — чувствуете себя как царь, наблюдая за расчетом контрольных сумм!

P.S. Вы спросите: «А зачем вообще включать BitLocker там, где собираешься ставить Соболь?». Ну так это оно само. В том смысле что добрый DELL, например, если выпускает компьютер с TPM и ставит на него на заводе Windows 10, по умолчанию включает шифрование BitLocker, никого не спрашивая. Сервис на грани фантастики!