Как настроить загрузку для Windows7 и Linux используя BCDEdit.

Автор: iceflatline Перевод: IgorIGN

В этой статье мы поговорим о том, как настроить систему, позволяющую загружать "Windows 7" или "Linux" из стандартного загрузочного меню "Windows". Редактор "Boot Configuration Data" (данных загрузочной конфигурации) "Windows 7" (BCDEdit) можно использовать для настройки меню загрузки (которое появляется после "POST" теста "BIOS" если на компьютере установлено более одной операционной системы "Windows"), позволяющего пользователю выбирать между "Windows 7" и "Linux" для последующего их запуска. Все действия, описанные в этой статье, предполагают, что обе операционные системы (в нашем случае "Windows 7" и "Linux") устанавливаются на один и тот же физический жесткий диск. Локализация операционных систем на разных физических жестких дисках в этой статье не рассматривается.

Для иллюстрации процесса мы используем 80 GB SATA жесткий диск с предустановленной на нем "Windows 7". Нам понадобится изменить уже существующую разметку жесткого диска, используя "Gnome Partition Editor" (GParted), чтобы установить "Ubuntu" или "Fedora". Затем используем "BCDEdit", чтобы добавить в меню загрузки "Windows" данные, касающиеся "Linux". Так же нам потребуется CD-привод (или USB флеш), для загрузки системы. Использовались следующие версии программного обеспечения:

  • Fedora v17 (x64)
  • GParted v0.14.0-1
  • Ubuntu v12.04 LTS (x64)
  • Windows 7 Professional (x64)

И еще – я никогда не сталкивался с ситуацией, когда "GParted" уничтожал существующие данные на диске. Но все же, удостоверьтесь, что Вы сделали копии всех важных данных, прежде чем начинать.
Итак, начнем.

Разметка жесткого диска для "Ubuntu"

Первое, что мы сделаем, так это переразметим наш жесткий диск. Загрузите копию GParted Live и запишите его на компакт-диск (или поместите его на загрузочную USB флеш память). Затем, загрузите систему, используя диск "GParted". После принятия настроек по умолчанию для клавиатуры, языка, и конфигурации "X-Window", перед нами появляется рабочий стол "GParted" (См. рисунок 1).

Gparted desktop

Рисунок 1

Заметим, что "GParted" сообщает о ~74 Гб общего дискового пространства (1 гигабайт = 1 073 741 824 байта) и что "Windows 7" в настоящее время занимает весь этот объем, используя два основных раздела: один маленький, загрузочный раздел в устройстве "/dev/hda1" и оставшийся - с операционной системой в устройстве "/dev/hda2". В конечном счете, у нас должно быть всего пять разделов: два для "Windows 7", упомянутых выше, для операционной системы "Ubuntu" и "Linux swap", и еще мы создадим небольшой раздел "FAT32" для совместного использования данных в "Windows 7" и "Ubuntu". Вы должны будете определить, сколько дискового пространства отдадите под каждый этот раздел. Для нашего примера с диском в 80 Гб мы будем использовать следующую разметку:

Windows 7:~100MB (для загрузчика Windows 7)
Windows 7:~40 Гб (для операционной системы Windows 7)
Ubuntu:~24 Гб
Linux swap:~1 Гб
FAT32:~9 Гб

Оставим загрузочный раздел "Windows 7" в "/dev/hda1" без изменений и уменьшим раздел в "/dev/hda2" до ~40GB. Выделим, кликая левой кнопкой мыши, "/dev/hda2", и затем выберем "изменить размер/переместить" (Resize/Move). Появится отдельное окно, где можно ввести новый размер раздела вручную, или изменяя длину прямоугольной полоски в соответствующем разделе, кликнув левой кнопкой мыши и удерживая ее правую границу. Удостоверьтесь, что за /dev/hda2 осталось свободное пространство. Теперь кликните "изменить размер/переместить" (Resize/Move), чтобы завершить этот этап (См. рисунок 2). Далее используйте GParted, чтобы проделать остающиеся шаги.

Если у Вас раздел "Windows 7" большой (например > ~200 Гб) можно использовать программу "Управление дисками" (вызвав ее из панели управления, или используя контекстное меню, кликнув правой кнопкой мыши на "мой компьютер" в меню "пуск"), чтобы уменьшить "Windows partition" до желаемого размера, поскольку это существенно быстрее чем использование "GParted". Далее используйте "GParted", чтобы проделать остающиеся шаги.

Gparted resize

Рисунок 2

Как только размер "/dev/hda2" будет уменьшен, Вы увидите, что оставшееся пространство теперь не обозначено. Кликните левой кнопкой мыши на нем, чтобы выделить, и выберите "новый раздел" (New) чтобы создать новый раздел. Сделайте этот раздел основным и выберите файловую систему для него "ext4". Теперь, уменьшите его до ~25 Гб вводя числовое значение в поле "новый размер" (new size) или перемещая ползунок налево, пока не достигнете желаемого размера. По завершении кликаем "добавить" (Add). Новый раздел создан (См. рисунок 3).

New partition

Рисунок 3

На диске можно создать всего лишь четыре раздела. Три у нас уже есть, таким образом, в оставшемся свободном пространстве мы создадим новый расширенный раздел вместо основного. Как только расширенный раздел создан, выделим его левой кнопкой мыши чтобы создать два новых логических раздела на нем. Первый из них будет "Linux swap" с размером в 1 Гб; второй, с файловой системой "FAT32", предназначенный для общего использования обеими операционными системами, займет все оставшееся свободное пространство. В итоге у Вас должна получиться конфигурация разделов, как на рисунке 4.

Ubuntu gparted1

Рисунок 4

Еще раз просмотрите недавно созданные разделы и внесите необходимые корректировки. Вы можете отменить любые сделанные изменения, выбрав "отменить последнюю операцию" (Undo last operation) или "отменить все операции" (Clear all operations) в меню "редактирование" (Edit). Итак, если все правильно, выбираем "применить все операции" (Apply all operations) и "GParted" запишет изменения на диск. Через несколько минут Вы увидите размеченный по-новому диск (См. рисунок 5).

Ubuntu gparted2

Рисунок 5

"GParted" сохранил обозначения разделов "/dev/hda1" и "/dev/hda2" для "Windows 7", и добавил соответствующие обозначения другим, вновь созданным, разделам:

/dev/hda1 – загрузчик Windows 7(Основной раздел)
/dev/hda2 – Windows 7 (Основной раздел)
/dev/hda3 – ext4 (Основной раздел)
/dev/hda4 – (Расширенный раздел)
/dev/hda5 – Linux swap (Логический раздел)
/dev/hda6 – FAT32 (Логический раздел)

Теперь выйдем из "GParted" и перезагрузим систему. Если все было сделано правильно – то загрузится экран входа в "Windows 7". При этом "Windows" выполнит проверку дисков (не волнуйтесь, это нормально, - мы же внесли изменения в структуру разметки диска). После того, как "Windows 7" загрузится, перейдите в "Менеджер Дисков" – там мы увидим созданный нами новый раздел "FAT32".

Разметка жесткого диска для "Fedora"

Процесс формирования разделов на жестком диске для установки операционной системы "Fedora" ничем не отличается от описанного выше для "Ubuntu". Следовательно, мы можем использовать идентичную структуру разметки жесткого диска:

Windows 7:~100MB (для загрузчика Windows 7)
Windows 7:~40 Гб (для операционной системы Windows 7)
Fedora:~24 Гб
Linux swap:~1 Гб
FAT32:~9 Гб

Используя "GParted" и, следуя последовательности, описанной выше для "Ubuntu", создадим следующую разметку для "Fedora":

/dev/hda1 – загрузчик Windows 7(Основной раздел)
/dev/hda2 – Windows 7 (Основной раздел)
/dev/hda3 – ext4 (Основной раздел)
/dev/hda4 – (Расширенный раздел)
/dev/hda5 – Linux swap (Логический раздел)
/dev/hda6 – FAT32 (Логический раздел)

"Fedora 11" и ее предыдущие версии неспособны устанавливать свой загрузчик (Grub boot loader) на раздел с файловой системой ext4. Поэтому, если Вы хотите сохранить файловую систему ext4 на разделе для операционной системы, Вы должны будете создать небольшой основной раздел, который "Fedora" использует для установки загрузчика. Этот раздел как правило форматируется, используя ext3 файловую систему и размер его должен составлять 300 MB или больше.

Установка "Ubuntu"

Теперь пора установить "Ubuntu" на раздел, который мы создали, используя "GParted". Загрузите копию Ubuntu и запишите ее на компакт-диск (или поместите его в загрузочный USB флеш-диск). Загрузите систему, используя диск "Ubuntu". Щелкните дважды на расположенной на рабочем столе иконке "установить" для запуска установки операционной системы на жесткий диск. Проходя пошагово процедуру инсталляции дойдите до пункта "Подготовка дискового пространства" и выберите "Задать разделы диска вручную (продвинутое)", попадете в окно "подготовка разделов" (Prepare partitions) (См. рисунок 6). Здесь мы укажем "Ubuntu", где создавать точки монтирования и созданную нами файловую систему. Вы заметите, что инсталлятор "Ubuntu" ссылается на разделы, используя обозначения /dev/sda1, /dev/sda2, и т.д. – система обозначений, как правило связанная со SCSI, SATA, и USB устройствами. Соответственно /dev/hda1, /dev/hda2, и т.д. система обозначений, используемая "GParted" (например, устройство /dev/hda3 = устройство /dev/sda3).

Ubuntu install1

Рисунок 6

Теперь выделите, щелкнув левой кнопкой мыши, /dev/sda3 и выберите "изменить" (Change). Убедитесь, что на всплывающем окне выбрана файловая система ext4 и чекбокс напротив "форматировать раздел" активен. Устройство /dev/sda3 будет служить корневым разделом для Ubuntu, таким образом, мы установим точку монтирования в "/" из списка в выпадающем меню. Теперь выберите "ОК", чтобы применить изменения (См. рисунок 7).

Ubuntu install2

Рисунок 7

Выполняя подобные действия перейдем к /dev/sda5 и установим точку монтирования "Linux-swap". Нет никакой потребности форматировать этот раздел. При желании можно нашему разделу "FAT32", расположенному на /dev/sda6,назначить точку монтирования "/share" или что-то подобное, и указать установщику "Ubuntu" форматировать его как FAT32. При этом "Ubuntu" добавит этот раздел к /etc/fstab и автоматически установит его во время загрузки. Это можно сделать и позже: вручную добавить раздел в /etc/fstab . Теперь, проверив все еще раз, кликаем "Вперед" (Forward) и переходим к экрану "Готов к установке" (Ready to install) (См. рисунок 8).

Ubuntu install3

Рисунок 8

Этот следующий шаг важен. Здесь нужно указать "Ubuntu", где установить его загрузчик операционной системы (GRUB2). НЕ СЛЕДУЕТ устанавливать "GRUB2" на /dev/sda, поскольку это действие перепишет загрузочный сектор нашего диска (MBR), так же НЕ СЛЕДУЕТ устанавливать его на /dev/sda1, поскольку в этом разделе находятся файлы менеджера загрузки "Windows 7" и данных конфигурации загрузки. Значит, нам нужно сделать так, чтобы "Ubuntu" установил "GRUB2" на раздел, который будет содержать операционную систему "Ubuntu" – в нашем случае – /dev/sda3. Для этого кликнете на кнопке "Продвинутый" (Advanced). Появится всплывающее окно, где мы можем указать место для установки загрузчика операционной системы "Ubuntu" (См. рисунок 9).

Ubuntu install4

Рисунок 9

Первым делом – удостоверьтесь, что отмечен чекбокс "установить загрузчик", затем выберите /dev/sda3 из ниспадающего меню, чтобы загрузчик "GRUB2" был установлен в тот же раздел, что и "Ubuntu". Теперь кликаем "ОК" и установка "Ubuntu" продолжается. После установки инсталлятор попросит перезагрузить компьютер. Если все прошло удачно – вас снова поприветствует экран входа в Windows 7.

Установка "Fedora"

Для установки операционной системы "Fedora" нужно будет пройти все этапы, указанные при установке "Ubuntu", описанные выше. Загрузите копию Fedora и запишите ее на компакт-диск или на загрузочный флеш-диск. Загрузите систему, используя диск "Fedora" и кликните дважды на расположенной на рабочем столе иконке "установить" для запуска установки операционной системы на жесткий диск. Следуя этапам процесса инсталляции добираемся до мастера разметки диска, кликаем "создать пользовательскую разметку" из списка и кликаем "дальше" (Next). (См. рисунок 10).

Внимание: Если Вы устанавливаете "Fedora" на НЖМД с интерфейсом "Serial ATA", то можете столкнуться с ошибкой "Диск, содержит метаданные BIOS, но не является частью общепризнанного массива BIOS RAID. Игнорирование диска sd[x]". Известны сбои и отказы при попытке установить "Fedoru" на НЖМД с интерфейсом "Serial ATA" . Если появится эта ошибка, попытайтесь перезагрузиться с установочного диска "Fedora", нажимая клавишу TAB, чтобы получить доступ к вариантам загрузки, и добавьте следующую команду nodmraid. Это укажет "Fedore" игнорировать присутствие RAID метаданных и позволит продолжить установку операционной системы.

Fedora install1

Рисунок 10

Прокрутите вниз список устройств, пока не найдете /dev/sda3. Кликните на нем левой клавишей мыши, чтобы выделить, и выберите "редактировать" (Edit). Этот раздел будет содержать файлы операционной системы "Fedora", поэтому выберите "/" для точки монтирования и форматируйте его как ext4. (См. рисунок 11). Когда закончите, кликните "ОК". Затем выделите /dev/sda5, выберите "редактировать" и форматируйте этот раздел как "Linux-swap". Кроме того, Вы можете указать точку монтирования для раздела vfat (FAT32), расположенного в /dev/sda6, в /share, или подобную, и указать установщику форматировать раздел как vfat. В результате "Fedora" добавит этот раздел в /etc/fstab и автоматически смонтирует его в ходе загрузки. Это можно сделать и позже: вручную добавить раздел в /etc/fstab.

Внимание: Если Вы устанавливаете "Fedora 12", не пытайтесь настроить точку монтирования "FAT32" или отформатировать "vfat" раздел, так как это может привести к неудаче при установке.

Fedora install2

Рисунок 11

В завершении кликните "дальше" (Next) и проверьте еще раз сделанные изменения, отображаемые во всплывающем окне. Вы должны видеть /dev/sda3 с точкой монтирования в "/" и /dev/sda5 с точкой монтирования "swap". Если все в порядке – кликните "форматировать" (Format) и подтвердите свой выбор кликнув "записать изменения на диск" (Write changes to disk). При этом вам будут представлены на выбор варианты установки загрузчика "GRUB". Этот следующий шаг важен. НЕ СЛЕДУЕТ устанавливать "GRUB" на /dev/sda, поскольку это действие перепишет загрузочный сектор нашего диска (MBR), так же НЕ СЛЕДУЕТ устанавливать его на /dev/sda1, поскольку в этом разделе находятся файлы менеджера загрузки "Windows 7" и данных конфигурации загрузки. Значит, нам нужно сделать так, чтобы загрузчик "Fedora" установил "GRUB" на раздел, который будет содержать операционную систему "Fedora" – в нашем случае – /dev/sda3. Для этого кликните на кнопке "сменить раздел" (Change device). Появится окно, где мы сможем указать расположение загрузочного раздела. (См. рисунок 12).

Fedora install3

Рисунок 12

И еще – в этом же окне мы можем улучшить некоторые пункты, производя изменение в списке операционных систем загрузчика "GRUB". Находим запись в этом списке, чаще всего обозначенную как "другая" (Other). Это – наша "Windows 7". Давайте изменим это значение на другое, более конкретное. Кликните левой кнопкой мыши, чтобы выделить этот пункт и выберите "редактировать" (Edit). Теперь, замените слово "другая" (Other) на "Windows 7" (или на то, которое больше нравится) в поле "метка" и кликните "ОК". Кроме того, удостоверьтесь, что чекбокс рядом с "Fedora" выделен. Это гарантирует, что "Grub" загрузит "Fedora" по умолчанию. (См. рисунок 13).

Fedora install4

Рисунок 13

И, наконец, выбираем "дальше" (Next) и "Fedora" запишет изменения на диск и завершит установку.

Внимание: если вы устанавливаете "Fedora 12", знайте об ошибке, при которой происходит перемещение флага системного загрузочного раздела с "/dev/sda1" на раздел, где установлен загрузчик "GRUB", в нашем случае "/dev/sda3". Это - нежелательно, потому что нам нужно, чтобы сначала загружался экран "Windows 7", а не "GRUB".

Чтобы этого не происходило загрузитесь с "GParted загрузочного диска". Запустите программу "GParted". Выделите раздел "/dev/hda3". В колонке под названием "флаги" найдите слово "boot". Мы должны переместить этот флаг к "/dev/hda1". Кликните правой кнопкой мыши на разделе "/dev/hda3", и выберите "управление флагами" (Manage flags). Уберите отметку с "boot" и кликните "закрыть" (Close). (См. рисунок 14) Теперь, щелкните правой кнопкой мыши на /dev/hda1 и еще раз выберите "управление флагами" (Manage flags). Отметьте здесь чекбокс напротив слова "boot" и кликните "закрыть". Все – выходим из "GParted" и перезагружаем систему. Если все сделано правильно – получаем экран загрузки "Windows 7".

Fedora install5

Рисунок 14

Настройка загрузки двух операционных систем.

Теперь, когда у нас есть размеченный диск с установленными на нем "Windows7" и "Ubuntu" или "Fedora", давайте настроим нашу систему, чтобы загружать "Windows 7" или "Linux" из одного меню. Для этого нам надо скопировать "MBR" загрузочного раздела нашей "Linux" в файл "Windows 7", и, используя "BCDEdit", создать новую запись в BCD хранилище, указывающую на этот файл. В результате у нас появится меню во время загрузки, в котором можно будет выбирать между "Windows 7" и "Linux". Загрузите систему, используя загрузочный диск "GParted" или "Ubuntu", или "Fedora", который мы создали на начальном этапе установки системы. Создадим точку монтирования для раздела "FAT32" (share), который мы создали. Я предпочитаю использовать диск "GParted", потому что он загружается намного быстрее. Откройте терминал и введите следующее:

mkdir /mnt/share

Затем смонтируем "правильное" устройство к этому разделу. Вспомним из процедуры раздела диска с помощью "GParted", что раздел "FAT32" расположен в устройстве "/dev/hda6". Внимание: использование раздела "FAT32" на этом этапе является примером. Вы можете, если хотите, использовать другое устройство – например, USB-флеш карту памяти. Только убедитесь, что установили соответствующее устройство. Введите в командной строке следующее:

mount /dev/hda6 /mnt/share

Запишем первые 512 байт системного раздела "Linux" в файл и скопируем этот файл на наш раздел "FAT32":

dd if=/dev/hda3 of=/mnt/share/linux.bin bs=512 count=1

Выходим из "GParted" и перезагружаемся в "Windows 7". Откройте раздел "FAT32", и Вы должны увидеть там "linux.bin" файл. Скопируйте этот файл в корневой каталог Windows (например, раздел C:\).
В случае, если установлены две операционные системы "Windows" ("Windows XP" и "Windows 7"), файл "linux.bin" копируйте в корневой каталог той операционной системы, загрузчик которой используется (примечание igorign).
Затем используем "BCDEdit", чтобы добавить записи в "BCD хранилище" "Windows 7". Для этого нам понадобится запустить "BCDEdit" c правами администратора. Перейдем: "пуск" > "все программы" > "стандартные", кликнем правой кнопкой мыши на "командная строка" и выберем из контекстного меню "запуск от имени администратора". Командная строка запущена, теперь давайте приступим к созданию записей нашей операционной системы "Linux". Хочу заметить, что здесь Вы вольны выбирать любое другое имя входа при желании:

bcdedit /create /d "Linux" /application BOOTSECTOR

"BCDEdit" присвоит алфавитно-цифровой идентификатор для этого входа, который будем именовать как {ID} в дальнейшем. Вы должны будете заменить запись {ID} фактическим присвоенным идентификатором. Например {ID} = {d7294d4e-9837-11de-99ac-f3f3a79e3e93}. Теперь укажем на каком разделе диска находится наша копия файла "linux.bin":

bcdedit /set {ID} device partition=c:

Путь к нашему файлу "linux.bin":

bcdedit /set {ID} path \linux.bin

Укажем, где разместить запись в меню загрузки (addlast - в конце списка):

bcdedit /displayorder {ID} /addlast

И, наконец, укажем таймаут выбора загрузки из списка операционных систем (цифра указывает количество секунд):

bcdedit /timeout 30

Все! Теперь перезагружаемся – и перед нами знакомое меню загрузки операционных систем "Windows 7", на котором красуется и наш "Linux". Когда Вы выберете "Linux" – то попадете в меню загрузчика "GRUB", где Вам будет предложено продолжить загрузку "Linux" или возвратиться к предыдущему меню.

Совет пользователям операционной системы Fedora. Ее загрузчик "GRUB" по умолчанию использует опцию "hiddenmenu". При этом, чтобы отобразить на экране полное меню "GRUB", в начале загрузки необходимо удерживать нажатой клавишу "Esc" в течение 5 секунд. Если этого не делать – загрузка "Федоры" начнется сразу же после выбора этой операционной системы из нашего начального меню загрузки. Если же Вы хотите убрать hiddenmenu и/или изменить время в 5 сек, - загрузите "Федору" и откройте терминал. Войдите в систему с правами root и сделайте резервную копию файла "/boot/grub/grub.conf". Теперь откроем оригинальный файл в Вашем любимом редакторе и закомментируем линию "hiddenmenu". Там же Вы можете изменить значение "timeout" на большее чем 5 секунд. Теперь когда Вы выберите опцию "Linux" из меню загрузчика операционных систем "Windows 7", Вы увидите полное меню "GRUB", предлагающее продолжить загрузку "Федоры", или вернуться в меню "Windows 7" в течении времени, установленного Вами в значении "timeout".

В заключении – если Вы захотите удалить "Linux" из списка меню загрузки ОС – просто удалите записи, сделанные Вами в "BCD хранилище" для "Linux" под идентификатором {ID} с помощью следующей команды:

bcdedit /delete {ID}

Windows XP?

Если Вы планируете использовать в двойной загрузке "Windows XP" (а не "Windows 7"), то выполните все этапы для каждой операционной системы, указанные выше (хочу заметить, что XP не использует дополнительный раздел диска для размещения там своих загрузочных файлов, как это наблюдается у "Windows 7"). При этом нам не нужен будет "BCDEdit". Вместо этого просто откроем файл "boot.ini", расположенный в "C:\", и добавим следующую запись:

c:\linux.bin="Linux"

Заключение

С минимальной затратой времени, при помощи свободного и общедоступного дискового менеджера "GParted", и нескольких манипуляций в командной строке, Вы можете легко настроить систему с двойной загрузкой "Windows 7" (ХР) и "Linux".

Используя вышеприведенный алгоритм установлены:
"Windows 7 Ultimate", "Windows 8 Pro" и "Ubuntu 12.04 LTS" на десктоп
"Windows 8.1 Pro" и "Ubuntu 12.04 lts" на ноутбук ASUS n53jn
"Windows 7 SP1" и "Linux Mint 16 Kde" на Acer Aspire One d270

Статья опубликована 12.05.2013 изменена 30.09.2015 [19:02:29]

Наверх