Поздняя миграция индейцев из Windows 7 в Windows 10 с острыми как стрела наблюдениями о биосах и загрузчиках

Предпосылки

Небольшая предыстория в том, что на дворе январь 2023 года и настало время обновить до Windows 10 ноутбук MSI Apache купленный в 2015 году. В ноуте 16 ГБ оперативной памяти и Intel Core i5, а на столе банка безалкогольного пива и свежий SSD диск Netac на 256 ГБ.

Суть этой истории -- краткая инструкция самому себе, чтобы напомнить будущему мне какой я молодец, а так же... запомнить:

1. Как работает система загрузки Windows вместе с BIOS и UEFI.

2. Как перенести системный диск Windows (7) в виртуальную машину и запустить рабочую систему где угодно из VirtualBox.

Историческая справка.


Windows XP:
Первый выпуск 24 августа 2001. Расширенная поддержка: прекращена 8 апреля 2014 года.
Windows 7: Дата выхода 22 октября 2009. Поддержка прекращена 10 января 2023.

Windows 10: Первый выпуск 29 июля 2015 года. Окончание основной поддержки 14 октября 2025 год.

Windows 11: Первый выпуск: 5 октября 2021 года.

Немного наблюдений

Семёрка очень хорошая! Как и Windows XP. Нет, ну правда. 8 лет на этом ноуте, перепады напряжения, что угодно и никаких проблем. Даже современные графические оболочки с GNU/LINUX по качеству пользовательского опыта не дотягивают до уровня работы с окнами Windows 7, это и про GNOME 3 (сначала прикольно, а потом кошмар) и KDE (иметь для каждой настройки графическую галочку это ужас) и всех остальных типа Cinammon (копия GUI Windows), Budge и XFCE.

Но вот некоторые программы уже не работают в Windows 7, например Calibre для хранения книг, а у меня есть небольшая библиотека и желание иметь свежие обновления. Хотя старая версия работает.

Больше всего, конечно, выбесило предупреждение Гугла в январе 2023 про прекращение поддержки своего браузера для Win7 и как следствие всех браузеров на движке Chromium.

Окна и биосы

Изначально была идея восстановиться из архивной копии 7-ки в 10-ку, поэтому я предварительно сделал 2 копии данных на внешний USB-диск.

  1. Взял внешний USB-диск (500 ГБ).
  2. В LIVE CD с помощью бесплатной AOMEI Backupper для работы с разделами диска склонировал диск целиком на внешний USB-диск. А если подробнее: склонировал загрузочный (1) и основной (2) разделы (всего 120 ГБ). Предварительно загрузился в LIVE CD (какой-то flibustier) с этой прогой. Так же можно самому сгенерировать ISO-образ для загрузочной флешки и сразу прожечь её: https://www.aomeitech.com/pe-builder-environment.html
  3. Там же создал новый раздел (3) и сделал архивную копию всей системы средствами Windows 7.
  4. Подключил новый диск, установил WIN 10 с флешки.

И началось самое интересное. WIN 10 легла в MBR раздел для загрузки, а WIN 7 была в GPT и режиме совместимости UEFI CSM. Начал разбираться что за ересь и открылся целый пласт информации.

Итак, диск (сам диск, не подразумевая разделы) может быть изначально технически размечен в двух системах: классика это MBR и "свежак" это GPT. Сейчас GPT используют все современные операционки, и виндоусы, и линуксы, и маки.

Чёрт меня дернул во всем этом разбираться, но было интересно как грузится система и почему я не могу просто переписать раздел диска с Windows куда захочу и запуститься там где хочу.

Не секрет, что операционную систему запускает загрузчик, а перед этим сам загрузчик запускается из базовой системы ввода-вывода: BIOS или UEFI. Простыми словами UEFI -- это эволюционное развитие BIOS. А GPT -- это очередной виток развития MBR. Поэтому системы с UEFI будут стартовать загрузчик только на диске с GPT-разметкой, а старые системы с BIOS будут запускать Windows только в разметке MBR. Это не точно, но такова эволюция.

После нажатия кнопки DEL при старте ноутбука и выходе в BIOS, в настройках нашлось 4 базовых режима:

  1. LEGACY (собственно BIOS)
  2. UEFI CSM (модуль режима совместимости с BIOS)
  3. UEFI (SECURE BOOT - OFF)
  4. UEFI (SECURE BOOT - ON)

Подробности для буквоедов:

А вот секрет в том, что загрузчик Windows лежит в первом отдельном разделе диска, обычно скрытом и занимает 50-500 МБ. У него нет буковки для обозначения, и поэтому часто его не видно в проводнике, да и не нужно. Но при желании эту букву можно присвоить или снять через управление дисками -- ничто не должно пострадать от таких действий. Но если этот раздел ёкнется -- система не загрузится, но и данные не пострадают. Далее загрузчик направляет в следующий раздел диска или идет по пути в своих настройках, смотрит где лежит система и запускает её. Коротко так.

Я не мастер редактирования загрузочных записей, подробностей этого здесь не будет. Мне достаточно того, что система грузится. Кому интересно могут открыть программу bootice или msconfig и посмотреть возможные настройки загрузки :-)

Итак, у нас есть 4 режима BIOS/UEFI и 2 разметки жестких дисков MBR/GPT.

В моём случае:

  • Windows 7 грузилась из режима UEFI CSM, а диск был в GPT.
  • Windows 10 почему-то загрузилась в BIOS LEGACY и MBR. Тогда я еще не знал, что UEFI видит операционную систему и сам диск только когда есть загрузчик системы! Нет загрузчика -- не видно диска.
  • Windows 11 требует включённый режим UEFI SECURE BOOT. Если ваше железо не поддерживает, то не светит установить.

Важное наблюдение: без загрузчика (или отформатированного первого раздела) UEFI-режим не видит Windows, не видит сам диск и не предлагает в него загрузится. Короче, без установленного загрузчика для UEFI -- диска нет -- его не видно в выборе периферии для загрузки. Но из LIVE CD мы его увидим. Поэтому (для будущего!) важно предварительно и диск отформатировать в GPT и загрузить флешку или диск LIVE CD в режиме включённой опции UEFI SECURE BOOT.

Многие блоггеры уповают на изменение скорости работы в зависимости от выбранного режима БИОСа и дисков, но это необоснованные домыслы. Чисто технически правильнее установить всё в режим UEFI/GPT для возможностей автоматического обновления, а по факту -- если уже работает, то лучше не трогать, потому что это ни на что не влияет кроме аспектов инсталляции системы.

Вобщем, не имею никакого желания описывать все возможные комбинации которые перебрал за 3 дня исследования этого вопроса, но хочу продолжить темой способов восстановления загрузчика. Во-первых она пригодилась для перевода диска Windows 10 из MBR в разметку GPT. И, наоборот, переводом разметки из GPT в MBR в случае с Windows 7 для виртуальной машины.

Как восстановить загрузчик

Если вы загрузитесь на любую систему восстановления WIN7/8/10 у вас всегда в наличии командная строка (CMD) и следующие утилиты для работы с интерфейсом загрузки.

  1. BOOTREC
  2. BCDboot

На сайтах горе-помощников восстановления Windows пишут, что BOOTREC восстанавливает только MBR, а BCDboot только GPT, но это не так. В моём случае BOOTREC отказал, а BCDboot восстановил загрузчик Windows 7.

У консольной программы BOOTREC есть спасительные ключи:

bootrec /fixboot bootrec /fixmbr bootrec /scanos bootrec /rebuildbcd

Запускать по очереди, иногда достаточно первой команды, но если будет отказ -- пробуйте BCDboot, которая просто хочет путь к системе, а этот путь и есть спасительный ключ:

BCDboot c:\Windows # иногда нужно принудительно указать куда копировать изменения BCDboot c:\Windows /s W: # где W: буква технического загрузочного диска (размером 50-500 МБ)

Предварительно нужно знать буквы дисков, потому что в случае краха диска буква может стать другой или отсутствовать. Узнаём буквы:

  1. команда diskpart
  2. list vol
  3. exit
Если у загрузочного раздела буквы нет, тогда это нужно установить через командную строку или программу для работы с разделами дисков, а это любой Partition Manager, например, AOMEI Partition Assistant.
Если у загрузочного раздела буквы нет, тогда это нужно установить через командную строку или программу для работы с разделами дисков, а это любой Partition Manager, например, AOMEI Partition Assistant.

Важная тонкость 1: загрузочный раздел в разметке диска MBR должен быть отформатирован в формат NTFS и сделан "Активным". А загрузочный раздел в разметке диска GPT всегда должен быть в формате FAT32.

Зная это, можно на пустом месте создать или отформатировать первый раздел размером от 50 МБ (у кого-то он бывает 500 или 250, можно сделать 100 МБ) и воспользовавшись командами BOOTREC/BCDboot скопировать файлы загрузчика на этот диск. От чего зависит размер раздела загрузки не знаю, по идее ему нужно ~20 МБ на загрузчик.

Важная тонкость 2: иногда команды BOOTREC/BCDboot не отрабатывают перезапись, и, тогда можно с чистой совестью (когда вообще ничего не грузится) отформатировать загрузочный раздел, чтобы очистить его содержимое и попробовать снова.

Снимок экрана AOMEI менеджера разделов диска 
Снимок экрана AOMEI менеджера разделов диска 

Это универсальный подход на все случаи жизни :-)

Еще пару слов про архивацию в виртуальную машину и завершим этот мастер-класс.

Как сконвертировать любой диск в виртуальный

Посетила идея сделать виртуальным диск WIN7 и запускать его из свежей установки WIN10, чтобы сразу 2 системы на экране. Оказывается это очень просто! Нужна приложуха Disk2vhd (500 КБ), которая в пару кликов из физического диска создаст виртуальный слепок, который сразу откроет бесплатный менеджер виртуальных машин VirtualBox.

Так же при конвертации нужно не забыть вместе с главным отметить скрытый раздел загрузчика. Если его не видно, то предварительно выдать ему букву из управления дисками, чтобы его увидела программа Disk2vhd. Конечный формат Vhd или Vhdx -- неважно.

Это картинка на скорую руку без скрытого раздела, но для наглядности работы.
Это картинка на скорую руку без скрытого раздела, но для наглядности работы.

Если свежая виртуальная машина не запустится сразу, возможно придется отформатировать загрузочный раздел по методу который описан выше.

Главные тонкости настройки виртуальной машины это отключенный режим EFI/Secure Boot (то есть классика: LEGACY BIOS+MBR) и перевод виртуального диска в режим MBR (при помощи образа LIVE CD) с последующим (при необходимости) использованием bootrec/bcdboot для оживления загрузочного диска.

Не включать EFI/SECURE BOOT
Не включать EFI/SECURE BOOT

Так же помните, что раздел с Windows никогда не нужно форматировать! Вы можете переводить сам диск из режима GPT в MBR и обратно хоть 100 раз в день, или форматировать, удалять и снова создавать раздел загрузки, но трогать раздел с Windows не нужно от слова "никогда".

Иногда Windows устанавливает еще один скрытый раздел для своих нужд под названием MSR (первый раздел EFI или FAT32, второй MSR, третий система Windows), но я с таким не сталкивался и в эту сторону еще не копал.

Что ж, кажется все детали рассмотрены и на этом всё. Письмо будущему мне, когда придет время обновления на Windows 11 написано и запечатано :-) До сих пор не понимаю зачем обновляться и почему это так сложно. Ведь я просто хочу читать книги про индейцев в современном приложении.

P. S. Резервная копия средствами Win7 ничего не загрузила в Win10 -- одни ошибки, увы потеря времени. Это неприятно, потому что я сильно хотел перенести приложения и обломался, потратив время, в итоге тупо скопировал Program Files прямо на С:\.

P. P. S. Кстати, 10-ка неплоха. Это второе дыхание ноутбука.

P. P. P. S. Спасибо за прочтение.

11
10 комментариев

Можно сократить до 2 пунктов:
- скачать убунту с ubuntu.com
- установить ее за 10 минут

Ответить

как бы не 10 минут ))

Ответить

что именно нужно сократить?

Ответить

"Поэтому системы с UEFI будут стартовать загрузчик только на диске с GPT-разметкой, а старые системы с BIOS будут запускать Windows только в разметке MBR"
- это не так, вы же сами написали про CSM

Ответить

у меня так

Ответить