Как использовать 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
программы на в, сохранить документы и еще много чего.