Как установить все операционные системы на один компьютер

Т.к. я IT-специалист и разработчик ПО, то мне нужен доступ ко всем ОС для изучения и тестирования. Поэтому я решил установить на свой нетбук 4 вида основных ОС:
  1. Windows 10
  2. Lubuntu (Linux)
  3. TrueOS (BSD)
  4. macOS

Строго рекомендуется сначала прочитать весь гайд чтобы иметь представление о подводных камнях на которые можно наткнуться. Данный гайд скорее является больше хроникой событий чем стопроцентным руководством.

Разбивка диска

На нетбуке один жесткий диск объёмом 320 ГБ. Я решил поделить его на 5 частей, из них 4 для ОС и одна часть будет общей для данных, чтобы можно было из каждой ОС добраться до неё. 

Для разметки диска я использовал Disk Utility, которую запустил с уже имеющейся у меня загрузочной флешки для установки Yosemite. На моем нетбуке HP Mini 210-4128er мне не удалось загрузиться с этой флешки, поэтому я подключил диск к ноутбуку ASUS G73JH и выполнил разметку диска с него. Такой странный путь я выбрал потому что мне хочется установить macOS и я не уверен, что другие инструменты смогут сделать правильную разметку для него. Но вы можете попробовать например GParted.

Раздел для Windows

Раздел для Linux

Раздел для BSD

Раздел для macOS

Раздел для моих данных

В качестве файловой системы для разделов WINDOWS, LINUX, BSD и DATA я выбрал пока MS-DOS (FAT). Других вариантов особо нет.


В качестве схемы разметки я выбрал GUID Partition Table. MBR насколько я знаю устаревшая схема, поэтому чтобы идти в ногу со временем я предпочел GPT.


Установка Windows 10

Для создания загрузочной флешки нам понадобится MediaCreationTool.exe, который можно загрузить с официального сайта Майкрософт.


Далее при установке форматируем подготовленный заранее раздел WINDOWS и производим установку на него.


Вот что получилось после установки Windows:


Откуда-то взялся EFI раздел хотя как я выяснил у меня нет на нетбуке поддержки EFI. Или всё же есть? Производитель намудрил чего-то.

Установка Lubuntu

При попытке загрузиться с флешки lubuntu-16.10-desktop-amd64.iso на HP Mini 210-4128er я получил следующее сообщение:

This kernel requires an x86-64 CPU, but only detected an i686 CPU.
Unable to boot - please use a kernel appropriate for your CPU.

Это странно потому что процессор Intel® Atom™ Processor N2800 по идее должен поддерживать 64 бита.



Нашел пару интересных объяснений:

источник

Пишут, что производитель специально заблокировал 64 бита, чтобы пользователи раскошеливались на более дорогое железо, если они хотят эти 64 бита. Это плохо.

источник

Для установки воспользуемся следующим руководством http://thesimplecomputer.info/full-disk-encryption-with-ubuntu

У меня уже есть установленная с шифрованием Ubuntu на которой разметка диска выглядит следующим образом:


Подготовим разделы для установки:


После этой разбивки у меня перестала почему-то загружаться Windows 10:
No bootable device -- insert boot disk and press any key

Я не подумал мне надо было через msinfo32 посмотреть в каком режиме установилась Windows: Legacy или UEFI.

Зашифруем разделы:

$ sudo -i
# cryptsetup luksFormat --cipher twofish-xts-plain64 --key-size 512 --hash sha512 --iter-time 2000 /dev/sda8
# cryptsetup luksFormat --cipher twofish-xts-plain64 --key-size 512 --hash sha512 --iter-time 2000 /dev/sda9
# cryptsetup luksFormat --cipher twofish-xts-plain64 --key-size 512 --hash sha512 --iter-time 2000 /dev/sda10
# cryptsetup luksOpen /dev/sda8 swap
# cryptsetup luksOpen /dev/sda9 root
# cryptsetup luksOpen /dev/sda10 home
# mkfs.ext4 /dev/mapper/root
# mkfs.ext4 /dev/mapper/home
# mkswap /dev/mapper/swap


Установка:


Привязываем точки монтирования:





Настройка после завершения установки:

$ sudo -i
# cd /mnt/
# mkdir root
# mount /dev/mapper/root root
# mount /dev/sda7 root/boot
# chroot root
# mount -t proc proc /proc
# mount -t sysfs sys /sys

$ sudo blkid
/dev/sda8: UUID="3ec3d2de-0034-431c-b048-6b71b8d688e6" TYPE="crypto_LUKS" PARTUUID="896487b9-3b4b-431d-aa49-f9c78ffbb571"
/dev/sda9: UUID="e09e07e2-d46c-4036-8d9a-07b776e9ee92" TYPE="crypto_LUKS" PARTUUID="bc2fda0a-956e-4858-833f-b6f444290a3c"

/dev/sda10: UUID="379269cd-a0bc-4e33-88f7-7d435204e88a" TYPE="crypto_LUKS" PARTUUID="a276556c-300d-4f4e-a251-e826f695b267"

# cat /etc/crypttab
root UUID=e09e07e2-d46c-4036-8d9a-07b776e9ee92 none luks
swap UUID=3ec3d2de-0034-431c-b048-6b71b8d688e6 none luks,swap
home UUID=379269cd-a0bc-4e33-88f7-7d435204e88a none luks


# cat /etc/initramfs-tools/conf.d/resume
RESUME=/dev/mapper/swap

# update-initramfs -u
# exit

Backup:

# cryptsetup luksHeaderBackup /dev/sda8 --header-backup-file /root/sda8.img
# cryptsetup luksHeaderBackup /dev/sda9 --header-backup-file /root/sda9.img
# cryptsetup luksHeaderBackup /dev/sda10 --header-backup-file /root/sda10.img

После установки GRUB перестал загружать Windows 10, я думаю потому что смешались MBR и EFI.

$ [ -d /sys/firmware/efi ] && echo "Installed in EFI mode" || echo "Installed in Legacy mode"
Installed in Legacy mode

Скорее всего установился GRUB несовместимый с UEFI. Если для загрузки Winfows нужен UEFI совместимый загрузчик, то я не смогу такой конфигурацией GRUB загрузить Windows.
http://askubuntu.com/a/447687/162423

Загрузил с установочной флешки командную строку Windows и посмотрел файл C:\windows\panther\setupact.log, как тут, написано, что у меня BIOS, а не EFI.


В принципе наличие раздела EFI ничего не доказывает. Я его смонтировал и там кроме пары логов ничего больше нет.

Попробовал восстановить загрузчик Windows следующим образом:

bootrec.exe /fixmbr  
bootrec.exe /fixboot  
bootrec.exe /scanos  
bootrec.exe /rebuildbcd  

Но после последней команды получил ошибку:
Не удается найти запрошенное системное устройство

Теперь снова не грузится не Linux, не Windows:
No bootable device -- insert boot disk and press any key

Попробовал восстановить GRUB с установочной флешки:

$ sudo -i
# cd /mnt
# mkdir root
# cryptsetup luksOpen /dev/sda9 root
# mount /dev/mapper/root root
# mount /dev/sda7 root/boot
# mount --bind /dev root/dev
# mount --bind /proc root/proc
# mount --bind /sys root/sys
# chroot root
# grub-install --boot-directory=/boot /dev/sda

При установке появлялась ошибка:
grub-install: warning: this GPT partition label contains no BIOS Boot Partition; embedding won't be possible.

Поэтому в GParted я поставил для /dev/sda7 флаг bios_grub и установка прошла тихо. 


Установка кстати проходила для i386-pc платформы. Но после установки система всё равно не грузится: только черный экран и мерцающий символ подчеркивания _.

Я удалил EFI раздел, который планировал под Linux, а на месте него создал BIOS boot раздел (см. еще http://askubuntu.com/a/845414). Также я кажется зря отформатировал /dev/sda7 на который монтировал точку /boot, потому что если посмотреть на команды grub shell, то кажется, что я удалил ядро.


После перезагрузки загрузился чистый grub shell.

Установка Mac OS X

Начиная с версии Snow Leopard все версии Mac OS X являются 64-битными.

https://en.wikipedia.org/wiki/MacOS

Похоже, что Mac OS X Snow Leopard 10.6.8 последняя версия, которая поддерживает IA-32. Версии выше перешли на x86-64. Варианты:

Продолжение следует...