Как загрузить Linux с помощью extlinux

6636
xpt

РЕДАКТИРОВАТЬ: Просто добавив мои два цента после того, как этот вопрос становится "популярным". Я был большим поклонником, 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
Вы прошли через все шаги, упомянутые здесь http://edoceo.com/howto/extlinux? Редактирование основного файла конфигурации не должно быть проблемой, чтобы немного поэкспериментировать. Насколько я знаю по grub, я думаю, что в некоторых каталогах есть файлы (может быть, где-то в / etc?), Которые содержат инструкции, что нужно сделать в этом главном файле конфигурации, и выполнение команды update применяет эти изменения. Конечно, тогда в вашем случае файл такой же, как и раньше. Так что вам лучше отыскать эти файлы и отредактировать их (если они существуют, просто предположение) ju.kreber 10 лет назад 0
Хорошая ссылка / информация. Благодарю. К сожалению, это также относится к категории «редактирование файла« extlinux.conf` напрямую », что мало помогает в моей ситуации. xpt 10 лет назад 0
Ну, тогда, пожалуйста, опишите вашу проблему более точно. Что ты уже пробовал? Вы обновили MBR? Все ли файлы загрузчика присутствуют в каталоге / boot / extlinux? Затем настройте файл конфигурации для загрузки ядра. Взгляните на это: https://wiki.archlinux.org/index.php/syslinux#Configuration. Конечно, вам нужно указать extlinux, какое ядро ​​и initrd загружать. И, пожалуйста, укажите, насколько далеко загружается система. Вы видите Promt? Или сообщение типа "операционная система не найдена"? ju.kreber 10 лет назад 0
Кстати, если вы скажете «о нет, это относится к категории« редактирование файла напрямую »- так что это мне не поможет», вы никогда не получите результат. Вы должны попытаться понять, что вы делаете, а не только делать это. Если ваши попытки отредактировать этот файл не увенчались успехом, вам лучше попытаться понять, почему это не удалось, чем сказать, что это однозначно не поможет вам. И, насколько я понимаю, это поможет вам. Потому что вы не сказали своему загрузчику, что он будет загружать. Он не может угадать, где находится ваше ядро. Вы можете запустить скрипт «всякими способами на миллион времени», и это не изменит этого. ju.kreber 10 лет назад 0
* «Затем настройте файл конфигурации для загрузки ядра. Взгляните на это: wiki.archlinux.org/index.php/syslinux#Configuration. Конечно, вам нужно сообщить extlinux, какое ядро ​​и initrd загружать» * Я продолжаю спрашивать, где мне делать настройку, а вы продолжаете ссылаться на редактирование файла extlinux.conf напрямую. Как я объяснил в OP, такая практика * настоятельно не рекомендуется *, потому что внутри нее есть * большое предупреждение *, и редактирование исчезнет в любой момент. Если вы хотите ответить на мой вопрос, то, пожалуйста, хотя бы попытайтесь понять, что я спрашиваю. xpt 10 лет назад 0
* «И, пожалуйста, укажите, как далеко загружается система. Вы видите подсказку? Или сообщение типа« операционная система не найдена »? * Если вы знаете, как писать extlinux.conf, то вы должны хотя бы знать, какой симптом потому что это довольно очевидно. Пожалуйста, поймите, что это не форум, который поощряет участие. Я ценю, что вы пытаетесь помочь, но, пожалуйста, поймите, что это сайт вопросов и ответов. Он не для длинных назад и для обсуждения, это для вопросов быть отвеченным. xpt 10 лет назад 0
Если вы знаете, как можно вызвать `extlinux-update`, тогда вы будете знать, что вы сказали, ответ, содержащий *" Если ваши попытки редактирования этого файла не увенчались успехом, вам лучше попытаться понять, почему он не удался «*, это совершенно неправильно и совершенно не нужно. Это конец обсуждения. Я не хочу спорить с тобой дальше. xpt 10 лет назад 0
Я не хочу с вами спорить, я серьезно стараюсь помочь вам решить эту проблему. Возможно, некоторые комментарии были написаны немного резкими, извините за это. Но, пожалуйста, хотя бы попытайтесь ответить на то, что я сказал. Но вы правы, это не форум, достаточно об этом. Я только что установил среду extlinux с Ubuntu, и она отлично работает для меня. Я следовал инструкциям здесь http://shallowsky.com/linux/extlinux.html и здесь http://manpages.ubuntu.com/manpages/natty/man8/extlinux-update.8.html. Вторая ссылка описывает, как настроить extlinux _ без непосредственного редактирования основного файла конфигурации. ju.kreber 10 лет назад 0
Поэтому, пожалуйста, расскажите нам, какие шаги вы прошли, по сравнению с первой ссылкой в ​​моем последнем комментарии. И, пожалуйста, расскажите нам, как далеко ваша система загружается в настоящее время. ju.kreber 10 лет назад 0
Пожалуйста, также предоставьте некоторую информацию о вашей системе: ваши диски и ваши разделы и их формат. Последняя строка файла extlinux.cfg относится к конфигурации с меню в стиле debian. Чтобы найти проблему, нам было бы легче понять ее, если вы закомментировали последнюю строку и вручную добавили конфигурацию ядра (хотя есть предупреждение). Есть ли файл linux.cfg в вашем каталоге / boot / extlinux? Если так, что написано в нем? ju.kreber 10 лет назад 0
* «Я только что установил среду extlinux с Ubuntu, и она прекрасно работает для меня» * О, большое спасибо за попытку помочь мне. Извините, я не был в хорошем режиме прошлой ночью. * «Вторая ссылка описывает, как настроить extlinux без прямого редактирования основного файла конфигурации» *, вы имеете в виду подстройку файла / etc / default / extlinux, верно? Да, я сделал. * «Есть ли файл linux.cfg в вашем каталоге / boot / extlinux?» * Да, и его содержимое корректно. Итак, позвольте мне спросить вас вместо этого: вы касались файла /boot/extlinux/extlinux.conf после запуска extlinux-update, чтобы он работал, или он просто работает? xpt 10 лет назад 0
Нет проблем. Да, я имею в виду именно это. Хорошо. Нет, я просто не сработал. Хорошо, если его содержимое правильное, это означает, что ядро ​​и имя initrd ссылаются на существующие файлы _и_ у вас есть root = / dev / whats или root = UUID = what в приложении? Итак, что произойдет, если вы запишите эти данные непосредственно в файл extlinux.conf? Я предполагаю, что ваша ошибка в том, что вы попали в boot: promt, и он не может найти ядро? ju.kreber 10 лет назад 0
Спасибо за ответ. Это становится интересным. Таким образом, вы не трогали файл /boot/extlinux/extlinux.conf, и он просто работал. Интересно. Хорошо, тогда давайте сделаем это. Ответьте на вопрос и перечислите минимальные шаги, которые вы предприняли, чтобы заставить его работать, также включите всю необходимую информацию, например, `cat / boot / extlinux / extlinux.conf` и` apt-cache policy extlinux`. Я приму это как ответ. Спасибо! xpt 10 лет назад 0

3 ответа на вопрос

2
ju.kreber

Итак, как вы и хотели, вот абсолютные минимальные шаги для установки 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) Исходя из grub, у меня было эмпирическое мнение, что после запуска extlinux-update что-то случится с файлом extlinux.conf, точно так же, как ваш первый ответ * "Как я знаю из grub i Полагаю, в некоторых каталогах есть файлы (возможно, где-то в / etc?), которые содержат инструкции, что следует сделать в этом главном файле конфигурации, и выполнение команды update применяет эти изменения. "* xpt 10 лет назад 0
Второе замешательство для меня) В моем Ubuntu 13.10 у меня есть `include linux.cfg` и т. Д. В` extlinux.conf`; где в новой версии Ubuntu 14.04 они отсутствуют, и я подумал, что extlinux-update вернет их. xpt 10 лет назад 0
Итак, вы отредактировали файл `extlinux.conf`, чтобы он содержал минимальную конфигурацию, чтобы система работала. Это на самом деле моя конечная цель, потому что мне не нравится, когда extlinux каждый раз перечисляет две записи для одной и той же версии ядра, и я тоже хочу упростить его. Но что произойдет после того, как вы выполните `extlinux-update` после редактирования? xpt 10 лет назад 0
1
tst

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

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

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

[...]

Это на самом деле не отвечает на вопрос автора. Учебное пособие не очень полезно, так как оно добавляет очень мало того, что не было указано в существующем ответе Ramhound 8 лет назад 2
Это довольно полезная информация. ОП также упомянул, что он не хочет редактировать файл конфигурации напрямую. Так что это может решить его проблему. Rolf 6 лет назад 0
1
Rolf

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

  • Установите стандартную 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. Вот как должно быть программное обеспечение. Я действительно могу знать и понимать, что происходит, и с помощью этого я узнал что-то новое о компьютерах.

Хороший Рольф, спасибо. Так что вам тоже не нужно настраивать `/ boot / extlinux / extlinux.conf`? Каково содержимое вашего файла `/ boot / extlinux / extlinux.conf`? xpt 6 лет назад 0
Добро пожаловать. В моем случае я сделал выборочную установку и отредактировал файл conf. Для этого есть ссылка на сайт extlinux. Однако в этом случае вы должны обновлять файл conf каждый раз, когда обновляете свое ядро. Поэтому лучше использовать автоматизированный способ, если таковой имеется. Я еще недостаточно изучил это. Rolf 6 лет назад 0

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