Было известно на практике, что если неудачно выключить компьютер, то можно сломать систему. Потому что FAT32 резко реагировал, когда его прерывали на полуслове.
Потом эволюция шагнула вперёд. NTFS стал уделом не только серверов, но и всех домашних ПК. Снова стало можно выключать компьютер кнопкой питания, хотя мало кто так делал. И вот, настал 2023 год. У нас на работе на всех компах, которые идут клиентам вместе с приборами, стоит виндоуз 10. Как в ней обстоят дела с внезапными выключениями?
Пока я подключал кабеля к прибору, компьютер почему-то включился. У него ещё ни монитора, ни мышки. Ему ещё рано. Поэтому я просто нажал один раз на кнопку питания. И он выключился. Вроде всё нормально? Это же не жёсткое выключение при пятисекундном нажатии кнопки? И тем не менее.
При следующем включении он меня закинул в Windows Troubleshoot. При попытках перезагрузиться винда мне стала показывать экран о том, что BCD-файл не содержит упоминаний о валидных установках. Хорошо же. Я опять пошёл в траблшут, и выбрал там Startup Repair. Винда пошуршала винчестером, после чего сообщила, что починить ошибку не может. Подробности можно прочитать в файле: (на этом строка обрывалась, имени файла не было).
В общем, я оказался в ситуации, когда винда не грузится. Такого у меня не было много-много лет. Что я последний раз делал в такой ситуации? fdisk /mbr? scandisk.exe? Это всё давно отсутствует в составе винды.
В окне траблшутинга, хвала богам, был пункт "командная строка". И я его выбрал. И вот он я, а вот командная строка. Двое в комнате. Смогу же я починить загрузчик? Смогу?
bcdedit. Показал мне типовой бцд-файл, в нём было четыре раздела. Винда, траблшутинг, восстановление из гибернации и мемтест. Ничего особенного.
Может быть, файл winload.efi отсуствует? Перешёл в системную папку -- вот же он! Заодно убедился, что файловая система на месте и папки показываются. Уже хорошо.
sfc /scannow. "Операция не может быть завершена" или типа того.
chkdsk.exe c: . "Ошибки не обнаружены".
Хорошо же, лезу в интернет. Узнаю про замечательную программу, bootrec.
bootrec /fixmbr. Отработало, не помогло.
bootrec /fixboot. Отказано в доступе.
bootrec /scanos. Найдена одна система.
bootrec /rebuildbcd. The system cannot find the path specified.
У меня начинают закрадываться подозрения, что с системой что-то очень не так. Скорее всего, winload.efi повреждён, поэтому-то и не отрабатывает сфц, и поэтому файлы не найдены. Тем не менее, несмотря на таинственность последнего сообщения об ошибке, это было самое конкретное, чего я добился от винды за всё время. И я забил эту команду с сообщением в гугл. Среди результатов было двухминутное видео, которое содержало махинации с diskpart.exe, призванные изменить активный раздел. А заканчивалось видео незнакомой командой, bcdboot.
bcdboot c:\windows
Вот, что там было написано. Я не стал проводить манипуляции с дискпартом, потому что сомневался в том, что у меня проблемы с активностью раздела, а сразу запустил бцдбут. Он сообщил, что у него там какое-то дублирование, но загрузочный файл создал.
Я открыл bcdedit и обнаружил, что теперь файл выглядит иначе. Гибернация, мемтест и траблшут отсутствовали, но присутствовал windows boot manager, и в качестве загрузчика указан не winload.efi, а совершенно другой файл, имя которого я забыл. И файл этот работал. После перезагрузки винда стартовала.
Фактически, я починил компьютер вбивая в командную строку случайные команды по очереди.
Да, я достиг успеха, но успех этот мне не понравился. Я понял, что я плохо представляю процесс загрузки современного компьютера на виндоуз10, особенно с EFI. Я понял, что не знаком с современными средствами восстановления (хотя ими и воспользовался). Ну и ещё я понял, что теперь у меня в списке загрузки отсутствует траблшутинг! Надо бы его вернуть, но как? Я не уверен, что при появлении новых проблем траблшутинг найдёт себя сам и запустится...