Установите Grub, когда SSD является hd1.

Вопрос или проблема

У меня есть ноутбук Dell G3 17 3779.
В нем установлен SATA HDD как hd0 и M.2 SSD как hd1. Оба в GPT.

Я удалил все на SSD и установил Windows 10.
Я использовал 4 раздела:

  • Среда восстановления Windows (499M) | /dev/sdb1
  • EFI-система (100M) | /dev/sdb2
  • Резерв Microsoft (MSR) (16M) | /dev/sdb3
  • Основной раздел Windows NTFS (70G) | /dev/sdb4

Также я добавил для Arch Linux 2 раздела:

  • Для / (47.7G) | /dev/sdb5
  • Для swap (980.3M) | /dev/sdb6

HDD имеет 2 раздела:

  • Резерв Microsoft (MSR) (16M) | /dev/sda1
  • Некоторый NTFS (900G) | /dev/sda2

После установки Windows я установил Arch Linux через UEFI, следуя вики-руководству.

GRUB был установлен с помощью стандартной команды grub-install без параметров.

Я пытался настроить GRUB вручную:

/boot/grub/grub.cfg

. $prefix/menu.cfg

/boot/grub/menu.cfg

set default=0
set timeout=10
menuentry "ArchLinux" {
 linux /boot/vmlinuz-linux root=/dev/sdb4 rw
 initrd /boot/initramfs-linux.img
}
menuentry "Windows" {
  regexp -s root '\((.+)\)' "$cmdpath"
  chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}

После перезагрузки загрузился только Windows 10 без каких-либо меню загрузки.

Я установил os-prober и попытался запустить grub-mkconfig, но получил предупреждение:
WARNING: Не удалось подключиться к lvmetad. Возврат к сканированию устройств.
или
WARNING: Устройство /dev/loop0 не инициализировано в базе данных udev, даже после ожидания 10000000 микросекунд.

Вместо /dev/loop0 были все разделы.

И по-прежнему грузится только Windows.

Может быть, это из-за того, что мой HDD первый в BIOS, в отличие от SSD (hd0 против hd1)?

Как решить эту проблему?

Обновление: этот ответ https://askubuntu.com/a/816347/879272 позволяет мне открыть grub.

Но почему BIOS запускает EFI/Microsoft/Boot/bootmgfw.efi, игнорируя другие загрузчики?
Могу ли я отключить это поведение?

fdisk

EFI

Я думаю, что BIOS все еще заставляет G3 загружать Windows.

BIOS Dell имеет хороший файловый браузер для выбора загрузчика. Войдите в настройки BIOS (возможно, F2 или F8) сразу после появления логотипа Dell и до загрузки Windows. Затем используйте файловый браузер, чтобы найти загрузчик grubx64.efi, который вы хотите загрузить, и выберите его. Затем проверьте порядок загрузки и сохраните новые настройки для перезагрузки в Grub.

Несколько недель назад у меня была такая же проблема на моем ноутбуке. Он игнорировал мой GRUB2 и запускал Windows напрямую. Вот как я решил эту проблему:

  1. Переименуйте директорию /boot/efi/EFI/Microsoft в Microsoft0
  2. Измените путь в chainloader /EFI/Microsoft/Boot/bootmgfw.efi соответственно на /EFI/Microsoft0/Boot/bootmgfw.efi

Похоже, BIOS в моем ноутбуке всегда помещает загрузчик Microsoft в верхнюю часть списка, независимо от того, как вы его настраиваете. Поэтому переименование директории Microsoft в EFI-разделе может обмануть BIOS, и он не будет автоматически загружать Windows.

Возможно, что-то не так с загрузчиком grubx64.efi. Вот потрясающая утилита, которая может загрузить что угодно и где угодно без загрузчика:

SuperGrub2

EDIT: В качестве альтернативы существует отличный ‘refind‘ загрузчик, специализирующийся на загрузке EFI. Утилита может быть установлена на съемный USB-диск для экстренной загрузки с фиксированного диска, с которого невозможно загрузиться, или может быть установлена в EFI-системный раздел для регулярного использования. ‘refind’ может найти загрузчик grub или загрузить установленное ядро непосредственно, если оно было собрано с загрузчиком UEFI, как это часто включается в современные дистрибутивы Linux.

refind

Честно говоря, я не знаю коренной причины аналогичной проблемы, которую я имел с двойной загрузкой Win10 и Kali, но я потратил много времени, пытаясь заставить их работать совместно и потерпел неудачу. Это тот хак, который я использовал, чтобы заставить его работать.

  • С установленным Windows
  • Отключите Secure Boot в BIOS
  • Отключите Fast Boot в BIOS
  • Установите Ubuntu. Поскольку Ubuntu хорошо взаимодействует с Windows, он устанавливает grub таким образом, что Windows «нравится», и машина затем успешно загружает как Windows, так и Ubuntu
  • Установите другую операционную систему Linux (в моем случае Kali), но без переустановки grub
  • Загрузитесь в Ubuntu и перенастройте grub из Ubuntu (я использовал `grubcustomizer`) для тройной загрузки
  • Удалите Ubuntu
  • Загрузитесь в другую ОС и приведите в порядок grub и установите приоритет загрузки так, как нужно (снова я использовал grubcustomizer).

Когда я мигрировал на эту (новую) машину, я просто установил Arch и запустил Windows из VirtualBox, скопировал данные Windows в папку и поделил эту папку между Win VM и Arch. Теперь я могу иметь обе машины работающими (Arch в качестве основной и Win в качестве VM) и работать с общим диском данных с любой платформы, подходящей для конкретной задачи.

Ответ или решение

Установка GRUB, когда SSD является hd1, может представлять определенные сложности, особенно в конфигурациях с несколькими операционными системами, как в вашем случае. Ниже приводится пошаговое руководство, как правильно установить и настроить GRUB на вашем ноутбуке Dell G3 17 3779 с установленными Windows 10 и Arch Linux.

1. Подготовка перед установкой GRUB

Перед началом установки GRUB убедитесь, что вы выполнили следующие требования:

  • Проверка режима UEFI: Убедитесь, что стартовая система работает в режиме UEFI, а не Legacy. Вы можете проверить это в BIOS вашего ноутбука, зайдя в настройки загрузки.

  • Отключение Secure Boot: Это может повлиять на загрузку GRUB. Перейдите в настройки BIOS и отключите Secure Boot.

  • Отключение Fast Boot: Это также может помешать корректной загрузке. Найдите и отключите эту настройку в BIOS.

2. Установка GRUB на SSD

Теперь, когда вы убедились, что все настройки BIOS корректны, перейдите к установке GRUB:

  1. Загрузитесь с Live-USB Arch Linux. При этом убедитесь, что система загружается именно в режиме UEFI.

  2. Подготовьте корневую файловую систему. Сначала смонтируйте раздел с установленной Arch Linux:

    mount /dev/sdb5 /mnt

    Затем смонтируйте EFI-раздел:

    mkdir /mnt/boot
    mount /dev/sdb2 /mnt/boot
  3. Установите GRUB на SSD (hd1). Выполните следующие команды:

    # Введите chroot
    arch-chroot /mnt
    
    # Установите GRUB
    grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB

    Здесь важно указать --efi-directory, чтобы GRUB знал, где находится EFI-раздел.

  4. Создайте конфигурацию GRUB:

    Для этого выполните команду:

    grub-mkconfig -o /boot/grub/grub.cfg

    Эта команда создаст файл конфигурации GRUB, который будет включать все доступные операционные системы, включая Windows 10.

3. Настройка конфигурации GRUB

Если после выполнения вышеуказанных шагов при загрузке система все еще загружает Windows напрямую, необходимо отредактировать конфигурацию GRUB.

В файле /boot/grub/grub.cfg добавьте следующие записи (если они отсутствуют):

set default=0
set timeout=10

menuentry "Arch Linux" {
    linux /boot/vmlinuz-linux root=/dev/sdb5 rw
    initrd /boot/initramfs-linux.img
}

menuentry "Windows" {
    insmod part_gpt
    insmod chain
    chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}

4. Проверка порядка загрузки в BIOS

После установки и настройки GRUB:

  • Перезагрузите ноутбук и снова зайдите в BIOS (обычно нажатие клавиши F2 или F8 во время загрузки).
  • Проверьте порядок загрузки: GRUB должен находиться выше Windows Boot Manager. Если этого не произошло, отредактируйте порядок загрузки.

5. Альтернативные методы

Если проблема с загрузкой GRUB продолжается, рассмотрите следующие альтернативные решения:

  1. Переименование каталога Microsoft:
    Если BIOS продолжает обращаться к Microsoft Boot Manager, вы можете временно переименовать потенциальные каталоги:

    mv /boot/efi/EFI/Microsoft /boot/efi/EFI/Microsoft0

    Затем измените путь в конфигурации GRUB соответственно.

  2. Использование rEFInd:
    rEFInd — это другой загрузчик, который может помочь в более удобной конфигурации и загрузке нескольких операционных систем.

Заключение

Установка и настройка GRUB на системе с несколькими операционными системами требует внимательности и точности. Следуя приведенным шагам, вы сможете успешно установить GRUB и настроить его для загрузки как Arch Linux, так и Windows 10. Убедитесь, что вы проверили все настройки BIOS, и при необходимости воспользуйтесь альтернативными методами для решения проблемы.

Оцените материал
Добавить комментарий

Капча загружается...