3

РЕДАКТИРОВАТЬ: Просто добавив мои два цента после того, как этот вопрос становится "популярным". Я был большим поклонником grub потому что он мог загружать все, что я использовал. Однако, когда grub2 , он мне очень не понравился, потому что

  • сам по себе огромный
  • оставь кучу мусора в моей папке /boot что для меня 99,9% бесполезно
  • "расширенный" синтаксис слишком сложен для меня
  • попробуйте загрузку UEFI с использованием grub2 - это действительно ROYAL PITA
  • Я мог использовать grub качестве загрузчика CD, но я не знаю, может ли это сделать grub2 - мне все равно, потому что я нашел лучшую альтернативу.

Экосистема syslinux (включая extlinux) теперь загружает все, что я использую, CD/DVD, FAT, Ext2/3/4 и даже Btrfs. Кроме того, он обрабатывает реле MBR/PBR или GPT без заминки. Он небольшой, и поддерживает универсальный синтаксис по всем направлениям. Extlinux (syslinux) в настоящее время - мое выбранное решение для загрузки всего, что я использую.

Теперь вернемся к ОП.

Кто-нибудь знает, как правильно загрузить Linux с extlinux?

Я исчерпал свой поиск в Google, но все еще не могу понять, как правильно настроить extlinux для загрузки Linux. Все найденные мной хиты говорят о редактировании файла /boot/extlinux/extlinux.conf напрямую. Тем не менее, внутри есть большое предупреждение, которое отговаривает меня от этого:

## /boot/extlinux/extlinux.conf
##
## IMPORTANT WARNING
##
## The configuration of this file is generated automatically.
## Do not edit this file manually, use: extlinux-update


default l0
prompt 1
timeout 50

include themes/debian/theme.cfg

Я запускал extlinux-update или extlinux -update способами, но это все равно остается неизменным. Проблема в том, что этот файл ничего не загружает!

Если я отредактирую его сам и снова extlinux-update , то BOOM снова вернется к вышеуказанной загрузочной версии.

Кто-нибудь знает, как правильно настроить extlinux под Ubuntu для его загрузки (без непосредственного редактирования extlinux.conf)?

Это extlinux из последней версии Ubuntu Trusty:

% apt-cache policy extlinux
extlinux:
Installed: 3:4.05+dfsg-6+deb8u1
Candidate: 3:4.05+dfsg-6+deb8u1
Version table:
*** 3:4.05+dfsg-6+deb8u1 0
500 http://us.archive.ubuntu.com/ubuntu/ trusty/universe amd64 Packages
100 /var/lib/dpkg/status

3 ответа3

2

Итак, как вы и хотели, вот абсолютные минимальные шаги для установки extlinux:

sudo apt-get install extlinux

sudo extlinux --install /boot/extlinux

И это сделал это. Не могу поверить, но это сработало. Итак, вот дополнительная информация: Моя система (uname)

3.13.0-24-generic (Kernel)
#46-Ubuntu SMP .. (Kernel version)
i686 (Processor and machine)

И

apt-cache policy extlinux
extlinux:
  Installed: 3:4.05+dfsg-6+deb8u1
  Candidate: 3:4.05+dfsg-6+deb8u1
  Version table:
 *** 3:4.05+dfsg-6+deb8u1 0
        500 http://de.archive.ubuntu.com/ubuntu/ trusty/universe i368 Packages
        100 /var/lib/dpkg/status

/Boot/extlinux/extlinux.conf

default l0
prompt 1
timeout 50

include themes/debian/theme.cfg

Я думаю, что это так же, как у вас. И я не думаю, что тема Debian будет меняться. Так вот мой конкретный linux.cfg:

label l0
    menu label Ubuntu GNU/Linux, kernel 3.13.0-24-generic
    linux /vmlinuz-3.13.0-24-generic
    append initrd=/initrd.img-3.13.0-24-generic root=UUID=61e460f5-878a-4cff-be9c-12239153d59c ro quiet

label l0r
    menu label Ubuntu GNU/Linux, kernel 3.13.0-24-generic (recovery mode)
    linux /vmlinuz-3.13.0-24-generic
    append initrd=/initrd.img-3.13.0-24-generic root=UUID=61e460f5-878a-4cff-be9c-12239153d59c ro single
    text help
    This option boots the system into recovery mode (single-user)
    endtext

Хорошо, вот и все.Но вот еще кое-что интересное, что я узнал о процессе загрузки: я создал "myvmlinuz" и «myinitrd.img» как копии исходных файлов в /boot и отредактировал файл extlinux.conf следующим образом:

default test
prompt 1
timeout 50

#include themes/debian/theme.cfg
LABEL test
    MENU Test entry
    LINUX /myvmlinuz
    APPEND initrd=/myinitrd.img root=UUID=61e460f5-878a-4cff-be9c-12239153d59c

Насколько я понимаю, это минимальная конфигурация, чтобы система работала. Ботинки хорошо для меня. Обратите внимание, что / - это корневая папка раздела, помеченная как загрузочная с extlinux в этих файлах.

APPEND initrd=/myinitrd.img root=/dev/sda5

тоже работал. Я использовал разные разделы на одном диске для / (sda5), / boot (sda1), swap и так далее. Я создал / boot как основной раздел, не знаю, важно ли это. Может быть, вы можете попробовать

cat /usr/lib/extlinux/mbr.bin > /dev/sda

если личинка сделала что-то плохое.

Ну, я надеюсь, что вы запустите его, пожалуйста, дайте мне знать, если это работает!

1

Это разбивка стандартной "ручной" установки для MBR:

Предполагается, что вы устанавливаете Extlinux на дисковое устройство /dev/sda:

  • Установите стандартную MBR на диск. Эта MBR будет искать и пытаться загрузить любой раздел, имеющий флаг "boot".
    dd /usr/lib/extlinux/mbr.bin of=/dev/sda bs=440 count=1
  • Установите флаг загрузки на раздел, который будет содержать EXTLINUX
  • Скопируйте файлы extlinux и использованные модули в каталог (или корень) загрузочного раздела. Давайте использовать /boot/ , для примера.
  • Установите загрузчик на этот раздел и укажите его в каталоге syslinux.
    extlinux --install /boot/
  • Убедитесь, что конфигурация правильная.

Поэтому при загрузке MBR загрузит загрузчик загрузочного раздела, который запустит EXTLINUX, который будет читать extlinux.conf.

Некоторые шаги могут быть излишними, но я думаю, что было бы неплохо написать шаги, чтобы иметь представление о том, что происходит.

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

1

Вот хорошее руководство по настройке автоматического обновления extlinux в Debian, которое должно быть именно тем, что вы ищете:

Несколько дней назад я писал о том, как настроить и настроить extlinux (syslinux) в качестве загрузчика. Но в Debian или Ubuntu, если вы внесете изменения в такие файлы, как /boot/extlinux/extlinux.conf, они будут перезаписаны.

Файлы конфигурации восстанавливаются программой extlinux-update, которая запускается автоматически при каждом обновлении ядра. (В частности, он запускается из сценария postinst пакета linux-base: вы можете увидеть его в /var/lib/dpkg/info/linux-base.postinst.)

[...]

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .