Установите Grub2 в PBR

Похоже, что этот вопрос задавался здесь много раз, например:

Но ни один из них не является полностью ответили (или, возможно, на себя, на те вопросы, которые не перечислены здесь, но не полностью на вопросы, заданные здесь). Итак, позвольте мне спросить это снова, чтобы мы могли полностью покрыть вопросы и ответы в одном месте.

Ситуация проста:

  • Существует раздел (раздел A), чей загрузчик поврежден или отсутствует,
  • И мы загружаемся в другую систему Linux, либо из другого раздела (partition-B), либо с Live-CD,
  • И цель состоит в том, чтобы полностью установить grub2 в качестве загрузчика. То есть от ОС в разделе-B к ОС в разделе-A.

Задача тоже проста:

  • Установите grub2 в качестве загрузчика. Это сделано grub-install.
  • Обновите меню grub2 для загрузки любого ядра, найденного в разделе A. Это сделано update-grub, верно?

Хорошо, теперь дьявол в деталях,

  • для grub-install для установки в PBR,
    • он жалуется, что это небезопасно / ненадежно:

      GRUB может быть установлен только в этой настройке с использованием списков блокировок. Тем не менее, списки блоков являются ненадежными, и их использование не рекомендуется ..

    • И иногда это тоже жалуется error: embedding is not possible, but this is required for cross-disk install, как я читаю.
  • Если используется только grub-install, но не update-grub, то
    • раздел-A может быть загружаемым, но только на черный экран GRUB2 с командной строкой.
    • Однако я не вижу возможности для update-grub работать на разделе-А вместо его собственного раздела-В.

Итак, в общем, пожалуйста, подробно опишите, как установить grub2 на PBR другого раздела, с меню, загружающим любое ядро, найденное на разделе-A. Thx.

ОБНОВЛЕНИЕ:

Хорошо, чтобы сделать его полностью универсальным местом для тех людей, которые даже не знают, что такое PBR -

PBR - это термин, обычно используемый в ситуации Multi-Boot , которая относится к загрузочной записи раздела , кроме главной загрузочной записи (MBR).

ОБНОВЛЕНИЕ 2:

Используя метод chroot в раздел-A, вот что я получил:

% grub-install /dev/sdc5
Installing for i386-pc platform.
grub-install: warning: File system `ext2' doesn't support embedding.
grub-install: warning: Embedding is not possible.  GRUB can only be installed in this setup by using blocklists.  However, blocklists are UNRELIABLE and their use is discouraged..
grub-install: error: will not proceed with blocklists.

Почему он отказывается работать с блочными списками ?

% fdisk -l /dev/sdc 
Disk /dev/sdc: 74.5 GiB, 80000000000 bytes, 156250000 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x44c4f501

Device     Boot     Start       End   Sectors  Size Id Type
/dev/sdc1               1  12289724  12289724  5.9G  7 HPFS/NTFS/exFAT
/dev/sdc2  *     12289725  28676024  16386300  7.8G 83 Linux
/dev/sdc3        28676025 156248189 127572165 60.9G  5 Extended
/dev/sdc5        28676026  45062324  16386299  7.8G 83 Linux
/dev/sdc6        45062326  61448624  16386299  7.8G 83 Linux
. . .

$ lsb_release -a 
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 18.04.1 LTS
Release:        18.04
Codename:       bionic
0
задан 29 July 2019 в 00:19

2 ответа

Только для систем BIOS. Все системы начиная с Windows 8, выпущенного в 2012, являются UEFI. Таким образом, Вы не нуждаетесь, ни действительно хотите установить в теперь 35-летней конфигурации BIOS/MBR.

Установка личинки к PBR только для начальной загрузки BIOS. И только можно загрузиться от PBR при начальной загрузке с другой личинкой, установленной на MBR, как BIOS только загружается через MBR.

И теперь с grub2 существует много лучших способов загрузить другую установку. И личинка должна использовать черные списки, которые трудно кодируются адреса для остальной части личинки, не ища. И адреса даже могут измениться с fsck.

Обычно личинка в MBR, от последней установки, и это берет под свой контроль процесс начальной загрузки. Если Вы не хотите личинку, установленную от живого установщика:

sudo ubiquity -b

Можно всегда загружаться в любую установку и устанавливать ее личинку в MBR. Из Вашей установки:

sudo grub-install /dev/sdX where sdX is your drive.

Можно использовать тестер OS grub2, чтобы найти другие установки и добавить к меню личинки. Можно использовать configfile для загрузки другой личинки установок. И можно использовать собственную строку файла конфигурации начальной загрузки в 40_custom для загрузки ссылки актуальнейшего ядра, таким образом, никакие обновления записей загрузки второй установки с более новым ядром не требуются.

Личинка в режиме BIOS также сохраняет диск (и раздел) информация о том, где переустановить. Это должно также быть обновлено если не корректный. Войдите через первые страницы, вкладку к хорошо, клавиша "Пробел" для выбирания/невыбирания диска, войдите, чтобы принять, сделать не, выбирают разделы или ничего не выбирают, так копайтесь, не переустановит нигде.

sudo dpkg-reconfigure grub-pc 

https://ubuntuforums.org/showthread.php? t=2189643

Примеры строки файла конфигурации начальной загрузки для начальной загрузки ссылки в / к новому ядру и configfile вводят записи личинки. Не только для Карты памяти, но и любой установки.

Как добавить запись меню GRUB2 для начальной загрузки установленной Ubuntu на Карте памяти?

Всегда можно вручную устанавливать личинку, или просто монтирование другой установки или полный chroot. Если Вы действительно хотите это в разделе, Вам, возможно, понадобится - параметр силы.

https://help.ubuntu.com/community/Grub2/Installing#Fixing_a_Broken_System

См. также:

https://help.ubuntu.com/community/Grub2/Setup#Configuring_GRUB_2

https://help.ubuntu.com/community/Grub2/CustomMenus

1
ответ дан 23 October 2019 в 08:37

Я думаю покрытия ответа @oldfred главным образом все, Ваш вопрос немного сбивает с толку все же.

Хотя возможно установить личинку на PBR, Вы всегда устанавливаете личинку ОС в разделе A к PBR раздела A, Вы никогда не устанавливаете личинку на PBR никакого другого раздела.

Но если Вы действительно хотите к установке (ре) экземпляр личинки к PBR раздела A в то время как загружено в живую сессию или ОС на разделе B, Вы имели бы к chroot в ОС на разделе A и затем выполненный grub-install команда. Пример:

sudo mount /dev/sdaX /mnt
for i in dev sys proc dev/pts ; do sudo mount --bind /$i /mnt/$i ; done
chroot /mnt
grub-install --force /dev/sdaX
update-grub
exit
for i in dev sys proc dev/pts ; do sudo umount /mnt/$i ; done
sudo umount /mnt

Адаптируйте имена устройств /dev/sdaX в этом примере к Вашим потребностям!

Вещи будут более сложными если не невозможный хотя, если ОС на /dev/sdX использует отдельное /boot- раздел, я никогда не использовал отдельный /boot- разделы, таким образом, я не могу сказать Вам. Этот пример будет работать, если рассматриваемая ОС не будет использовать отдельное /boot- раздел.

0
ответ дан 23 October 2019 в 08:37

Другие вопросы по тегам:

Похожие вопросы: