Как использовать Syslinux для цепной загрузки установки Ubuntu?

3996
Noverull

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

Я скачал Ubuntu 13.04 с официального сайта и извлек файлы в папку ubuntu\на USB-накопителе (Z: например). Так что файлы сейчас вZ:\ubuntu\

Перед этим я скачал Syslinux 5.10 (в 6.00 есть ошибки) и использовал его для установки загрузочного кода на USB-накопитель с помощью этой команды:

syslinux.exe --mbr --active --directory / boot / syslinux / --install Z:

Затем я скопировал chain.c32 и добавил необходимые библиотеки и Z:\boot\syslinuxдобавил их syslinux.cfg(не важная часть игнорируется):

COM32 chain.c32

ПРИЛОЖИТЬ isolinux = / ubuntu / isolinux / isolinux.cfg

Syslinux загрузился успешно, но не смог загрузить Ubuntu, сказав:

Err: опция 'maps' требует сектора '', но я не знал, что это значит.

Затем я попытался загрузить конфигурацию isolinux в Ubuntu, используя:

config /ubuntu/isolinux/isolinux.cfg / ubuntu

Но только получил сообщение, говорящее:

Загрузка gfxboot ... Ошибка: Нет такого файла или каталога

Я попробовал еще раз с:

config /ubuntu/isolinux/isolinux.cfg / ubuntu / isolinux /

И он сказал:

Не удалось загрузить файл COM32 gfxboot.c32

Но я мог видеть этикетки с [TAB]ключом:

загрузки:

live live-установка проверьте memtest hd mainmenu help

Поэтому я попытался загрузить Ubuntu из командной строки:

boot: live

И это показало, что:

Не удалось загрузить / casper / vmlinuz: нет такого файла или каталога

Я думаю, что Syslinux распознает Z:\как корневой каталог /, нет Z:\ubuntu\, поэтому он не смог загрузить vmlinz. Поэтому я переместил файлы Z:\и перезагрузился. Хотя syslinux все еще не смог загрузить gfxboot, но я успешно загрузился в Ubuntu с

config /isolinux/isolinux.cfg / isolinux /

boot: live

Я не понимаю, почему он не мог загрузить gfxboot.c32, когда он читал isolinux правильно настроить. Может быть, syslinux, который я использую, и isolinux, который использует Ubuntu, не совпадают, и загрузочный код и gfxboot не совместимы.

В Syslinux Wiki упоминается, что CONFIG может перезапустить загрузчик, используя другой файл конфигурации, и установить новый домашний каталог, используя:

CONFIG /path/to/cfg/file/configfile.cfg / path / to / new / base / dir

Я следовал руководству, но подал, чтобы Syslinux стал Z:\ubuntu\корневым каталогом. Может быть, я неправильно понял это руководство.

Поэтому мой вопрос: как поместить Ubuntu или другую операционную систему в отдельную папку и правильно настроить syslinux для установки direcotry, где Ubuntu или другая ОС является корневым каталогом, чтобы я мог успешно загрузить ОС?

4
У меня нет большого опыта работы с syslinux, но не задумывались ли вы о том, чтобы посмотреть [arch wiki] (https://wiki.archlinux.org/index.php/Syslinux)? Большая часть документации актуальна и для других дистрибутивов. Szymon Szydełko 10 лет назад 0
Кстати, какой файловой системой является `Z:`? NTFS? Я подозреваю, что это из-за `\\` Szymon Szydełko 10 лет назад 0
@ SzymonSzydełko спасибо за ваш быстрый ответ. Syslinux поддерживает только файловую систему FAT, поэтому файловая система Z: FAT (32). Я быстро взглянул на Arch Wiki, кажется, что там нет нужной мне информации. Noverull 10 лет назад 0
@ SzymonSzydełko `Я подозреваю, что это из-за '\'`. Что вы имеете в виду? Noverull 10 лет назад 0
Вы хотите поставить Ubuntu на диск FAT-32? Szymon Szydełko 10 лет назад 0
@ SzymonSzydełko Нет. Я просто хочу использовать мою USB-флешку в качестве CD. Установочный диск Ubuntu Для загрузки используется isolinux, а Syslinux может загружать isolinux. Это означает, что я могу использовать Syslinux для загрузки установочного диска Ubuntu, чтобы установить Ubuntu без привода CD / DVD. Noverull 10 лет назад 0
Вы не можете просто `dd` Ubuntu образ на USB? Szymon Szydełko 10 лет назад 0
@ SzymonSzydełko Да, я мог. Но это сделает мою флешку непригодной для использования. Я хочу использовать его для установки Ubuntu (даже других ОС) и в то же время для хранения программного обеспечения, документов или чего-то еще. Noverull 10 лет назад 0
@ SzymonSzydełko Нет. Я хочу использовать USB-накопитель для установки Ubuntu на ПК. Syslinux настолько мощен, что я мог установить Ubuntu, Fedora, Arch и даже Windows только с одной флешки. Кроме того, я также могу установить крошечный Linux на USB-накопитель, чтобы загружать его везде. Дд тоже мощный, но он не может делать такие вещи. Noverull 10 лет назад 0

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

1
Asavar Tzeth

I do not know if this is relevant anymore, but I am having the same issues and am still playing around with it. I have had some success, which I wish to share.

First of all, since I am trying to achieve the same thing I knew right away what he is trying to achieve. He is trying to make a multi-boot usb stick for installing several Linux distros.

To integrate each OS and make updates easier it thus makes sense to try and load the boot loader of each distro, as if it was alone on the filesystem. Thus he tried to chainload their isolinux setup (that comes with the .iso). I too tried this, but I have not had any luck yet.

The only workaround I found (only tested with netboot iso) is to use the method of just loading the new configuration (in this case /path/to/distro/isolinux.cfg), using CONFIG statement. Only, in this case that got some errors so I tried its child config "menu.cfg". That skipped the Ubuntu boot menu, but it did load the Ubuntu installer successfully.

Remember that you also need to specify the new home either on the CONFIG line or using APPEND bellow.

Lastly some comments on the question. When it comes to PATH (Z:) is irrelevant here, since when you are actually running from the USB stick you are not using Windows and UNIX rules applies. So only enter the path the UNIX way /xxx/zzz. For example "I think Syslinux recognizes Z:\ as root directory /" makes no sense, because /=root, in Windows (drive letter+)\ (\=root).

Since you do have the exact same goal and issues as myself I will share any progress I have in the future.

EDIT: Here is the answer that most probably will solve everything.

The simple fact you have to remember is that the COM32 files is incompatible between different versions of SYSLINUX/ISOLINUX. SYSLINUX & ISOLINUX themselves are compatible with each others.

On the Ubuntu Netboot.iso only one COM32 file is used, vesamenu.c32. I simply replaced this with the one from my main syslinux install on the usb (/boot/syslinux/vesamenu.c32).

Then simply point your boot menu to the file that would otherwise start the OS install (/boot/ubuntu/isolinux.cfg). Use CONFIG for this & it will just magically work. No more "Could not load vesamenu.c32".

Привет, спасибо, что поделились. Я поместил файлы Ubuntu 14.04 в Z: \ ubuntu \ и попытался использовать CONFIG /ubuntu/isolinux/isolinux.cfg / ubuntu / isolinux / для загрузки конфигурации и загрузки Ubuntu, введя `live`, но сказал /casper/vmlinuz.efi не найден. Нет проблем, когда файлы были в Z: \. Я не нахожу способа сделать это (поместите файлы в Z: \ ubuntu \ и успешно загрузите Ubuntu) без изменения ubuntu / isolinux / txt.cfg. Можете ли вы подробно описать ваши обстоятельства? Я не понимаю, почему есть Ubuntu / в / boot / Noverull 9 лет назад 0
-1
Szymon Szydełko

Хорошо, после сбора фактов и перечитывания вопроса и нашего обсуждения: вы не можете установить Операционную систему в «папку» (то есть вы не можете установить Linux в папку типа /ubuntu/, you need to install it to/ folder). Linuxes want a full featured partition: they need to put/ usr ,/ var` в корне то, что они видят как файловую систему.

Кроме того, Linux не может быть установлен на FAT-32. В этой файловой системе отсутствуют символические ссылки и некоторые другие средства, которые являются основой работы Linux.

Вам нужна ext3 / 4, xfs или другая поддерживаемая реальная файловая система. Тем не менее, вы можете просто установить Ubuntu на USB как на любом обычном жестком диске - просто настройте: раздел fat32 или ext2 для boot и образа ядра, и ext4 для операционной системы. Вы сможете apt-getпрограммировать, сохранять документы и еще много чего.

Извините за мой плохо выраженный (и за мой плохой английский). Да, я собираюсь установить Linux Ditro на мою флешку, и если бы я это сделал, я бы следовал вашему руководству. Но это мой дальнейший план. Canonical предоставляет образ ISO для записи на компакт-диск, с помощью которого они могут установить Ubuntu. Я называю ISO образ `установкой`. Я хочу установить Ubuntu, но не хочу записывать его на CD. И Syslinux Позволяет мне установить Ubuntu на USB-накопитель и загрузить его. И я не хочу делать USB-флешку непригодной для использования. И я хочу поместить установку Ubuntu в папку. И теперь у меня проблемы. Noverull 10 лет назад 0
Вы хотите иметь одновременно и установщик Ubuntu, и установку на одной и той же флешке? Если это так, попробуйте что-то вроде этого: создайте три раздела на диске: 1. ext2 и используйте его как `/ boot /` from ... 2. ext4, на котором установите нормальный ubuntu / другой Linux по вашему выбору 3. здесь, `dd `install` .iso` и убедитесь, что он загружен из первого раздела. немного хакерский, но это лучшее, что я могу придумать Szymon Szydełko 10 лет назад 0
Извините за то, что я снова плохо выражаюсь. Я имею в виду установщик здесь. Лучше сохранить один раздел, поскольку Windows не может распознать более одного раздела. И я хочу поместить установщик Ubuntu в папку. Вам может быть любопытно, почему я должен поместить все файлы в одну папку. Это потому, что если бы я сделал это, я мог бы сделать то же самое с установщиком другой ОС. Просто поместите разные установщики в разные папки. Тогда я мог выбрать, какой из них загружать, когда подключал USB-накопитель. И это легко добавить и удалить один. Я помню, я когда-либо успешно делал такое раньше. Noverull 10 лет назад 0