web-dev-qa-db-fra.com

Puis-je créer un ISO Ubuntu à partir d'un manifeste?

Cette réponse parle des manifestes ISO - un l'exemple est ici. .

Est-il possible de créer une image ISO à partir d'un fichier manifeste, ou le fichier manifeste est-il simplement dpkg --get-selections placé dans un fichier texte?

En relation, en quelque sorte:

13
jrg

Filesystem.manifest est généré avec la commande:

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

La syntaxe est donc package_name version, Exemple:

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

Le format de dpkg --get-selections est légèrement différent, package_name install

Exemple

xserver-xorg-video-nouveau  install 

Donc, vous pouvez utiliser le fichier, probablement dans plus d'une façon,

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

Pour être honnête, après avoir créé quelques ISO sur mesure au fil des ans, il faut apprendre à comprendre comment cela fonctionne. Une fois que vous avez compris certaines choses, ce n’est pas trop difficile, c’est simplement que les connaissances requises sont modérément grandes et qu’il n’existe pas de source d’information unique et à jour.

Vous utilisez 2 répertoires de construction

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

custom - ce répertoire contient tous les fichiers qui iront dans l'iso final. Il contient le système de fichiers racine, un noyau, un initramfs et isolinux.

rootfs - ce répertoire contient le système de fichiers du CD live. Vous compressez ce répertoire (à l'aide de mksquashfs) et l'incluez sur le CD. Soit vous le construisez avec debootstrap (live D à partir de rien) ou vous extrayez le système de fichiers à partir du fichier ubuntu-desktop.iso (personnalisez un live CD). Voir les liens wiki ubuntu ci-dessous pour plus de détails.

points clés

1) Comprenez mksquashfs - vous utilisez mksquashfs pour compresser le système de fichiers racine en casper/filesystem.squashfs

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

2) Comprenez isolinux - cela rend l’iso amorçable, ainsi que le menu de votre CD (boot). Voir Arch Linux Wiki syslinux .

Vous pouvez utiliser grub2 comme alternative à isolinux, mais vous devrez ensuite comprendre comment fonctionne grub2;). La plupart des CD live utilisent encore isolinux.

3) Comment créer un initramfs. Initramfs est un deuxième système de fichiers utilisé pour démarrer. Souvent, lorsque vous rencontrez un problème (l’image de démarrage personnalisée ne fonctionne pas, les modules du noyau ne se chargent pas) et vous ne pouvez pas comprendre pourquoi, en regardant votre système de fichiers racine, la réponse est très probablement dans 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

Vous déplacez ensuite votre nouveau initrd.lz vers votre répertoire de construction personnalisé, custom/casper/initrd.lz

4) casper. Casper et les scripts casper sont situés à 3 endroits différents et peuvent jouer un rôle. Ce sont tous des scripts bash et, à un moment donné, vous voudrez certainement les parcourir.

A. Hôte - /usr/share/initramfs-tools/scripts/casper

B. système de fichiers racine - personnalisé/usr/share/initramfs-tools/scripts/casper

C. dans le initramfs - Voir le répertoire/scripts.

Voir buntu man casper

5) Vous apportez des personnalisations à l'interface utilisateur/aux applications dans /usr/share, /usr/share/gnome* par exemple, les emplacements exacts varient avec la version, /usr/share/gnome-background-properties/ubuntu-wallpapers.xml est un classique et assez standard à travers les versions.

6) Si vous ne pouvez pas effectuer de personnalisation dans /usr/share/, utilisez /etc/skel, ici /etc/skel/.bashrc est un classique, ce fichier est copié dans ~/.bashrc. Vous pouvez y placer divers fichiers de configuration, pour firefox ou gnome ou autre chose, mais/usr/share est préférable dans la mesure du possible (varie en fonction des paramètres).

7) mkisofs - vous utilisez mkisofs pour convertir votre répertoire de construction en fichier 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) Persistance. Vous pouvez utiliser la persistance avec de nombreux live CD, y compris le cd ubuntu-desktop et un cd personnalisé, mis en œuvre par casper.

A. root - casper montera une partition ou un fichier nommé casper-rw comme couche de vache sur /. Si vous installez ensuite un package ou modifiez un fichier de configuration, les modifications seront conservées après un redémarrage.

Utilisez ceci avec parcimonie. Si vous mettez à jour tous les paquets, cela prendra beaucoup d'espace. Je trouve aussi que cette méthode est parfois boguée

B. Home - casper sill monte une partition ou un fichier intitulé aas home-rw comme recouvrement de vache sur/home.

Je préfère ceci car mes marque-pages firefox et mes données privées seront préservés lors de tout démarrage et je les trouve plus fiables.

Persistent home (change en casper-rw pour un/persistant)

# 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

Placez home-rw dans/(dans le répertoire racine d'une partition) ou sur un lecteur flash (pas dans un sous-répertoire).

Lorsque vous démarrez le live CD, appuyez sur le bouton F6 clé, ils Esc, ajoutez l’option persistent aux paramètres d’amorçage, devant le '-'

quiet splash persistent --

Les scripts de démarrage casper trouveront alors un montage automatique.

Voir Persistance du wiki Ubunt - La page wiki d'ubuntu ne traite que de casper-rw, mais home-rw est référencé dans les scripts casper et fonctionne de la même manière, seul le nom a été modifié.

Voir Cet article sur les forums Ubuntu pour une copie d'écran (avec des options différentes).

C. Vous pouvez activer la persistance avec plusieurs des outils graphiques, unetbootin par exemple. Les outils graphiques (autant que je sache) utilisent casper-rw.

OK, maintenant que vous comprenez tout cela, ces deux pages vont commencer à avoir plus de sens

buntu wiki live cd from scratch

buntu wiki personnaliser le live CD

Google

Vous devrez google. Vous trouverez des fragments de conseils partout sur Internet.

Exemple: Comment changer l'écran de démarrage de Live CD

Debian Live

Maintenant que vous comprenez tout cela, utilisez les scripts Debian Live . Ne laissez pas le nom vous tromper, ces scripts fonctionnent parfaitement sur tous les systèmes .deb, y compris Mint et Ubuntu.

À installer

Sudo apt-get install live-build

Il y a une interface graphique

Sudo apt-get install live-magic

live-magic

Comprenez que l’interface live-magic peut échouer, tout comme les remastersys et d’autres échecs. Dans ce cas, vous retournez aux scripts live-build (live-magic générera un répertoire de construction).

Il faut un certain temps pour apprendre les scripts live-build et la structure/structure de répertoire

Voir le Debian Live Manuel Oui, c'est long, travaillez-le un à un à la fois.

L'avantage des scripts live-build, une fois que vous avez compris les composants d'un live CD, les scripts automatisent plus de 90% de la construction, et apporter une modification est une simple modification d'un fichier de configuration (généralement) ou parfois la création d'un initramfs.

Trop long

Si cela vous a pris trop de temps, prenez une profonde respiration, détendez-vous et travaillez bien les informations une par une. Je vous promets que cela commencera à avoir un sens et que vous constaterez que le temps en vaut la peine.

Si vous commencez avec un autre ensemble d’outils, revenez à cet ensemble d’outils et après quelques instants vous apprécierez cet ensemble d’instructions;)

Ma version 12.04 personnalisée, prend en charge le gma500, 2d seulement (pas de 3d) prêt à l'emploi (rendra l'iso disponible publiquement à la foule du gma 500 dans les prochains jours).

gma 500

21
Panther