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

Ответы:

21

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) и включаете его в CD. Вы можете создать это с помощью 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.

Смотрите Ubuntu человек Каспер

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) настойчивость. Вы можете использовать постоянство со многими живыми компакт-дисками, включая компакт-диск с Ubuntu-Desktop и пользовательский компакт-диск, это реализовано Casper.

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

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

Б. Домой - подоконник Каспера смонтировать раздел или файл, помеченный home-rwкак aas как наложение коровы на / 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 --

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

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

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

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

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

Ubuntu Wiki Live CD с нуля

Ubuntu 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

живая магия

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

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

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

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

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

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

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

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

гма 500

бодхи.зазен
источник
1
Боже мой Это прекрасный ответ. Я знаю, что я делаю сегодня вечером.
JRG
Ницца. Если это не получит 40 голосов, никто не должен получать их;)
Rinzwind
Для тех, кто заинтересован, я делаю респин доступным, см. Мой блог (он также был на Ubuntu Planet) для подробностей и загрузки. blog.bodhizazen.net/linux/ubuntu-gma500-live-cd
Пантера