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

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

Я скачал 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, который я использую, и Ubuntu, использующий isolinux, не совпадают, и загрузочный код и gfxboot не совместимы.

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

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

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

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

2 ответа

Я не знаю, относится ли это больше к делу, но у меня такие же проблемы, и я до сих пор играю с ними. У меня был некоторый успех, которым я хотел бы поделиться.

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

Поэтому для интеграции каждой ОС и упрощения обновлений имеет смысл попытаться загрузить загрузчик каждого дистрибутива, как если бы он был один в файловой системе. Таким образом он попытался загрузить их установку isolinux (которая поставляется с .iso). Я тоже попробовал это, но мне еще не повезло.

Единственный обходной путь, который я нашел (тестировался только с netboot iso), - это использовать метод простой загрузки новой конфигурации (в данном случае /path/to/distro/isolinux.cfg), используя инструкцию CONFIG. Только в этом случае появились ошибки, поэтому я попробовал его дочерний конфиг "menu.cfg". Это пропустило загрузочное меню Ubuntu, но оно успешно загрузило установщик Ubuntu.

Помните, что вам также нужно указать новый дом либо в строке CONFIG, либо с помощью APPEND ниже.

Напоследок несколько комментариев по этому вопросу. Когда дело доходит до PATH (Z :) здесь не имеет значения, поскольку, когда вы на самом деле работаете с USB-накопителя, вы не используете правила Windows и UNIX. Поэтому введите только путь UNIX / xxx / zzz. Например, "Я думаю, что Syslinux распознает Z: \ как корневой каталог /", не имеет смысла, потому что / = root в Windows (буква диска +) \ (\ = root).

Поскольку у вас точно такая же цель и проблемы, как и у меня, я поделюсь любым вашим прогрессом в будущем.

РЕДАКТИРОВАТЬ: Вот ответ, который, скорее всего, решит все.

Вы должны помнить, что файлы COM32 несовместимы между различными версиями SYSLINUX / ISOLINUX. SYSLINUX & ISOLINUX сами по себе совместимы друг с другом.

В Ubuntu Netboot.iso используется только один файл COM32, vesamenu.c32. Я просто заменил его на тот, что был в моей основной установке syslinux на usb (/boot/syslinux/vesamenu.c32).

Затем просто укажите в меню загрузки файл, который в противном случае запустил бы установку ОС (/boot/ubuntu/isolinux.cfg). Используйте CONFIG для этого, и это будет просто волшебно работать. Нет больше "Не удалось загрузить vesamenu.c32".

Хорошо, после сбора фактов и перечитывания вопроса и нашего обсуждения: вы не можете установить операционную систему в "папку" (то есть вы не можете установить 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{manager,loader} и образа ядра, и ext4 для операционной системы. Вы сможете apt-get программы на в, сохранить документы и еще много чего.

Другие вопросы по тегам