4

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

Я скачал 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 или другая ОС является корневым каталогом, чтобы я мог успешно загрузить ОС?

2 ответа2

1

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

Прежде всего, поскольку я пытаюсь достичь того же, я сразу понял, чего он пытается добиться. Он пытается создать мультизагрузочную флешку для установки нескольких дистрибутивов 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".

-1

Хорошо, после сбора фактов и перечитывания вопроса и нашего обсуждения: вы не можете установить Операционную систему в "папку" (то есть вы не можете установить 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 программы, сохранять документы и еще много чего.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .