1

Мне нужно использовать grub-mkrescue для генерации некоторых ISO. Моя основная рабочая среда - на компьютере с Windows 10. Я использую Linux-систему для различных задач.

Мне удалось без проблем установить grub, но мне нужен xorriso, чтобы использовать grub-mkrescue. Когда я делаю sudo apt-get install xorriso я получаю следующую ошибку:

Чтение списков пакетов ... Готово Построение дерева зависимостей Чтение информации о состоянии ... Готово Пакет xorriso недоступен, но на него ссылается другой пакет. Это может означать, что пакет отсутствует, устарел или доступен только из другого источника.

E: Пакет 'xorriso' не имеет кандидата на установку

Это поддерживается?

1 ответ1

0

Создайте статически связанную версию из исходного кода.

Загрузите https://www.gnu.org/software/xorriso/xorriso-1.4.6.tar.gz в каталог, в котором вы хотите создать xorriso

tar xzf xorriso-1.4.6.tar.gz
cd xorriso-1.4.6
touch xorriso/*.info
./configure && make

Я предполагаю, что вам нужны пакеты build-essential и tar .

Команда touch xorriso/*.info устраняет необходимость в программе makeinfo из пакета texinfo которая может возникать в редких случаях из-за неудачной последовательности файлов в xorriso-1.4.6.tar.gz . (Симптомы сбоев см. В комментарии пользователя 3808099, 12 октября, 18:56. Это не может произойти в реальном Debian или Ubuntu, потому что там tar без опции -m восстанавливает временные метки из архива tar.)

Успех должен дать двоичный файл, который запускается

xorriso/xorriso -version

должен сказать что-то вроде

GNU xorriso 1.4.6 : RockRidge filesystem manipulator, libburnia project.
...
There is NO WARRANTY, to the extent permitted by law.

Если это так, то вы можете использовать полный путь к исполняемому двоичному файлу в качестве аргумента опции grub-mkrescue --xorriso .

grub-mkrescue -o grub.iso --xorriso=/...path.../xorriso-1.4.6/xorriso/xorriso prepared_directory

Предполагается, что вы можете переместить исполняемый бинарный файл в любое другое место хранения, если вам это удобнее.



Хотя проблема с сборкой GNU xorriso в подсистеме Win10-Ubuntu не была диагностирована, я добавил следующие инструкции по созданию двоичного файла на реальном Ubuntu без зависимостей ядра Linux, что, вероятно, не позволило xorriso выйти из репозитория Win10-Ubuntu.

Если xorriso/xorriso уже встроен в дерево xorriso-1.4.6 , то сначала удалите все результаты компиляции:

make clean

Создайте конфигурацию, которая не относится к специфическим функциям Linux, и скомпилируйте:

export CFLAGS="-DLibburn_use_sg_dummY"
./configure --disable-libacl --disable-xattr --disable-zlib --disable-libreadline
make

Полученный файл xorriso/xorriso должен быть скопирован в подсистему Win10-Ubuntu. Попробуйте /...path.../xorriso -version ли он начать (то есть найдет ли он необходимые библиотеки).

xorriso собирает и работает на Win10-Ubuntu с «GNU /Linux SG_IO адаптер sg-linux». Но ioctl(SG_IO) или доступ к оптическим дискам, похоже, не реализован. Диски не обнаружены.
Так что, кажется, лучше вызвать компиляцию -DLibburn_use_sg_dummY с «X /Open adapter sg-dummy», которая не зависит от специфики Linux и вообще не пытается работать с оптическими приводами.

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