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

Réponses:

21

Le système de fichiers.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-selectionsest légèrement différent,package_name install

Exemple

xserver-xorg-video-nouveau  install 

Vous pouvez donc utiliser le fichier, probablement plus d'une façon,

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

Pour être honnête, après avoir fait quelques iso personnalisés au fil des ans, il y a une courbe d'apprentissage à la façon dont cela fonctionne. Une fois que vous comprenez certaines choses, ce n'est pas trop difficile, c'est juste que les connaissances requises sont modérément vastes et qu'il n'y a pas de source unique et à jour d'informations.

Vous utilisez 2 répertoires de construction

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

personnalisé - ce répertoire contient tous les fichiers qui iront sur l'iso finale. 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 et vous compressez ce répertoire (à l'aide de mksquashfs) et l'incluez sur le CD. Vous pouvez soit le construire avec debootstrap (live D à partir de zéro), soit extraire le système de fichiers depuis ubuntu-desktop.iso (personnaliser un CD live). Voir les liens wiki ubuntu ci-dessous pour plus de détails.

points clés

1) Comprendre mksquashfs - vous utilisez mksquashfs pour compresser le système de fichiers racine encasper/filesystem.squashfs

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

2) Comprendre isolinux - cela rend l'iso amorçable, ainsi que le menu de votre CD (démarrage). Voir Arch Linux Wiki syslinux .

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

3) Comment faire 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 que vous ne pouvez pas comprendre pourquoi en regardant votre système de fichiers racine, la réponse est très probablement dans les 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, et les 3 peuvent jouer un rôle. Ce sont tous des scripts bash, et à un moment donné, vous voudrez certainement les parcourir.

Un hôte - /usr/share/initramfs-tools/scripts/casper

Système de fichiers racine - personnalisé / usr / share / initramfs-tools / scripts / casper

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

Voir Ubuntu man casper

5) Vous effectuez des personnalisations de l'interface utilisateur / des applications dans /usr/share, /usr/share/gnome*par exemple, les emplacements exacts varient selon la version, /usr/share/gnome-background-properties/ubuntu-wallpapers.xmlest un classique et assez standard entre les versions.

6) Si vous ne pouvez pas faire de personnalisations dans /usr/share/, utilisez /etc/skel, voici /etc/skel/.bashrcun classique, ce fichier est copié dans ~ / .bashrc. Vous pouvez y placer divers fichiers de confg, pour firefox ou gnome ou autre, mais / usr / share est mieux si possible (varie selon le réglage).

7) mkisofs - vous utilisez mkisofs pour convertir votre répertoire de construction en 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 CD live, y compris le cd ubuntu-desktop et un cd personnalisé, ceci est implémenté par casper.

A. root - casper montera une partition ou un fichier étiqueté casper-rwcomme une superposition de vache sur /. Si vous installez ensuite un package ou modifiez un fichier de configuration, les modifications persisteront lors d'un redémarrage.

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

B. Accueil - casper montera une partition ou un fichier étiqueté aas home-rwcomme une superposition de vache sur / home.

Je préfère cela car mes signets Firefox et mes données privées seront conservés sur toutes les bottes et je les trouve plus fiables.

Accueil persistant (changer pour 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

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

Lorsque vous démarrez le CD live, appuyez sur la F6touche, eux Esc, ajoutez l'option persistentaux paramètres de démarrage, devant le '-'

quiet splash persistent --

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

Voir Ubuntu wiki Persistence - La page wiki 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é changé.

Voir cet article sur les forums Ubuntu pour une capture d'écran (mais avec différentes options).

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

OK, maintenant une fois que vous comprenez tout cela, ces deux pages commenceront à avoir plus de sens

Ubuntu wiki live cd à partir de zéro

Ubuntu wiki personnaliser le CD live

Google

Vous aurez besoin de 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 vous laissez pas tromper par le nom, ces scripts fonctionnent très bien sur n'importe quel système .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 graphique en direct peut échouer, tout comme les remastersys et autres interfaces échouent. Dans ce cas, vous revenez aux scripts de construction en direct (live-magic générera un répertoire de construction).

Il faut un certain temps pour apprendre les scripts de construction en direct et la disposition / structure du répertoire

Voir le Debian Live Manuel Aye, il est long, il suffit de le parcourir un iso à la fois.

L'avantage des scripts de construction en direct, une fois que vous comprenez les composants d'un CD en direct, les scripts automatisent plus de 90% de la construction, et apporter une modification est une simple modification dans un fichier de configuration (généralement) ou parfois la construction d'un initramfs.

Trop long

Si cela a été trop long pour vous, respirez profondément, détendez-vous et travaillez à travers les informations une partie à la fois. Je vous promets que cela commencera à avoir un certain sens et 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 iso vous apprécierez cet ensemble d'instructions;)

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

gma 500

bodhi.zazen
la source
1
Oh mon. Ceci est une merveilleuse réponse. Je sais ce que je fais ce soir.
2011
Agréable. Si cela n'obtient pas 40 votes, personne ne devrait les obtenir;)
Rinzwind
Pour toute personne intéressée, je mets à disposition un respin, voir mon blog (il était également sur Ubuntu Planet) pour plus de détails et télécharger. blog.bodhizazen.net/linux/ubuntu-gma500-live-cd
Panther