Как добавить второй дистрибутив Linux (xubuntu) в grub?

Это была проблема в fdiskв утилите -linux. Некоторое время назад я сообщил в апстрим, и это было исправлено:

https://github.com/karelzak/util-linux/commit/acb7651f8897ae73d0f45dd75bc87630001c61b9

Таким образом, если вы используете fdisk в утилите -linux v2.27 -rc1 или более поздней версии для создания разделов , вы не столкнетесь с этой проблемой.

Я не уверен, что partedимеет ту же проблему, если да, то, вероятно, следует ввести аналогичный хак. (Так что отправьте отчет об ошибке в вышестоящую ветвь, если вы хотите, чтобы она была исправлена ​​:http://savannah.gnu.org/projects/parted/)

РЕДАКТИРОВАТЬ :Просто обратите внимание, что вы используете GPT на обоих дисках. IIRC gdiskне страдает от этой проблемы, потому что он не вычисляет выравнивание с использованием оптимального размера ввода-вывода, вместо этого он статически по умолчанию равен 2048 и позволяет вам установить его в любой диапазон значений от 1 -65536(x->l).

1
20.11.2019, 23:43
1 ответ

Изменить :Похоже, причина в том, что одна из систем загружалась через устаревший BIOS вместо UEFI. Это привело к тому, что Mint не смог обнаружить вторичную систему на nvm.

Так что для тех, у кого есть похожая проблема :, убедитесь, что все ваши установки Linux используют один и тот же метод загрузки. Если исправление не помогло, проверьте остальную часть этого поста.

  • загрузите обе ваши установки Linux и выполните описанные ниже шаги -один за другим, потому что при установке нового ядра в одной из них будет вызвано обновление -grub и, вероятно, перезапишет настройки, сделанные вами в другой.
  • отредактируйте /etc/default/grub и установите GRUB _TIMEOUT _STYLE=menu, чтобы появилось меню, и GRUB _TIMEOUT, возможно, на 10 (секунд)
  • запустите sudo update-grubэто установит в меню все ядра вашего текущего Linux. После этого он добавляет все ядра всех других установок Linux, которые он находит на доступных в данный момент дисках. Проверьте, все ли доступные системы обнаружены!
  • Если вышеуказанное не помогло, запустите sudo grub-install /dev/sda, чтобы установить grub на SSD.Но скорее всего это ничего не изменит, так как это уже было сделано автоматически.

Linux, в котором update-grubвызывался последним, будет вверху и загрузится автоматически, если GRUB_DEFAULT=0. Это может измениться, поскольку обновление -grub вызывается автоматически всякий раз, когда устанавливается новое ядро.

Если по какой-либо причине автоматическое обнаружение -не работает, отредактируйте /etc/grub.d/файлы. Но вы всегда должны update-grubиз Linux, где вы модифицировали эти файлы. Это может быть проблемой, когда обновление -grub вызывается автоматически после установки новых ядер.

Если вы хотите, чтобы в меню загрузки UEFI выбирался загружаемый Linux, просто сделайте это следующим образом:

  • новый багажник
  • sudo grub-install /dev/sda
  • загрузить Xubuntu
  • sudo grub-install /dev/nvme0n1

Это вызовет разный приоритет в grub в зависимости от того, с какого диска загружается UEFI. Чтобы быть уверенным, не забудьте потом обновить -grub.

ПС. Если по какой-то причине автоопределение не работает (с nvme... )Тогда вам нужно редактировать файлы в/etc/grub.d

ППС. Если это все еще не работает, и вы хотите попробовать с live CD. Вам нужно будет выполнить chroot в установленную систему. Это не тривиально. И сделать так, чтобы он устанавливал пункты меню установки для всех ваших Linux, может быть еще сложнее.

Кстати, я не уверен, как Linux обрабатывает точку установки grub, установленную с помощью grub-install /dev/sda. Как работает связь между меню grub и кодом сектора загрузки grub -?

1
27.01.2020, 23:40

Теги

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