Kann ich eine Ubuntu-ISO aus einem Manifest erstellen?

Antworten:

21

Das filesystem.manifest wird mit dem Befehl generiert:

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

Die Syntax lautet also package_name versionBeispiel:

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

Das Format dpkg --get-selectionsist etwas anders,package_name install

Beispiel

xserver-xorg-video-nouveau  install 

So können Sie die Datei in wahrscheinlich mehr als einer Weise verwenden,

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

Um ehrlich zu sein, nachdem wir im Laufe der Jahre einige benutzerdefinierte ISOs erstellt haben, gibt es eine Lernkurve für die Funktionsweise. Wenn Sie ein paar Dinge erst einmal verstanden haben, ist es nicht allzu schwer, es ist nur das erforderliche Wissen mäßig groß und es gibt keine einzige, aktuelle Informationsquelle.

Sie verwenden 2 Build-Verzeichnisse

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

custom - Dieses Verzeichnis enthält alle Dateien, die auf die endgültige ISO geschrieben werden. Es enthält das Root-Dateisystem, einen Kernel, ein Initramfs und Isolinux.

rootfs - Dieses Verzeichnis enthält das Live-CD-Dateisystem. Sie komprimieren dieses Verzeichnis (mithilfe von mksquashfs) und fügen es der CD hinzu. Sie erstellen dies entweder mit Debootstrap (Live-D von Grund auf) oder extrahieren das Dateisystem aus der Datei ubuntu-desktop.iso (passen Sie eine Live-CD an). Siehe die Ubuntu-Wiki-Links unten für Details.

wichtige Punkte

1) Verstehen Sie mksquashfs - Sie verwenden mksquashfs, um das Root-Dateisystem zu komprimierencasper/filesystem.squashfs

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

2) isolinux verstehen - dies macht das iso bootfähig, ebenso wie das CD (boot) menü. Siehe Arch Linux Wiki syslinux .

Sie können grub2 als Alternative zu isolinux verwenden, aber dann müssen Sie verstehen, wie grub2 funktioniert;). Die meisten Live-CDs verwenden immer noch Isolinux.

3) Wie erstelle ich ein Initramfs? Das initramfs ist ein zweites Dateisystem, das zum Booten verwendet wird. Wenn Sie ein Problem haben (benutzerdefiniertes Boot-Image funktioniert nicht, Kernel-Module werden nicht geladen) und Sie nicht verstehen können, warum Sie Ihr Root-Dateisystem untersuchen, liegt die Antwort sehr wahrscheinlich im 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

Anschließend verschieben Sie die neue Datei initrd.lz in Ihr benutzerdefiniertes Erstellungsverzeichnis. custom/casper/initrd.lz

4) Casper. Casper und die Casper-Skripte befinden sich an drei Orten, und alle drei können eine Rolle spielen. Es sind alles Bash-Skripte, und irgendwann werden Sie sie mit ziemlicher Sicherheit durchsehen wollen.

Ein Gastgeber - /usr/share/initramfs-tools/scripts/casper

B. Root-Dateisystem - Benutzerdefiniert / usr / share / initramfs-tools / scripts / casper

C. im initramfs - Siehe das Verzeichnis / scripts.

Siehe Ubuntu Man Casper

5) Sie nehmen Anpassungen an der Benutzeroberfläche / den Anwendungen vor /usr/share, /usr/share/gnome*z. B. variieren die genauen Positionen mit der Version. Dies /usr/share/gnome-background-properties/ubuntu-wallpapers.xmlist ein klassischer und in allen Versionen recht standardmäßiger Vorgang.

6) Wenn Sie keine Anpassungen vornehmen können /usr/share/, verwenden Sie /etc/skel, hier /etc/skel/.bashrcist ein Klassiker, diese Datei wird nach ~ / .bashrc kopiert. Sie können verschiedene confg-Dateien dort ablegen, für Firefox oder Gnome oder was nicht, aber / usr / share ist besser, wenn überhaupt möglich (variiert je nach Einstellung).

7) mkisofs - Sie verwenden mkisofs, um Ihr Build-Verzeichnis in eine ISO zu konvertieren

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) Ausdauer. Sie können Persistenz mit vielen Live-CDs verwenden, einschließlich der Ubuntu-Desktop-CD und einer benutzerdefinierten CD, die von Casper implementiert wird.

A. root - casper hängt eine Partition oder Datei, die als casper-rwKuh - Overlay gekennzeichnet ist, in / ein. Wenn Sie dann ein Paket installieren oder eine Konfigurationsdatei ändern, bleiben die Änderungen auch nach einem Neustart erhalten.

Gehen Sie sparsam damit um. Wenn Sie alle Pakete aktualisieren, nimmt dies viel Platz in Anspruch. Ich finde auch, dass diese Methode manchmal fehlerhaft ist.

B. Home - Casper mounten eine Partition oder Datei, die home-rwals Kuh-Overlay auf / home gekennzeichnet ist.

Ich bevorzuge dies, da meine Firefox-Lesezeichen und privaten Daten über Stiefel hinweg erhalten bleiben und ich sie zuverlässiger finde.

Dauerhaftes Zuhause (Wechsel zu casper-rw für ein dauerhaftes Zuhause /)

# 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

Legen Sie home-rw/ (im Stammverzeichnis einer Partition) oder auf ein Flash-Laufwerk (nicht in einem Unterverzeichnis).

Wenn Sie die Live-CD starten, F6drücken Sie die Taste, Escund fügen Sie die Option persistentzu den Startparametern vor dem '-' hinzu.

quiet splash persistent --

Die Casper-Boot-Skripte finden dann automatisch einen Mount.

Siehe Ubuntu-Wiki-Persistenz - Auf der Ubuntu-Wiki-Seite wurde nur casper-rw behandelt, aber home-rw wird in den casper-Skripten referenziert und funktioniert genauso, nur der Name wurde geändert.

In diesem Beitrag in den Ubuntu-Foren finden Sie einen Screenshot (allerdings mit verschiedenen Optionen).

C. Sie können die Persistenz mit mehreren grafischen Werkzeugen aktivieren, z. B. beim Beenden des Startvorgangs. Die grafischen Tools werden (soweit ich weiß) verwendet casper-rw.

OK, sobald Sie das alles verstanden haben, werden diese beiden Seiten mehr Sinn ergeben

Ubuntu Wiki Live-CD von Grund auf neu

Ubuntu Wiki anpassen Live-CD

Google

Sie müssen googeln. Überall im Internet finden Sie Ratschläge.

Beispiel: So ändern Sie den Live CD-Begrüßungsbildschirm

Debian Live

Nachdem Sie das alles verstanden haben, verwenden Sie die Debian Live- Skripte. Lassen Sie sich nicht vom Namen täuschen, diese Skripte funktionieren auf jedem .deb-System, einschließlich Mint und Ubuntu.

Installieren

sudo apt-get install live-build

Es gibt eine grafische Oberfläche

sudo apt-get install live-magic

Live-Magie

Verstehen Sie, dass die Live-Magic-GUI möglicherweise nicht funktioniert, genau wie bei Remastersys und anderen GUIs. In diesem Fall greifen Sie auf die Live-Build-Skripte zurück (live-magic generiert ein Build-Verzeichnis).

Das Erlernen der Live-Build-Skripte und des Verzeichnislayouts / der Verzeichnisstruktur dauert eine Weile

Sehen Sie sich das Debian-Live an Manuel Aye, es ist lang, arbeiten Sie es einfach ISO für ISO durch.

Der Vorteil der Live-Build-Skripte: Sobald Sie die Komponenten einer Live-CD verstanden haben, automatisieren die Skripte mehr als 90% des Builds und führen eine Änderung durch, indem Sie (normalerweise) einfach eine Konfigurationsdatei bearbeiten oder manchmal ein Initramfs erstellen.

Zu lang

Wenn Ihnen das zu lang war, atmen Sie tief durch, entspannen Sie sich und arbeiten Sie die Informationen einzeln ab. Ich verspreche, es wird langsam Sinn machen und Sie werden feststellen, dass sich die Zeit lohnt.

Wenn Sie mit einem anderen Werkzeugsatz beginnen, kehren Sie zu diesem Werkzeugsatz zurück, und nach ein paar Iso-Schritten werden Sie diese Anleitung zu schätzen wissen.

Mein kundenspezifischer Build 12.04 unterstützt nur die GMA500, 2D (kein 3D) von Haus aus (wird die ISO in den nächsten Tagen für die GMA500-Crowd öffentlich verfügbar machen).

gma 500

bodhi.zazen
quelle
1
Oh mein. Das ist eine wunderbare Antwort. Ich weiß, was ich heute Abend mache.
jrg
Nett. Wenn dies nicht 40 Stimmen bekommt, sollte niemand sie bekommen;)
Rinzwind
Für alle Interessierten stelle ich einen Respin zur Verfügung. Weitere Informationen und Downloads finden Sie in meinem Blog (auch auf Ubuntu Planet). blog.bodhizazen.net/linux/ubuntu-gma500-live-cd
Panther