Как загрузить Linux с помощью extlinux
РЕДАКТИРОВАТЬ: просто добавив мои два цента после того, как этот вопрос становится "популярным". Я был большим поклонником grub
потому что он был в состоянии загрузить все, что я использовал. Однако когда grub2
пришел, мне очень не нравится, потому что это
- сам по себе огромный
- оставь кучу мусора на моем
/boot
папка, что 99,9% для меня бесполезны - "расширенный" синтаксис слишком сложен для меня
- попробуйте загрузить UEFI, используя
grub2
действительно королевская пита - Я был в состоянии использовать
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
файл напрямую. However, there is a big warning inside it that discourages me doing so:
## /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
in all sorts of ways a gazillion time but the file still remains the same. The problem is, this file won't boot anything!
If I edit it myself, and run extlinux-update
again, then BOOM, it gets back to the above boot-nothing version again.
Anyone knows how to properly setup extlinux under Ubuntu to boot it (without directly editing extlinux.conf)?
This is the extlinux from latest Ubuntu Trusty BTW:
% 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 ответа
Итак, как вы и хотели, вот абсолютные минимальные шаги для установки 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
если личинка сделала что-то плохое.
Ну, я надеюсь, что вы запустите его, пожалуйста, дайте мне знать, если это работает!
Это разбивка стандартной "ручной" установки для 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. Вот как должно быть программное обеспечение. Я действительно могу знать и понимать, что происходит, и с помощью этого я узнал что-то новое о компьютерах.
Вот хорошее руководство по настройке автоматического обновления extlinux в Debian, которое должно быть именно тем, что вы ищете:
Несколько дней назад я писал о том, как настроить и настроить extlinux (syslinux) в качестве загрузчика. Но в Debian или Ubuntu, если вы внесете изменения в файлы, такие как /boot/extlinux/extlinux.conf, они будут перезаписаны.
Файлы конфигурации восстанавливаются программой extlinux-update, которая запускается автоматически при каждом обновлении ядра. (В частности, он запускается из сценария postinst пакета linux-base: вы можете увидеть его в /var/lib/dpkg/info/linux-base.postinst.)
[...]