- IT блог Валерия Лямцева
- Linux, Windows, заметки, мини howto
- Как добавить пункт загрузки Windows в Grub2
- Как сделать загрузку Windows первой в Grub
- Grub Customizer
- Изменение порядка загрузки Grub через терминал
- Оцените статью:
- Об авторе
- 11 комментариев
- Grub 2 + VHD: установка и загрузка ОС Windows 7 Ultimate
- Введение
- 1. Подготовка почвы
- 2. Создаем VHD-образ с системой
- 3. Настройка загрузчика bootmgr
- 4. Установка Windows 7 Ultimate на VHD-образ
- 5. Настройка загрузчика Grub2
- Заключение
IT блог Валерия Лямцева
Linux, Windows, заметки, мини howto
Как добавить пункт загрузки Windows в Grub2
Как-то, сидя грустным вечером за компом, мне захотелось поиграть во что-нибудь. Но тут я вспомнил, что после того, как поставил на новый винт свеженькую Fedora 17, я так и не удосужился в загрузчик добавить пункт загрузки для винды. Винда у меня стоит на отдельном жёстком диске, чтобы иногда поиграть. И лишь для этого, а для остального есть Linux и виртуальные машины.
Всё бы ничего, но в новой федоре и загрузчик тоже новый. Поэтому пришлось чуток погуглить. Для начала, нужно узнать обозначение диска, на котором стоит винда. В моём случае, это был диск sdd (4-ый жёсткий диск на компе). Затем, надо узнать номер раздела, с которого грузится винда. Обычно, если винда установлена штатно, то в ней есть так называемый раздел «Зарезервировано системой». В линухе же он у меня имел обозначение sdd1. Нам понадобится узнать uuid этого раздела. Делаем команду:
ls -al /dev/disk/by-uuid
И у себя я вижу вот такой вывод:
……………..
lrwxrwxrwx. 1 root root 10 июля 28 21:49 82FE2760FE274BAB -> ../../sdd1
……………..
Всё, теперь есть вся нужная информация, чтобы создать дополнительный пункт загрузки в grub2. Находим файл /etc/grub.d/40_custom и в его конец добавляем вот такую конструкцию:
menuentry «Win» <
insmod part_msdos
insmod ntfs
set root=’(hd3,msdos2)’
search –no-floppy –fs-uuid –set 82FE2760FE274BAB
chainloader +1
>
Где hd3 — это диск sdd (четвёртый). Именно так, бо в грубе исчисление дисков начинается с нуля: hd0, hd1, hd2 и т.д. Ну и uuid сами видите, где нужно было вставить.
После редактирования вышеназванного файла делаем команду:
grub2-mkconfig -o /boot/grub2/grub.cfg
И перезагружаем комп. Загружаемся под виндой и шпилим в игрухи на здоровье!
Как сделать загрузку Windows первой в Grub
Для выбора и запуска операционной системы во время загрузки компьютера используется специализированная программа — загрузчик. Самый популярный загрузчик — Grub. При установке нескольких операционных систем, например, Linux поверх Windows, в меню загрузчика первой будет последняя установленная ОС.
Это не вызовет проблем у пользователей, которые пользуются Linux как основной системой, для них это даже более предпочтительный вариант. Но если вы еще новичок, и хотите использовать Linux второй системой, а Windows пока еще основной, до тех пор, пока не освоитесь, то наверное захотите чтобы первой была Windows. В этой статье мы рассмотрим как сделать загрузку Windows первой в Grub. Рассмотрим два способа: с помощью программы Grub Customizer и вручную, через файлы конфигурации загрузчика Grub.
Grub Customizer
Grub Customizer — это программа, позволяющая настраивать различные параметры загрузчика Grub. В том числе и положение и очередность пунктов загрузки. Установить программу можно из официальных репозиториев. Например, в Ubuntu нужно использовать ppa:
sudo add-apt-repository ppa:danielrichter2007/grub-customizer
sudo apt-get update
sudo apt-get install grub-customizer
Для запуска программы откройте терминал (Ctrl + Alt + T) и наберите grub-customizer:
Для работы программы необходимы права root, в некоторых системах возможно придется использовать такую команду:
Также программу можно запустить из главного меню. Главное окно выглядит вот так:
Несколько секунд после запуска программа будет сканировать установленные операционные системы, затем в этом же окне мы сможем перенести загрузку Windows на первое место. Для этого кликните на нужном пункте правой кнопкой чтобы открылось контекстное меню:
В меню выберите пункт Переместить вверх. Это действие нужно будет повторить несколько раз, пока Windows не будет первой в списке. Теперь будет выполняться загрузка windows по умолчанию grub.
Если потом вы захотите опустить Windows обратно вниз, есть обратное действие — Переместить вниз.
Для сохранения настроек просто нажмите кнопку Сохранить. Готово. Можете перезагружать компьютер и смотреть что получилось.
Но я хочу затронуть еще пару настроек, которые могут быть полезны. Вместо того чтобы делать загрузку Windows первой в Grub, можно изменить пункт запускаемый по умолчанию. Перейдите на вкладку Основные настройки:
Здесь для выбора пункта по умолчанию используемого по умолчанию есть список Задействовать:
Кроме того, можно загружать по умолчанию последнюю загруженную ОС, для этого есть галочка:
Не забудьте снова нажать кнопку сохранить.
Изменение порядка загрузки Grub через терминал
Как я и обещал, теперь рассмотрим как сделать загрузку WIndows первой в Grub с помощью конфигурационных файлов. Конфигурация Grub находится в файле /boot/grub/grub.cfg.
sudo gedit /boot/grub/grub.cfg
Как правило, строки меню выглядят вот так:
menuentry имя_пункта —опции <
.
>
Например пункт Windows:
menuentry ‘Windows 8 (loader) (on /dev/sda1)’ —class windows —class os $menuentry_id_option ‘osprob
er-chain-FC324E26324DE66C’ <
.
>
Теперь чтобы изменить порядок пунктов меню достаточно вырезать все до обратной закрывающей скобочки, вместе с этой строкой, и вставить перед всеми другими пунктами. Затем можно сохранить файл и готово. Перезагружайте и смотрите. Загрузка Windows выполняется по умолчанию. Только минусом данного способа является то, что при обновлении конфигурации Grub все настройки собьются.
Аналогично тому как мы настраивали пункт, загружаемый по умолчанию в Grub Customizer, это можно сделать и в терминале. Откройте файл /etc/default/grub.
gksu gedit /etc/default/grub
Здесь нас интересует строчка:
Замените 0, на нужный пункт для загрузки, также вместо цифры можно указать имя пункта, например:
GRUB_DEFAULT=»Windows 8 (loader) (on /dev/sda1)»
Посмотреть доступные пункты загрузки не открывая файл конфигурации можно командой:
sudo grep menuentry /boot/grub/grub.cfg
Еще можно настроить загрузку последней загруженной системы, для этого добавьте строчку
А в GRUB_DEFAULT укажите saved:
Очевидным плюсом этого способа есть то, что настройки во время обновления конфигурации Grub не собьются, так как во время обновления информация берется из этого файла. Теперь давайте обновим конфигурацию и сохраним настройки командой:
Не во всех системах работает такой вариант, поэтому можно использовать другую команду:
grub2-mkconfig -o /boot/grub/grub.cfg
Вот и все. Теперь вы знаете как сделать загрузку Windows первой в Grub. Но представленную в этой статье информацию можно использовать в более широких целях. Она будет полезна не только для Windows, но и для любых других нескольких систем, очередностью загрузки которых нужно управлять.
Оцените статью:
Об авторе
Основатель и администратор сайта losst.ru, увлекаюсь открытым программным обеспечением и операционной системой Linux. В качестве основной ОС сейчас использую Ubuntu. Кроме Linux, интересуюсь всем, что связано с информационными технологиями и современной наукой.
11 комментариев
Значит так заходим в терминал и вводим:
/boot/grub/
Дальше sudo nicoedit grub.cfg (где nicoedit название вашего текстового редактора) (в некоторых случаях menu.lst)
Вводим пароль
Открывается окно текстового редактора.
Выбор ОС по умолчанию
В нем сначала просматриваем список загрузки в нижней части файла. Пример:
title Ubuntu, kernel 2.6.20-16-generic
root (hd1,0)
kernel /boot/vmlinuz-2.6.20-16-generic root=UUID=f005531f-451c-440a-8206-eee73f6ae32c ro quiet splash
initrd /boot/initrd.img-2.6.20-16-generic
quiet
savedefault
title Ubuntu, kernel 2.6.20-16-generic (recovery mode)
root (hd1,0)
kernel /boot/vmlinuz-2.6.20-16-generic root=UUID=f005531f-451c-440a-8206-eee73f6ae32c ro single
initrd /boot/initrd.img-2.6.20-16-generic
title Ubuntu, memtest86+
root (hd1,0)
kernel /boot/memtest86+.bin
quiet
### END DEBIAN AUTOMAGIC KERNELS LIST
# This is a divider, added to separate the menu items below from the Debian # ones.
title Other operating systems:
root
# This entry automatically added by the Debian installer for a non-linux OS
# on /dev/hda1
title Windows XP
root (hd0,0)
savedefault
makeactive
chainloader +1
По числу названий, задаваемых ключевым словом title, определяем, начиная с 0, пункты меню. Операционная система Linux в этом списке имеет порядковый номер 0, а Windows — 4.
Теперь в верхней части файла ищем запись:
## default num
# Set the default entry to the entry number NUM. Numbering starts from 0, and
# the entry number 0 is the default if the command is not used.
#
# You can specify ‘saved’ instead of a number. In this case, the default entry
# is the entry saved with the command ‘savedefault’.
# WARNING: If you are using dmraid do not change this entry to ‘saved’ or your
# array will desync and will not let you boot your system.
default 0
Если по умолчанию (т.е. без вмешательства пользователя) должна загружаться ОС Linux, оставляем запись default 0 без изменения. Если же это должна быть ОС Windows, изменяем запись: default 4.
Сохраняем файл, выходим из редактора и терминала.
Grub 2 + VHD: установка и загрузка ОС Windows 7 Ultimate
Введение
Ни для кого уже не секрет, что начиная с версии Windows 7 Ultimate, операционные системы от Майкрософт умеют загружаться будучи установленными на образ жесткого диска формата VHD. Однако, данная возможность «из коробки» доступна только пользователям этой самой Windows 7 Ultimate.
У меня же, убежденного пользователя Arch Linux, потребность в применении этой технологии возникла из-за необходимости иметь винду под рукой в дуалбуте и именно в реальном окружении. 90% процентов задач, для которых нужен Windows, разумеется решаются путем виртуализации, и мощности современного железа, и возможности виртуальных машин, позволяют даже в игры играть в виртуальной среде. Однако, возникла необходимость в использовании пакета «Универсальный механизм», который под вайном работает криво (допускаю и что руки у меня кривые), а в виртуальной среде, понятное дело, безбожно теряет прыть. В общем понадобилась Windows, но таскать разделы на винте и менять его разметку страшно не хотелось ради установки одной программы под винду.
Решение нашлось в реализации загрузки из VHD-образа с использованием загрузчика Grub2, ставшего стандартом де-факто во многих популярных дистрибутивах Linux. Об этом собственно и пойдет речь.
Какие преимущества перед стандартной установкой Windows в дуалбут с линуксом дает такая методика:
- Весь процесс установки и настройки выполняется в среде OS Linux, с использованием менеджера виртуальных машин VirtualBox
- Раздел, где хранятся образы может быть любого типа: первичный или логический. Он не обязательно должен быть активным
- Количество устанавливаемых систем ограничено лишь размерами NTFS раздела. Все системы изолированы друг от друга
- Не происходит перезапись MBR, линукс-загрузчик остается нетронутым
- При замене HDD можно просто скопировать Linux (содержимое всех разделов, подробнее об этом здесь) на новый винт, рекурсивно с сохранением атрибутов, установить Grub 2 на новый винт и вуаля — Ваши Windows- системы перенесутся как ни вчем не бывало. Это удобно
Итак, перейдем к описанию метода.
1. Подготовка почвы
Для хранения образов нам таки потребуется NTFS-раздел, который может быть как первичным, так и логическим, и не обязательно активным. Его можно создать с помощью gparted, там же и отформатировав в NTFS. У меня на НDD была зарезервирована неразмеченная область для разного рода экспериментов с осями, её я и отдал под данный раздел
Далее делаем этот раздел доступным для виртуальных машин VirtualBox
то есть создаем виртуальный диск в виде файла-ссылки на раздел реального HDD. Этот диск подключаем к виртуальной машине с Windows 7 Ultimate — она пригодится нам для решения поставленной задачи
2. Создаем VHD-образ с системой
Теперь надо создать VHD-образ HDD. Его придется создавать средствами, предоставляемыми Windows 7 Ultimate, ибо диски, создаваемые тем же VirtualBox вызывают последующий вывал загружаемой винды в BSOD.
Загружаем вирутальную машину с виндой. Идем в панель Панель управления -> Система и безопасность -> Администрирование -> Управление компьютером -> Управление дисками. С правой стороны окна имеется меню, где мы выбираем создание виртуального диска
после чего указываем путь к нему и задаем его параметры
Лучше всё же выбрать фиксированный размер образа — это будет работать быстрее.
Щелкаем ОК и пока идет процесс, выполним
3. Настройка загрузчика bootmgr
Сам загрузчик bootmgr и каталог с его конфигом boot банально копируем с установочного DVD Windows 7 в корень раздела NTFS, туда же, где размещается папка с VHD-дисками.
Удаляем файл \boot\bcd, ибо этот контейнер хранит конфигурацию с загрузочного DVD, и создаем новый контейнер. Для этого используем крохотную утилитку bootice. Запускаем её, выбираем вкладку “BCD edit”.
Далее жмем “Create new BCD”, выбираем путь по которому будет расположен файл конфигурации и создаем его с именем BCD. Далее выбираем этот файл и жмем “Easy mode” – запуск редактора в упрощенном режиме.
Файл конфигурации откроется в режиме редактирования, нажимаем кнопку “Add” и выбираем вариант “New VHD boot entry”. Редактор сосздаст шаблон загрузочной записи и нам остается лишь вписать путь к нашему образу.
Путь к VHD-файлу от корня раздела с образами прописываем в поле “File”. После этого жмем “Save current system” и выходим из программы.
Дожидаемся пока закончится процесс создания VHD-образа и покидаем виртуальную семерку.
4. Установка Windows 7 Ultimate на VHD-образ
Выполнена средствами VirtualBox. Для этого:
- Смонтирован NTFS-раздел с образом в хост-системе Linux
- Создана виртуальная машина, причем в качестве образа диска выбран созданный нами образ
- Установлена винда, стандартно, без ухищрений
Однако, надо сказать вот о чем. Мы помним, что наша система инсталирована в ВМ, а поэтому некоторые устройства определены на этапе установки и система подсунула для них соотвествующие драйвера. При запуске на Вашем реальном компьютере с вероятностью в 99% получится BSOD. Это связано с тем, что VirtualBox эмулирует контролер IDE следующим образом
и этот драйвер, работая в загружаемой системе конфликтует с реально установленным на мат. плате контроллером, при попытке системы прочесть файл образа с диска. Решается просто – выбираем “Обновить драйвер”, говорим, что не надо искать а мы сами укажем нужный драйвер и выберем “Стандартный двухканальный контролер IDE”
После этого выключаем нашу виртуальную машину и делаем её «реальной»
5. Настройка загрузчика Grub2
В конфиг Grub2 необходимо добавить загрузочную запись такого вида
где (hd0,msdos4) — NTFS-раздел, где размещены VHD-образы.
После этого можно перезагружаться и пробовать…
Заключение
После загрузки устанавливаем драйвера на наше реальное железо и радуемся жизни:
Изображенное на скринах – это полноценная ОС, работающая на реальном железе. Но она – всего лишь файл на Вашем жестком диске. Этот файл может быть скопирован, удален, перемещен, архивирован и прочее. К тому же, такой метод решает извечную проблему конфликта Windows vs Linux на одном HDD. Теперь они мирно уживаются друг с другом и не портят друг другу жизнь.