morfizm (morfizm) wrote,
morfizm
morfizm

Categories:

Компьютерное - Windows, Bitlocker NAS и не только

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

Windows Storage Spaces плохо работают с битлокером - если битлокер в режиме расшифровки на Storage Spaces mirror-партиции, и в этот момент перезагрузиться, то все полимеры будут просраны (не поможет ни repair-bde, ни другое волшебство). Я не знаю, насколько хорошо это воспроизводится, но по разным косвенным данным, похоже, тут именно сочетание Storage Spaces и битлокера.

Выводы, которые я для себя сделал:

*) Не использовать Storage Spaces. Лучше Windows Dynamic Disk Mirror. Ещё лучше Mirror в виде cron job (Scheduled Task), запускающий rsync-like tool (robocopy, например, или rar), который будет регулярно достраивать копию на втором диске.

*) Надо защищаться от багов в алгоритмах шифрования. Например, если на одном диске битлокер, на mirror-копии пусть будет rar под паролем или VeraCrypt image, или ещё что-нибудь. Желательно даже, чтобы сам алгортим шифрования был иным.

*) Даже если файлы не очень важны (например, их можно всегда скачать заново), надо архивировать метаданные - список названий файлов. Чтобы заново скачать, надо помнить, что интересного и ценного у тебя было, а ты не помнишь -> вот это настоящая потеря.

Эта уязвимость стала проблемой благодаря другим проблемам, которые наложились:

Windows сходит с ума, когда у тебя много дисков - это проявляется:
- в невозможности поставить крупные апдейты, требующие изменений в коде загрузчика (например, заапгрейдиться с Windows 10 версии 1909 на версию 20H2, как было у меня - см. https://en.wikipedia.org/wiki/Windows_10_version_history про крупные апдейты, это, по сути, как новые версии операционки, устанавливаемые незаметно, под тем же брендом Windows 10), в том числе в невозможности поставить такой апдейт вручную, без каких-то разумных сообщений в логе,
- в невозможности выполнить Startup Repair, загрузившись с флешки,
- в невозможности выполнить установку новой винды на соседнюю партицию, загрузившись с флешки.

Есть сильное подозрение, что в деле замешаны RAID-драйвера, так что их точно надо отключить и не использовать built-in AMD RAID (кстати, про RAID-драйвера отдельная история - из-за них у меня крешается Veritas System Recovery, которую я использую для бэкапов системного диска, она крешается при enumeration других дисков уже после бэкапа; а ещё иногда крешалась винда при первом доступее к одному из дисков после sleep/reboot, например, когда когда rar-архив начинаешь создавать на бэкапный диск... одновременно с крешами Veritas AMD RAIDXpert2 ругался на диски, поэтому я грешу на RAID, но перевод дисков в режим non-RAID делу не помог, а драйвера так просто не снесёшь, надо переустанавливать винду).

Я так и не понял, нужно ли вытаскивать другие NVME диски (но на всякий случай, я вытаскиваю, благо, я заблаговременно позаботился, чтобы только системный NVME был труднодоступен, а два других легко вытаскивались), но совершенно точно надо вытащить хотя бы один из SATA дисков. Для надёжности я вытаскивал все.

Windows 10 время от времени ставит крупные апдейты, похожие на установку новой винды - т.е. требующие несколько перезагрузок и каких-то изменений в коде загрузчика. Зная, что могут быть проблемы и что винда может сломаться, осторожный человек, конечно же, отключит битлокер на системном диске и сделает image-бэкап. Когда я это сделал, у меня тут же начали дешифроваться все остальные диски, хоть я их об этом и не просил (они были в режиме auto-unlock, может, из-за этого?). Наверное, в следующий раз надо auto-unlock заранее отключать, чтобы предотвратить этот процесс. Конечно же, процесс дешифровки всего, очень долгий (может быть сутка для 12 TB) и это прямо рецепт для катастрофы, когда все диски одновременно почти полностью загружены, а ты при этом пытаешься использовать компьютер.

Во время всех сопутствующих этим проблемам и попыткам их решения танцев с бубном, были сделаны следующие выводы:

* EaseUS Todo Backup полное говно. У них красивый интерфейс и функционал создания бэкапов, но глючный, сырой, недоделанный и неработающий интерфейс для восстановления - мне не удалось с помощью него восстановить партицию, пришлось брать запасной бэкап от Veritas. (Благо, я на всякий случай, перед ответственной процедурой сделал бэкап двумя программами, так как новой не очень доверял - и правильно!). Вывод: надо backup software как следует гонять на реальных тестах, особенно image backups системного диска.

* UEFI это какой-то ужас-нах, который многократно усложняет все восстановительные процедуры (разные bootable ISOs сходят с ума, если загрузиться в UEFI - как с виндой, так и с инструментами для бэкапов, управления партициями и разной полезной всячины), а Veritas ещё и делает image backup'ы несовместимыми между BIOS mode vs UEFI mode. Т.е. если ты сохранил его, когда загрузка была в UEFI режиме, то будь добр, именно в этом режиме и восстанавливай. Я полностью отключил UEFI и решил, что мне дешевле жить с ограничениями, которые он накладывает, чем с ним бороться (ограничения: загрузочный диск должен быть MBR, а не GPT, т.е. не больше 2 TB и не больше 4 примарных партиций). Блин, работал же BIOS нормально 30 лет. Кому вздумалось его менять вместо того, чтобы пройтись напильником и добавить поддержку GPT дисков? Проработал бы он ещё 30 лет. Ан нет, сделаем новую технологию, чтобы заново понаступать на все возможные грабли.

Ещё интересный learning: Винда при установке создаёт 3 партиции (маленькую для EFI, большую системную и "reserved" на полгига). "Reserved" это какой-то шлак. EFI для BIOS mode не нужен. Но так просто ты создания 3 партиций не избежишь, а в MBR у тебя их всего 4. Т.е. если ты хочешь dual-boot из двух версий винды (одна старая плюс одна новая) по 500 GB каждая, то ты уже израсходовал все 4 партиции (EFI, 2 системных и Reserved), т.е. по сути, ты второй терабайт не можешь использовать. Workaround: партицию со второй виндой через diskpart отметить как "активную", первую удалить, так же удалить EFI партицию и Reserved партицию, после чего инсталлировать новую винду в начале диска. В этом случае она лишних партиций не создаст, а проинсталлирует свой загрузчик на партицию со второй виндой (заодно починив её, если она раньше не загружалась). Инсталляция соседней винды - похоже, более надёжный способ починить загрузку, чем "Startup Repair", который не работает почти никогда.

* Желательно держать в компьютере поменьше дисков. Желательно, чтобы они все были одного типа (не мешать M.2 и SATA). Ыы.... к сожалению, эта идея очень плохо вяжется с идеей "не иметь NAS". Что ж, ждём, когда появятся M.2 диски на 8-16 TB, которые, в сочетании с Cloud Backup решат все проблемы.

* * *

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

Из реальных полезных файлов - потеряно всё, на что я махнул рукой, решив, что "если надо, скачаю снова", поэтому не придерживался высоких стандартов сохранности (3-2-1 backup rule), а просто держал два диска в Bitlocker Mirror on Storage Spaces подвергнутые перезагрузке в процессе расшифровки битлокера, и никакие попытки извлечь данные, в т.ч. разные forensic analysis tools, сканирующие посекторно, мне не помогли. При том, что у меня был ключ (который почему-то вдруг, for all practical purposes, перестал работать). Всё остальное в добром здравии.

Это первый случай за очень много лет, когда я неосторожным движением руки (под уникальным сочетанием положения планет и звёзд) лишился файлов из своей коллекции. Мне казалось, что я по молодости лет получил болезненный опыт потерь данных уже в достаточном объёме. Но нет, оказалось, нужен был new learning.
Tags: 1, devices
Subscribe

  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 24 comments