- Вопрос или проблема
- Ответ или решение
- Проблема "Невозможно найти носитель, содержащий файловую систему Live" в Ubuntu 24.04: подробное руководство по кастомизации LiveCD
- Введение
- Причины ошибки
- Решения и шаги по устранению
- 1. Проверка файловой системы
- 2. Правильная установка файловой системы
- 3. Корректная сборка ISO-образа
- 4. Проверка на виртуальной машине
- Заключение
Вопрос или проблема
Я работаю над скриптом для абстракции создания ремиксов Ubuntu 24.04, аналогично Cubic. Команды, которые я использую, изложены ниже, и полученный ISO едва загружается в VirtualBox [все, что я создал, не прошло мимо ошибки "Невозможно найти среду, содержащую файловую систему live"]. Тем, кто создает кастомные ISO Ubuntu после 22.04 в эпоху post-isolinux, есть какие-либо предложения? Эти команды должны быть относительно простыми (учитывая, что я еще не пытался модифицировать minimal.squashfs):
cd ~/Desktop
sudo mkdir /mnt/iso
sudo mount -o loop ubuntu-24.04-desktop-amd64.iso /mnt/iso
mkdir ~/custom-ubuntu
cp -r /mnt/iso/* ~/custom-ubuntu/
sudo umount /mnt/iso
cd ~/custom-ubuntu
chmod +w -R .
cd ~/custom-ubuntu/casper
mkdir extract
sudo unsquashfs -d extract minimal.squashfs
sudo chroot extract glib-compile-schemas /usr/share/glib-2.0/schemas/
sudo rm minimal.squashfs
sudo mksquashfs extract minimal.squashfs -comp xz -e boot
sudo rm -rf extract
sudo sed -i "s/^[0-9] ./$(sudo du -sx –block-size=1 extract | cut -f1) minimal.squashfs/" filesystem.size
cd ~/Desktop
orig=ubuntu-24.04-desktop-amd64.iso
mbr=ubuntu-mbr.img
efi=ubuntu-efi.img
dd if="$orig" bs=1 count=446 of="$mbr"
skip=$(fdisk -l "$orig" | fgrep ‘.iso2 ‘ | awk ‘{print $2}’)
size=$(fdisk -l "$orig" | fgrep ‘.iso2 ‘ | awk ‘{print $4}’)
dd if="$orig" bs=512 skip="$skip" count="$size" of="$efi"
new=~/Desktop/ubuntu-custom.iso
disk_title="Ubuntu Custom"
sudo xorriso -as mkisofs \
-r -V "$disk_title" -J -joliet-long -l \
-iso-level 3 \
-partition_offset 16 \
–grub2-mbr "$mbr" \
–mbr-force-bootable \
-append_partition 2 0xEF "$efi" \
-appended_part_as_gpt \
-c /boot.catalog \
-b /boot/grub/i386-pc/eltorito.img \
-no-emul-boot -boot-load-size 4 -boot-info-table –grub2-boot-info \
-eltorito-alt-boot \
-e ‘–interval:appended_partition_2:all::’ \
-no-emul-boot \
-o "$new" \
~/custom-ubuntu
Ответ или решение
Проблема "Невозможно найти носитель, содержащий файловую систему Live" в Ubuntu 24.04: подробное руководство по кастомизации LiveCD
Введение
Кастомизация ISO-образов Ubuntu — это важная задача для IT-специалистов, желающих создать собственные версии операционной системы, адаптированные под конкретные нужды пользователей. Однако, по мере того как версии Ubuntu обновляются, могут возникать сложности, например, ошибка "Невозможно найти носитель, содержащий файловую систему Live". В данном материале мы разберем возможные причины возникновения этой ошибки и предложим решения на основе вашего сценария.
Причины ошибки
Ошибка "Unable to find a medium containing a live file system" часто возникает из-за неправильной структуры образа или отсутствия необходимых файлов, которые либо были удалены, либо неправильно перенастроены. В вашем сценарии очевидная проблема может возникать в следующих областях:
-
Коэффициенты и параметры команд: Неправильное указание параметров при создании ISO может привести к тому, что загрузчик не сможет обнаружить файловую систему.
-
Проблемы с файловой системой: Если минимальная файловая система (
minimal.squashfs
) была повреждена или неправильно собрана, это может также привести к ошибке. -
Отсутствующие заголовки: Некорректные заголовки ISO-образа могут препятствовать правильной интерпретации структуры файловой системы.
Решения и шаги по устранению
1. Проверка файловой системы
Убедитесь, что minimal.squashfs
корректно извлекается и собирается. Вам следует выполнить команды:
sudo unsquashfs -d extract minimal.squashfs
sudo chroot extract glib-compile-schemas /usr/share/glib-2.0/schemas/
Убедитесь, что команды проходят успешно, и в процессе нет сообщений об ошибках. Обратите внимание на возможные проблемы с правами доступа.
2. Правильная установка файловой системы
При создании нового minimal.squashfs
рекомендую использовать следующие параметры:
sudo mksquashfs extract minimal.squashfs -comp xz -no-duplicates -e boot
Проверка и исключение дубликатов может помочь устранить потенциальные проблемы с неявными конфликтами.
3. Корректная сборка ISO-образа
Обратите внимание на параметры, используемые при создании вашего образа с помощью xorriso
и убедитесь, что все разделы правильно прописаны:
sudo xorriso -as mkisofs \
-r -V "$disk_title" -J -joliet-long -l \
-iso-level 3 \
-partition_offset 16 \
--grub2-mbr "$mbr" \
-append_partition 2 0xEF "$efi" \
-appended_part_as_gpt \
-c /boot.catalog \
-b /boot/grub/i386-pc/eltorito.img \
-no-emul-boot -boot-load-size 4 -boot-info-table \
-eltorito-alt-boot -e '--interval:appended_partition_2:all::' \
-no-emul-boot -o "$new" ~/custom-ubuntu
Здесь ключевыми моментами являются корректных путь к файлам и их доступность в момент исполнения.
4. Проверка на виртуальной машине
По завершению всех вышеуказанных шагов, попробуйте загрузить ISO-образ в VirtualBox. Убедитесь, что параметры виртуальной машины настроены корректно под вашу кастомизацию (Boot Order, Память и т.д.).
Заключение
Кастомизация Ubuntu 24.04 — это процесс, требующий точности и внимательности. Ошибка, связанная с загрузкой файловой системы Live, может быть устранена с помощью описанных выше шагов. Проверяйте каждую часть процесса, чтобы убедиться в правильности настройки. Если вы столкнетесь с дополнительными проблемами, рассмотрите возможность использования других инструментов, таких как Cubic, которые могут упростить задачу создания кастомизированных ISO.
Следуя данному руководству и рекомендациям, вы сможете повысить успешность своего проекта по созданию пользовательских образов Ubuntu.