Dualboot Windows и FreeBSD |
---|
MBR - Master Boot Record, это специальная запись в начале диска. Она содержит код загрузчика, таблицу разделов и сигнатуру, все это данные, необходимые для последующей загрузки OS.
Для MBR нет стандарта, но традиционно считается, таблица разделов MBR может содержать описание только четырех основных разделов диска.
Поскольку, основная таблица разделов MBR может содержать не более 4
первичных разделов, поэтому был изобретён Расширенный раздел
(англ. extended partition).
Это первичный раздел, который не содержит собственной файловой системы, а
содержит другие логические разделы, позволяя увеличивать количество разделов
на диске.
- не более 4'ех первичных разделов
- использование Extended Partition
- разметка дисков не более 2TB из-за архитектурй и 32'bit'ной адресации
- небезопасная - отсутствие копии таблицы разделов
GPT - GUID Partition Table - новый стандарт размещения таблиц разделов на жестком диске.
GPT является частью расширенного стандарта EFI, предложенного компанией Intel.
EFI, впоследствии стандарт UEFI, используется для замены BIOS, используемого всеми PC-совместимыми компьютерами.
- - современная система адресации блоков LBA
- - наличие альтернативной копии (в конце диска), безопасная
- - поддержка дисков и массивов более 2TB
- - возможность создания до 128'ми разделов (партиций)
- - поддержка MBR
В данной заметке будет рассказано как установить Операционные системы Windows 7,8,10 и FreeBSD на один жесткий диск размером не более 2TB, используя Boot Manager от FreeBSD настроить DualBoot установленных систем.
Прежде чем приступить к практической реализации вопроса, необходимо рассмотреть возможности установки и загрузки ОС FreeBSD и выбрать наиболее простой метод размещения двух систем на диске.
- Extended Partition (см.выше)
- загрузку с Extended Partition
- загрузку из UEFI BIOS в Secure Level режиме
- Boot Manager для загрузки с разных партиций GPT
В сравнении с версией ОС Windows XP, в указанных версиях ОС Windows, загрузчик полностью изменился.
При использовании схемы разметки диска MBR, по умолчанию в укзанных ОС Windows создается скрытый раздел:
Операционная система Windows поддерживает:
- - MBR
- - GPT только из UEFI BIOS (по стандарту Microsoft)
- - загрузку с MBR из BIOS
- - загрузку с GPT из UEFI BIOS
Исходя из вышеизложенного, чтобы установить на один диск Windows 7,8 и FreeBSD и настроить DualBoot - самым простым способом, является использование MBR и boot manager от FreeBSD - boot0cfg.
Далее будет показано, как используя новый установщик FreeBSD, начиная с FreeBSD 9.3-RELEASE, разметить диск в MBR, установить и настроить Boot Manager.
Примечание:
Можно использовать сторонний Boot Manager, например Grub2. Grub2 - великолепный boot manager, который можно использовать для загрузки нескольких разных систем установленных на диск: FreeBSD, Linux, Windows. Но это, тема другой статьи.
Для установки FreeBSD и Windows, в обычном BIOS настраиваем загрузку
с CD/DVD или USB флешки.
В случае UEFI BIOS, переводим UEFI BIOS в режим Legacy.
Запускаем установку FreeBSD с CD/DVD или USB-Live, и доходим до разметки диска:
Выбираем режим Manual - ручная разметка.
Выбираем наш диск, куда будут установлены ОС FreeBSD и Windows 7/8/10:
Выбираем создать - "Create":
Получаем картинку следующего вида:
Выбираем в меню "MBR - DOS Partition":
Создаем первый раздел (партрицию MBR) под FreeBSD:
По-скольку, создаем разделы MBR или слайсы (slices) в терминах FreeBSD, Mountpoint не задается.
В результате, получим следующее:
где, ada0 - нулевой (первый) диск в компьютере
s1 - первый раздел (слайс в терминах xBSD) или партиция MBR (первая из 4'ех)
ada0s1 - первая партиция MBR под FreeBSD, размером 8GB
Теперь, можно создавать партиции самой FreeBSD, курсор должен быть
наведен на ada0s1
затем, "Create":
партиции FreeBSD могут быть двух типов:
Важно: ниже показано как убрать ufs-журналирование для корневой FS,
пока с ним в FreeBSD есть проблемы, выбираем Options:
Отменяем выбор SUJ:
подтвеждаем изменение опций: OK
и еще раз подтверждаем создание файловой системы: OK
Вот так будет выглядеть созданная файловая система для последующей установки на нее ОС FreeBSD:
Важно: Если Вы будете создавать несколько файловых систем FreeBSD и swap из меню установки, обязательно используйте следующий порядок создания:
Например, создание корня:
создание swap:
Итог:
Создание файловых систем FreeBSD завершено -> Finish запустит установку ОС FreeBSD:
Перейдем сразу к окну партиций, не забывая что на первую, установлена OS FreeBSD:
Выделяем Незанятое место на диске 0 и нажимаем Далее, инициируем установку Windows на Незанятое место
После установки Windows, последняя, установит флаг активности - загрузки на свою партицию.
Загружаемся с CD/DVD или USB-Live FreeBSD и выходим в SHELL, для установки Boot Manager FreeBSD:
В данном режиме, выполняем следующие команды:
- посмотреть разметку диска ada0
# gpart show ada0- дополнительно, можно посмотреть BSD разметку слайса ada0s1
# gpart show ada0s1- смотрим, установлен ли Boot Manager FreeBSD
# boot0cfg -v ada0- устанавливаем Boot Manager FreeBSD и перезагружаемся:
# boot0cfg -B ada0 # reboot
Получаем следующую картину:
Где:
Примечание: Чтобы убрать из меню F3, необходимо снова воспользоваться boo0cfg для более тонкой настройки.
Подразумевая что у нас чистый диск, размером 50GB, запускаем установку Windows:
Произведем разметку диска, создадим несколько партиций для логичских дисков Windows, нажимаем "Создать":
Создаем первый раздел, размером 25GB:
Получаем следуюшую картину, где Windows автоматически создал:
Создаем еще один раздел MBR, для Windows логического диска D: размером 10GB
Получаем следующую разметку:
Выбираем Диск 0, Раздел 2 - 24.3GB Основной для установки на него Windows и нажимаем Далее:
Производим установку Windows, по завершению которой, запускаем установку FreeBSD с CD/DVD или Live-USB.
Выбираем Create для создания слайса FreeBSD:
Создаем 4'ый слайс MBR под FreeBSD размером 16GB:
Получаем последний 4'ый раздел MBR с FreeBSD, в котором создадим партиции FreeBSD, используя Create:
Создаем партицию FreeBSD 2GB для корневой FS (должна быть первой: ada0s4a):
В опциях, отключаем UFS журналирование SUJ
Вид после создания корневой FS:
Создаем партицию под swap:
Вид после создания SWAP:
Создаем партицию под FS /usr:
Вид после создания /usr:
Создаем партицию под FS /var:
Вид после создания /var:
Создаем последнюю партицию под FS /home:
Вид после создания /home:
Для установки FreeBSD Finish, по завершению
установки, выходим в Shell
и производим установку Boot Manager FreeBSD:
Ранее уже описывались используемые команды, по завершению,
производим Reboot и получаем
меню Boot Manager FreeBSD.
Важно: в данной статье не рассматривалось выравнивание партиций на границе партиций для сектора диска размером 4K.
Итог: Выше были рассмотрены два варианта установки систем FreeBSD и Windows на разделы MBR и настройка
Boot Manager FreeBSD для DualBoot.
Ниже будет показана установка и настройка загрузчика GRUB. Загрузчик grub2 будет установлен из ОС FreeBSD, в общем случае порядок установки ОС Windows и FreeBSD не важен.
Для установки загрузчика grub2, необходимо загрузиться в ОС FreeBSD:
В примере ниже, будет показана установка и настройка загрузчика grub2 из ОС FreeBSD:
Пусть мы загрузились в ОС FreeBSD, смотрим таблицу разделов:
Можно задать модули по-умолчанию в grub-install:
# grub-install --modules="part_msdos part_gpt ntfs bsd ufs2" --no-floppy /dev/ada0
В документации grub2 не рекомендуют создавать файл конфигурации вручную, а рекомендуют выполнить:
# grub-mkconfig -o /boot/grub/grub.cfgОднако во FreeBSD c генератором grub-mkconfig все время только проблемы, поэтому, советую создавать
Прежде чем приступить к написанию меню загрузки /boot/grub/grub.cfg, вспомним конфигурацию нашей MBR таблицы разделов:
root@w8bsd:~ # gpart show ada0 => 63 104857537 ada0 MBR (50G) <-- таблица MBR из трех разделов 63 1985 - free - (993K) 2048 716800 1 ntfs (350M) <-- первая партиция(слайс) 718848 81201152 2 ntfs (39G) <-- вторая партиция(слайс 81920000 34 - free - (17K) 81920034 22937544 3 freebsd [active] (11G) <-- третий слайс 104857578 22 - free - (11K) root@w8bsd:~ # gpart show ada0s3 => 0 22937544 ada0s3 BSD (11G) <-- третий слайс BSD состоит из: 0 20971520 1 freebsd-ufs (10G) <-- первая партиция BSD 20971520 1966023 2 freebsd-swap (960M) <-- партиция под swap 22937543 1 - free - (512B) root@w8bsd:~ #Мы создали на диске таблицу MBR, состоящую из трех основных разделов:
В GRUB2, диски нумеруются с "0", а разделы с "1", с учетом этого создадим меню загрузки:
Получается следующая конфигурация:
Прежде чем комментировать конфигурацию, покажем общий шаблон для одного входа меню:
menuentry "Имя входа" { # <- this is comment # number of default menu for autoboot set default=2 # timeout for autoboot set timeout=10 # load modules insmod модуль1 insmod модуль2 # set root set root=(ДискНомер,ПартицияНомер) # load OS загрузка ядра напрямую (только для OS которые поддерживает GRUB2) загрузка ядра через Loader Операционной Системы загрузка по цепочке (chain/chainloader) }
В соответствии с документацией GRUB2 может:
Я бы выделил еще один вариант загрузка собственного Loader'а Операционной системы, который самостоятельно загружает родную ОС, он относится к спецификации Grub Multiboot, в отличие от прямой загрузки Kernel, ядра ОС, с параметрами.
Вернемся к меню /boot/grub/grub.cfg, для Windows 7/8/10:
menuentry "Windows 8.1" { <-- строка отображения в меню загрузки insmod chain <-- подгружаем модуль для использования загрузки по-цепочке insmod ntfs <-- модуль поддержки файловой системы NTFS # set root=(hd0,msdos1) <-- идентична следующей строке set root=(hd0,1) <-- первый диск с MBR - hd0, первая, скрытая партиция Windows chainloader +1 <-- технология загрузки по-цепочке, загрузить ПЕРВЫЙ сектор заданного выше "root" }
В верхнем примере, для загрузки Вашего варианта расположения Windows, необходимо изменить, в соответствии с Вашими условиями:
меню для FreeBSD:
menuentry "FreeBSD 10.1" { <-- строка отображения в меню загрузки # insmod bsd <-- подгружаем модуль схемы разметки BSD insmod ufs2 <-- модуль поддержки файловой системы UFS2 set root=(hd0,msdos3,bsd1) <-- первый диск с MBR - hd0, третий слайс MBR, первая партиция BSD1 = "a" [ada0][s3][a] kfreebsd /boot/loader <-- загружаем loader OS FreeBSD, остальное выполнит он сам }
Примечание: Самый простой и правильный путь, использовать ручную разметку дисков и настройку менеджеров загрузки из <Shell> или <LiveCD>, командами указанными в данном руководстве.
1. Осталась альтернативная копия GPT:
- по какой-то причине, не удалилась альтернативная копия GPT, если
Вы использовали GPT или меню Auto при установке FreeBSD.
решение: удалить схему GPT или альтернаивную копию (каждая размером 34 LBA сектора):
# gpart destroy -F ada0
# dd if=/dev/zero of=/dev/ada0 count=34 bs=512- удалить альтернативную таблицу GPT в конце диска командой dd:
определяем количество секторов на диске и вычитаем 34:
# echo `diskinfo -v ada0 | grep "# mediasize in sectors" | cut -f1,1 -d"#"` - 34 | bcпропускаем вычисленное количество секторов (задаем в seek=) и обнуляем последние 34:
# dd if=/dev/zero of=/dev/ada0 bs=512 seek=60030398
2. Если по какой-то причине слетел Boot Manager:
grub-resc>ls grub-resc>set root=(задать правильные данные) grub-resc>ls /boot/grub/
3. Загрузка при использовании двух дисков:
# boot0cfg -B ada0F5 - загрузка со второго диска.
menuentry "FreeBSD 10.1/Disk2 GPT" { insmod part_gpt insmod bsd insmod ufs2 set root=(hd1,gpt2) kfreebsd /boot/loader }
4. Если хотите использовать только GPT разметку, BIOS должен быть UEFI для Windows и boot manager GRUB2 с поддержкой EFI.
- BIOS - Basic Input Output System
- EFI - Extensible Firmware Interface
- UEFI - Unified Extensible Firmware Interface
- Boot Loader - загрузчик Операционной системы
- Boot Manager - специализированный загрузчик разных Операционных систем
- ОС или OS - Операционная система или Operating System
- MBR - Master Boot Record
- GPT - GUID Partiation Table
- EBR - Extended Partition
- LBA - Logical Block Addressing, механизм адресации и доступа к блоку данных диска
- Slice - тоже самое что и партиция(в стиле Microsoft) MBR
- Slice - состоит из партиций FreeBSD
- FS - сокращение Filesystem
- UFS - тип файловой системы FreeBSD
- SU - Soft update, одно из достижений файловой системы UFS2 от FreeBSD
- SUJ - Soft update journaling, журналирование файловой системы UFS2 от FreeBSD
- root-fs или root fs - корневая файловая система, обозначается как "/"
- swap - область подкачки
- mountpoint - точка монтирования файловой системы
- Shell - командный интерпретатор
Примечание: Если у вас возникли вопросы, желание расширить, уточнить, исправить, дополнить, скачать или использовать данную заметку - пожалуйста, я буду только рад если кому-то она оказалась полезной.
Андрей Лаврентьев