LINUX.ORG.RU

Установка и запуск Debian Linux в дуалбуте с Windows 7 в режиме UEFI на диске с GPT

 , , ,


0

2

Нужно мне на ноутбуке HP Pro 450 G0 поставить второй системой Linux Debian 64 bit. Вот как я пробовал это сделать.

1. Согласно рекомендациям, выставил настройки в BIOS(EFI?):

Secure Boot
disable

Boot Mode
UEFI Hybrid with CSM

Примечение: У HP на ноутбуках свой собственный загадочный то ли BIOS то ли EFI, поэтому я пишу про него как BIOS(EFI?).

2. Через загрузочный CD c LinuxMint 17.3 и gparted очистил диск и создан на нем таблицу разделов GPT

3. Установил Windows 7 64 bit с флешки, сделанной под режим инсталляции UEFI BOOT USB. При ее установке инсталлятором было создано 4 раздела:

Number  Start   End    Size    File system     Name                          Flags
 1      1049kB  106MB  105MB   fat32           EFI system partition          boot, esp
 2      106MB   240MB  134MB                   Microsoft reserved partition  msftres
 3      240MB   105GB  105GB   ntfs            Basic data partition          msftdata
 4      105GB   315GB  210GB   ntfs            Basic data partition          msftdata

где:
Раздел 3 - это диск C,
раздел 4 - это диск D.

4. Создал еще 4 раздела для Debian:
Number  Start   End    Size    File system     Name                          Flags
...
 5      315GB   315GB  537MB   fat32                                         msftdata
 6      315GB   420GB  105GB   ext4
 7      420GB   733GB  313GB   ext4
 8      733GB   750GB  16,8GB  linux-swap(v1)

где:
Раздел 5 - для GRUB2, думал что понадобится, причем как сказано в интернетах, он должен быть обязательно FAT16/32, иначе BIOS(EFI?) его не увидит
Разделы 6 и 7 - это корень и home соответственно

5. В момент инсталляции Debian установить Grub2 в раздел 5 не получилось, потому что инсталлятор требовал чтоб файловая система была ext2 или выше. Пришлось пропустить этот шаг в надежде установить Grub2 позже.

6. Через загрузочный CD c LinuxMint 17.3 попробовал установить Grub2 в раздел 5. При выполнении команды была какая-то ошибка (к сожалению не записал), поэтому пришлось добавить флаг --force:

grub-install --force /dev/sda5

вроде grub поставился, но еще не конфигурировался. Я надеялся на то, что хотя бы проверю, что могу из BIOS(EFI?) загрузиться в консоль этого Grub2 а дальше уже сам Debian Linux как-нибудь запущу.


В результате этих действий имею:


  • В BIOS(EFI?) выбран режим «UEFI Hubrid with CSM», о чем сказано ранее.
  • В BIOS(EFI?) нигде нет списка сохраненных в NVRAM образов EFI.
  • Загрузка Windows 7 работает при выборе пунктов OS booting или HD booting.
  • Загрузка Windows 7 НЕ работает если выбрать EFI booting и указать в качестве загрузки файл /efi/boot/bootx64.efi с раздела 1. Причем не работает и в режиме «UEFI Hubrid with CSM» и в режиме «UEFI Native without CSM».
  • Загрузиться в Grub на разделе 5 или в Debian Linux на разделе 6 из BIOS(EFI?) нет никакой возможности ни в каком режиме.



Тогда я сделал загрузочный CD c Super Grub 2.02 s 10 beta 5. Я могу с него грузиться в режимах «UEFI Hubrid with CSM» и в «UEFI Native without CSM». В обоих случаях этот GRUB находит Debian Linux и позволяет в него загрузиться. Он так же находит Grub на разделе 5, и позволяет загрузиться в его консоль. Кроме того, он находит EFI-файлы и партиции Windows 7, но ни с одного такого варианта Windows загрузиться не может.

Если загрузиться в режиме «UEFI Native without CSM» с этого Super Grub Disk в установленный Debian, то можно запустить команду:

# efibootmgr
BootCurrent: 0000
Timeout: 0 seconds
No BootOrder is set; firmware will attempt recovery

В общем, нигде никаких образов EFI не хранится. Видимо, их надо как-то хитро засовывать в BIOS(EFI?), правда непонятно как их потом выбирать для загрузки.


В общем, у меня сейчас стоит задача: каким-либо образом, неважно каким, но желательно чтоб попроще, иметь возможность запускать и Windows и Debian. Сейчас я могу запускаться так:

- Windows - из BIOS(EFI?) путем выбора OS Booting/HD Booting
- Linux - из SubrGrubDisk, который физически вставлен в CD-привод, путем выбора загрузки c CD-Rom.

Но это очень неудобно все время таскать с собой CD-Rom, который может в любое время перестать читаться, да и вообще это не правильно.


Вопрос: как в 2018 году таки сделать нормальный дуалбут для двух операционных систем Windows и Linux?

★★★★★

Последнее исправление: Xintrea (всего исправлений: 1)
Ответ на: комментарий от mandala

Кстати, из вот этих команд:

mount /dev/sda6 /mnt
mount --bind /dev /mnt/dev
mount --bind /proc /mnt/proc
mount --bind /sys  /mnt/sys
chroot /mnt
grub-install /dev/sda
update-grub2
exit

Я не вижу, что вторая часть Grub2 должна ставиться в /dev/sda5. Как Grub2 об этом узнает?

Xintrea ★★★★★
() автор топика
Ответ на: комментарий от Xintrea

программа установки GRUB2 автоматически найдёт его

Это из арч-вики, как я себе и представлял, уточнил https://wiki.archlinux.org/index.php/GRUB_(Русский)#.D0.A2.D1.80.D0.B5.D0.B1....

Так мы в каком режиме будем ставить?

Раз гибрид, то в MBR, efi на сладкое на потом )

А нужен ли для этого режима неразмеченный раздел 5 с флагом ef02?

в gdisk как раздел типа EF02. Этот раздел не должен содержать никакой файловой системы, иначе она будет затёрта при установке загрузчика.

Да, если там что-то есть, то фик с ним.

mandala ★★★★★
()
Последнее исправление: mandala (всего исправлений: 2)
Ответ на: комментарий от Xintrea

В общем, загрузился я в Debian через SuperGrubDisk, поменял у раздела 5 тип на ef02, о чем gdisk сказал что это BIOS bootable patririon, потом дал команды:

grub-install /dev/sda
update-grub2

При выполнении второй команды были найдены ядра linux, а вот Windows найдено не было. В любом случае при выполнении команд ошибок не было.

Перезагрузился, и песня та же - Linux загрузить из Bios никак невозможно. Загрузка через пункт HD booting не работает, ошибка все та же:
BootDevice Not Found
Please install an operationg system on your hard disk.
Hard Disk - (3F0)

Перепроверил режим - он стоит как и положено, «UEFI Hybrid with CSM».

Перед установкой Grub я сделал копию MBR на всякий случай. После установки тоже сделал копию MBR. Они явно разные: до установки grub2 MBR содержал практически все нули, только ближе к концу с десяток значащих байт. После усановки - какой-то машинный код, есть строки GRUB, Geom, HardDisk...


Далее... Переключил режим загрузки в Legacy, и о чудо, запустился GRUB, а через него и Linux!

В общем, теперь, как минимум, мне не нужен физический CD-Rom. Это радует.

Не радует то, что чтобы загрузиться в нужную систему надо вначале в CMOS Setup переключить режим загрузки «Legacy»/«UEFI Hybrid with CSM», записать эту настройку, опять перегрузиться, и правильно выбрать источник загрузки. Это похоже на танцы с бубном вместо нормального выбора одного из двух пунктов.

Xintrea ★★★★★
() автор топика
Ответ на: комментарий от Xintrea

Не радует

Черт, а чтоб нормально поставить grub2-efi надо загружаться в uefi.

Когда надоест переключаться:

Установка описана тут: https://wiki.debian.org/GrubEFIReinstall#Reinstalling_grub-efi_on_your_hard_d...

Нужна live-система загруженная в uefi, чрутнуться (примонтировав все потроха), поставить grub2-efi и установить его (аналогично как и в mbr, только пакет другой и он сам найдет efi-раздел).

mandala ★★★★★
()
Последнее исправление: mandala (всего исправлений: 1)
Ответ на: комментарий от mandala

Тут вообще Legacy режим как-то странно работает. Ноут загружал Линукс с жесткого диска до выключания, то есть делаю ресет не выключая питания - загрузка работает. Причем никакого Fast Boot не включено.

А после выключения питания ноут уже не смог загрузиться с диска в Legacy режиме. Загрузился опять с SyperGrubDisk, снова сделал копию MBR, сравнил с предыдущей, думал что Windows ее попортило. Так нет, MBR все тот же байт в байт. А материнка загрузиться с него не может.

Для интереса даже в SuperGrubDisk выбрал опцию ручной загрузки и указал грузиться с устройства диска hd0 (не с партиции а именно с устройства). В этом режиме нормально загрузился Grub2 c MBR и далее загрузился линух. Чудеса какие.

Xintrea ★★★★★
() автор топика
Ответ на: комментарий от Xintrea

Чудеса, да. У меня на одном ноуте одна из первых реализаций uefi наоборот чудила в родном режиме, а в Legacy нормально работала (в итоге избавился от него, но по другой причине — i7 даже с отключенной дискреткой выедал батарею за 2 часа без особой нагрузки на свежей батарее, на оффтопике не многим лучше)

mandala ★★★★★
()
Ответ на: комментарий от mandala

Если MBR не поменялся, то как минимум Rescue-консоль груба, который в MBR поставлен, должна запускаться? Я правильно понимаю?

Xintrea ★★★★★
() автор топика
Ответ на: комментарий от mandala

Установка описана тут: https://wiki.debian.org/GrubEFIReinstall#Reinstalling_grub-efi_on_your_hard_d...

В общем, переключил материнку на «UEFI Hybrid with CSM», загрузился с SuperGrubDisk в установленный Debian, поставил пакет grub2-efi, далее по вышеприведенной памятке сделал.

На виндовый EFI раздел (/dev/sda1) засунулась запись для старта Debian. Программа efibootmgr показывает:

Optical Disk
Notebook HD
Windows boot manager
Debian

Но заставить материнку показывать эти варианты загрузки не смог. Приходится при старте выбирать режим загрузки из EFI-файла, находить нужный файл на партиции /dev/sda1, и с него старт происходит.

Xintrea ★★★★★
() автор топика
Ответ на: комментарий от Xintrea

после загрузки из EFI-файла покажи
efibootmgr --verbose

bass ★★★★★
()
Ответ на: комментарий от Xintrea

Но заставить материнку показывать эти варианты загрузки не смог.

Хз. Попробуй создать новую запись, только сохрани предварительно все те что сейчас есть (там можно посмотреть подробно). Точно не помню команды и ключи.

mandala ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.