it-roy-ru.com

Могу ли я создать Ubuntu ISO из манифеста?

Этот ответ говорит о манифестах ISO - a пример здесь. .

Можно ли создать ISO из файла манифеста, или файл манифеста просто dpkg --get-selections помещен в текстовый файл?

Связанные, Сорта:

13
jrg

Filesystem.manifest генерируется с помощью команды:

dpkg-query -W --showformat='${Package} ${Version}\n' > casper/filesystem.manifest

Синтаксис, таким образом, package_name version, Пример:

 xserver-xorg-video-nouveau  1:0.0.16+git20110411+8378443-1

Формат dpkg --get-selections немного отличается, package_name install

Пример

xserver-xorg-video-nouveau  install 

Таким образом, вы можете использовать файл, возможно, более чем одним способом,

apt-get install -y $(awk '{print $1}' filesystem.manifest)

Честно говоря, после того, как за эти годы было сделано несколько нестандартных iso, есть кривая обучения тому, как это работает. Когда вы понимаете несколько вещей, это не так уж сложно, просто необходимые знания умеренно велики, и единого, актуального источника информации не существует.

Вы используете 2 директории сборки

~/custom - build directory for the iso
~/rootfs - build directory for the root file system.

custom - этот каталог содержит все файлы, которые попадут в окончательный ISO. Он содержит корневую файловую систему, ядро, initramfs и isolinux.

rootfs - этот каталог содержит файловую систему live CD, и вы сжимаете этот каталог (используя mksquashfs) и включаете его на компакт-диск. Вы можете создать это с помощью debootstrap (live D с нуля) или извлечь файловую систему из ubuntu-desktop.iso (настроить live CD). Смотрите подробности в вики-ссылках на Ubuntu ниже.

ключевые моменты

1) Понимание mksquashfs - вы используете mksquashfs для сжатия корневой файловой системы до casper/filesystem.squashfs

Sudo mksquashfs /home/bodhi/rootfs custom/casper/filesystem.squashfs

2) Понимать isolinux - это делает загрузочный iso, а также меню вашего CD (загрузочного). Смотрите Arch Linux Wiki syslinux .

Вы можете использовать grub2 как альтернативу isolinux, но тогда вам нужно будет понять, как работает grub2;). Большинство живых CD все еще используют isolinux.

3) Как сделать initramfs. Initramfs - это вторая файловая система, используемая для загрузки. Часто, когда у вас возникают проблемы (пользовательский образ загрузки не работает, модули ядра не загружаются), и вы не можете понять, почему, глядя на вашу корневую файловую систему, ответ очень вероятен в initramfs.

#extract to a working_directory , I use ~/initrd
cd ~/initrd
lzma -dc -S .lz ../initrd.lz | cpio -imvd --no-absolute-filenames

# Make your edits / adjustments
# Package
cd ~/initrd
find . | cpio --quiet --dereference -o -H newc | lzma -7 > ../custom.initrd.lz

Затем вы перемещаете свой новый файл initrd.lz в каталог пользовательских сборок custom/casper/initrd.lz

4) Каспер. Каспер и сценарии Каспера расположены в 3 местах, и все 3 могут сыграть свою роль. Все они являются скриптами bash, и в какой-то момент вы почти наверняка захотите просмотреть их.

А. Хост - /usr/share/initramfs-tools/scripts/casper

B. корневая файловая система - custom/usr/share/initramfs-tools/scripts/casper

C. в initramfs - см. Каталог/scripts.

Смотрите buntu Man Casper

5) Вы настраиваете пользовательский интерфейс/приложения, например, в /usr/share, /usr/share/gnome*, точные местоположения меняются в зависимости от выпуска, /usr/share/gnome-background-properties/ubuntu-wallpapers.xml является классическим и довольно стандартным для всех версии.

6) Если вы не можете выполнить настройки в /usr/share/, используйте /etc/skel, здесь /etc/skel/.bashrc является классическим, этот файл копируется в ~/.bashrc. Вы можете поместить туда различные файлы confg, для firefox или gnome или чего-то еще, но лучше использовать/usr/share, если это вообще возможно (зависит от настроек).

7) mkisofs - вы используете mkisofs для преобразования вашего каталога сборки в iso

cd ~/custom
Sudo mkisofs -D -r -V "$IMAGE_NAME" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o ../ubuntu-12.04-custom.iso .

8) Стойкость. Вы можете использовать постоянство со многими живыми CD, включая компакт-диск с Ubuntu-Desktop и пользовательский компакт-диск, это реализовано Casper.

A. root - casper будет монтировать раздел или файл, помеченный как casper-rw, как наложение коровы на /. Если вы затем установите пакет или измените конфигурационный файл, изменения сохранятся после перезагрузки.

Используйте это экономно. Если вы обновите все пакеты, это займет много места. Я также считаю, что этот метод иногда глючит.

Б. Домой - Каспер, смонтировав раздел или файл, помеченный aas home-rw, как наложение коровы на/home.

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

Постоянный дом (смените на casper-rw для постоянного /)

# this is a 1 Gb file, increase or decrease the count to make it larger or smaller
dd if=/dev/zero of=home-rw bs=1M count=1000

# make a file system
mkfs.ext4 home-rw
mke2fs 1.41.14 (22-Dec-2010)
home-rw is not a block special device.
Proceed anyway? (y,n) y <-- ANSWER 'y' here

#tune the file system to remove reserved blocks and label it 'home-rw'
tune2fs -m 0 -L home-rw home-rw

Поместите home-rw в/(в корневой каталог раздела) или на флэш-диск (не в подкаталог).

Когда вы загрузите Live CD, нажмите F6 ключ, они Esc, добавьте параметр persistent к параметрам загрузки перед '-'

quiet splash persistent --

Сценарии загрузки Каспера найдут его автоматически.

Смотрите buntu wiki Persistence - На вики-странице Ubuntu обсуждается только casper-rw, но на home-rw есть ссылки в скриптах casper, и он работает так же, только имя было изменено.

Смотрите Этот пост на форумах Ubuntu, чтобы просмотреть скриншот (хотя и с другими вариантами).

C. Вы можете включить сохранение с помощью нескольких графических инструментов, например, unetbootin. Графические инструменты (насколько я знаю) используют casper-rw.

Хорошо, теперь, когда вы все это поймете, эти две страницы станут более понятными

buntu Wiki Live CD с нуля

buntu wiki настраивает live CD

Google

Вам нужно будет гуглить. Вы найдете фрагменты советов по всему Интернету.

Пример: Как изменить заставку Live CD

Debian Live

Теперь, когда вы все это понимаете, используйте сценарии Debian Live . Не позволяйте названию вас обмануть, эти скрипты прекрасно работают на любой системе .deb, включая Mint и Ubuntu.

Установить

Sudo apt-get install live-build

Есть графический интерфейс

Sudo apt-get install live-magic

live-magic

Поймите, что живой магический графический интерфейс может потерпеть неудачу так же, как remastersys и другие графические интерфейсы терпят неудачу. В этом случае вы вернетесь к сценариям live-build (live-magic сгенерирует каталог сборки).

Изучение сценариев live-build и структуры/структуры каталогов занимает некоторое время.

Смотрите Debian Live Manuel Да, это долго, просто работайте через него по одному iso за раз.

Преимущество сценариев live-сборки, когда вы понимаете компоненты live-CD, сценарии автоматизируют более 90% сборки, и внесение изменений - это простое редактирование файла конфигурации (обычно) или иногда сборка initramfs.

Слишком долго

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

Если вы начнете с другого набора инструментов, вернитесь к этому набору инструментов и после нескольких iso вы по достоинству оцените этот набор инструкций;)

Моя кастомная версия 12.04, она поддерживает gma500, только 2d (без 3d) из коробки (в ближайшие несколько дней будет открыт доступ к iso для толпы gma 500).

gma 500

21
Panther