Good to Know Database

Ubuntu 11.04: Ubuntu Live-CD remastern


Wenn Sie die Ubuntu 11.04 Live-CD's um weitere Programme erweitern oder die Standardkonfiguration an Ihre Bedürfnisse anpassen wollen, müssen Sie die Live-CD's remastern. Die folgende Anleitung soll Ihnen zeigen, wie Sie die Ubuntu 11.04 amd64 Live-CD remastern. Wenn Sie die Ubuntu 11.04 i386 Live-CD remastern wollen, müssen Sie nur einige Befehle anpassen.

Zum Remastern einer Ubuntu 11.04 Live-CD benötigen Sie einige Tools welche Sie wie folgt installieren.

georg@ubuntu1104:~$ sudo apt-get install squashfs-tools genisoimage

Falls Sie die Ubuntu 11.04 amd64 Live-CD noch nicht heruntergeladen haben, können Sie diese durch den folgenden Befehl herunterladen.

georg@ubuntu1104:~$ wget http://ftp5.gwdg.de/pub/linux/debian/ubuntu/iso/11.04/ubuntu-11.04-desktop-amd64.iso

Erstellen Sie ein temporäres Arbeitsverzeichnis (hier ~/remastering) und ein Unterverzeichnis für den Inhalt der Live-CD.

georg@ubuntu1104:~$ mkdir -p ~/remastering/livecd

Danach mounten Sie das ISO-Image nach /mnt und kopieren den Inhalt nach ~/remastering/livecd.

georg@ubuntu1104:~$ sudo mount -o loop ubuntu-11.04-desktop-amd64.iso /mnt
georg@ubuntu1104:~$ cp -a /mnt/. ~/remastering/livecd/

Damit Sie als Benutzer Änderungen an den Dateien vornehmen können, müssen Sie die Berechtigungen entsprechend anpassen.

georg@ubuntu1104:~$ sudo chmod -R u+w ~/remastering/livecd/

Anschließend können Sie das ISO-Image wieder aushängen.

georg@ubuntu1104:~$ sudo umount /mnt

Erstellen Sie jetzt ein Verzeichnis in welches anschließend die filesystem.squashfs der Live-CD eingehängt wird.

georg@ubuntu1104:~$ mkdir ~/remastering/oldfilesystem
georg@ubuntu1104:~$ sudo mount -t squashfs -o loop,ro ~/remastering/livecd/casper/filesystem.squashfs ~/remastering/oldfilesystem

Bevor Sie am Live-System Änderungen vornehmen können, müssen Sie das komprimierte Dateisystem entpacken. Das Dateisystem der Ubuntu 11.04 Live-CDs benötigt ca. 2,1 GB. Wenn Sie Dateien oder Programme zum Live-System hinzufügen wollen, müssen Sie berücksichtigen, dass diese zusätzlichen Speicherplatz benötigen. In diesem Beispiel wird deshalb ein ca. 2,5 GB großer Container für das neue Live-System erstellt.

georg@ubuntu1104:~$ sudo dd if=/dev/zero of=~/remastering/newfilesystem.ext2 bs=1M count=2560
2560+0 records in
2560+0 records out
2684354560 bytes (2,7 GB) copied, 46,6119 s, 57,6 MB/s

Danach müssen Sie ein Dateisystem im Container anlegen. Den Hinweis, dass es sich um kein Block-Gerät handelt können Sie übergehen.

georg@ubuntu1104:~$ sudo mke2fs ~/remastering/newfilesystem.ext2
mke2fs 1.41.14 (22-Dec-2010)
/home/georg/remastering/newfilesystem.ext2 ist kein spezielles Block-Gerät.
Trotzdem fortsetzen? (j,n) j
Dateisystem-Label=
OS-Typ: Linux
Blockgröße=4096 (log=2)
Fragmentgröße=4096 (log=2)
Stride=0 Blöcke, Stripebreite=0 Blöcke
163840 Inodes, 655360 Blöcke
32768 Blöcke (5.00%) reserviert für den Superuser
Erster Datenblock=0
Maximale Dateisystem-Blöcke=671088640
20 Blockgruppen
32768 Blöcke pro Gruppe, 32768 Fragmente pro Gruppe
8192 Inodes pro Gruppe
Superblock-Sicherungskopien gespeichert in den Blöcken:
        32768, 98304, 163840, 229376, 294912

Schreibe Inode-Tabellen: erledigt                        
Schreibe Superblöcke und Dateisystem-Accountinginformationen: erledigt

Das Dateisystem wird automatisch nach jeweils 23 Einhäng-Vorgängen bzw.
alle 180 Tage überprüft, je nachdem, was zuerst eintritt. Dies kann durch
tune2fs -c oder -i geändert werden.

Erstellen Sie nun ein weiteres Verzeichnis im Arbeitspfad und hängen den soeben erstellten Container in dieses Verzeichnis ein.

georg@ubuntu1104:~$ mkdir ~/remastering/newfilesystem
georg@ubuntu1104:~$ sudo mount -o loop ~/remastering/newfilesystem.ext2 ~/remastering/newfilesystem

Kopieren Sie jetzt das original Live-System in den Container. Anschließend können Sie das alte Live-System wieder aushängen.

georg@ubuntu1104:~$ sudo cp -a ~/remastering/oldfilesystem/. ~/remastering/newfilesystem/
georg@ubuntu1104:~$ sudo umount ~/remastering/oldfilesystem

Bevor Sie mit chroot das Ubuntu Live-System als Rootsystem aufrufen, sollten Sie die /etc/resolv.conf in das Live-System kopieren. Dadurch können Sie in der Chroot-Umgebung die Namensauflösung nutzen und direkt auf das Netzwerk zugreifen.

georg@ubuntu1104:~$ sudo cp -a /etc/resolv.conf ~/remastering/newfilesystem/etc/

Des Weiteren müssen Sie das Proc-Dateisystem im Live-System einhängen. Das ist dazu notwendig, dass das Live-System auf die Kernel- und Prozesszustände zugreifen kann.

georg@ubuntu1104:~$ sudo mount -t proc -o bind /proc ~/remastering/newfilesystem/proc

Jetzt können Sie mit chroot in das Live-System wechseln.

georg@ubuntu1104:~$ sudo chroot ~/remastering/newfilesystem /bin/bash

Jetzt können Sie die gewünschten Änderungen am Ubuntu Live-System vornehmen. In diesem Beispiel soll zuerst die sources.list angepasst werden, damit der lokale Ubuntu Mirror als Installationsquelle genutzt wird. Bevor diese Änderungen vorgenommen werden, wird eine Sicherheitskopie der Datei erstellt.

root@ubuntu1104:/# cp /etc/apt/sources.list /etc/apt/sources.list.backup

Damit das Live-System Ihren lokalen Ubuntu Mirror nutzt, müssen Sie alle Vorkommen von archive.ubuntu.com und security.ubuntu.com durch den Domainnamen Ihres Servers (hier server.home.lan) ersetzen.

root@ubuntu1104:/# sed -i 's/archive.ubuntu.com/server.home.lan/g' /etc/apt/sources.list
root@ubuntu1104:/# sed -i 's/security.ubuntu.com/server.home.lan/g' /etc/apt/sources.list

Wenn Sie auch die Paketsektionen universe und multiverse aktivieren wollen, rufen Sie zusätzlich den folgenden Befehl auf.

root@ubuntu1104:/# sed -i 's/^# deb/deb/g' /etc/apt/sources.list

Weitere Programme können Sie mit apt-get im Live-System installieren. Durch die folgenden Befehle werden zuerst die lokalen Softwarelisten aktualisiert und anschließend der Chromium Browser installiert.

root@ubuntu1104:/# sudo apt-get update
root@ubuntu1104:/# sudo apt-get install chromium-browser

Zum Entfernen von Programmen aus dem Live-System können Sie ebenfalls apt-get verwenden.

Das Hintergrundbild im Live-System kann mit dem folgenden Befehl gesetzt werden. Falls Sie ein eigenes Bild verwenden wollen, müssen Sie dieses vor dem Wechsel in die Chroot-Umgebung in das Verzeichnis des Live-Systems kopieren. In diesem Beispiel soll das Hintergrundbild Grey_day_by_Drew__.jpg verwendet werden, welches sich bereits im Live-System befindet.

root@ubuntu1104:/# gconftool-2 --direct --config-source xml:readwrite:/etc/gconf/gconf.xml.defaults --type=string --set /desktop/gnome/background/picture_filename /usr/share/backgrounds/Grey_day_by_Drew__.jpg

Nachdem Sie die gewünschten Änderungen durchgeführt haben, verlassen Sie mit exit die Chroot-Umgebung.

root@ubuntu1104:/# exit

Hängen Sie jetzt das Proc-Dateisystem wieder aus und löschen die resolv.conf aus dem Live-System.

georg@ubuntu1104:~$ sudo umount ~/remastering/newfilesystem/proc
georg@ubuntu1104:~$ sudo rm -f ~/remastering/newfilesystem/etc/resolv.conf

Wenn Sie Dateien im Live-System gelöscht oder Programme deinstalliert haben, sollten Sie eine temporäre Datei erstellen, welche die freigewordenen Speicherbereiche mit Nullen überschreibt. Dadurch wird vermieden, dass die noch vorhandenen Daten der gelöschten Dateien mit ins Dateisystem des Live-Systems kopiert werden.

georg@ubuntu1104:~$ sudo dd if=/dev/zero of=~/remastering/newfilesystem/dummy
dd: writing to `/home/georg/remastering/newfilesystem/dummy': No space left on device
709409+0 records in
709408+0 records out
363216896 bytes (363 MB) copied, 8,25325 s, 44,0 MB/s

Die soeben erstellte Datei können Sie jetzt wieder löschen.

georg@ubuntu1104:~$ sudo rm ~/remastering/newfilesystem/dummy

Des Weiteren löschen Sie die originale filesystem.squashfs von der Live-CD.

georg@ubuntu1104:~$ sudo rm ~/remastering/livecd/casper/filesystem.squashfs

Wechseln Sie jetzt in das Verzeichnis mit dem modifizierten Live-System und erstellen daraus die filesystem.squashfs für die neue Live-CD.

georg@ubuntu1104:~$ cd ~/remastering/newfilesystem/
georg@ubuntu1104:~/remastering/newfilesystem$ sudo mksquashfs . ~/remastering/livecd/casper/filesystem.squashfs
Parallel mksquashfs: Using 2 processors
Creating 4.0 filesystem on /home/georg/remastering/livecd/casper/filesystem.squashfs, block size 131072.
[=============================================================================================================|] 97900/97900 100%
Exportable Squashfs 4.0 filesystem, gzip compressed, data block size 131072
        compressed data, compressed metadata, compressed fragments, compressed xattrs
        duplicates are removed
Filesystem size 680494.43 Kbytes (664.55 Mbytes)
        35.99% of uncompressed filesystem size (1890541.83 Kbytes)
Inode table size 1460513 bytes (1426.28 Kbytes)
        24.32% of uncompressed inode table size (6004220 bytes)
Directory table size 1401897 bytes (1369.04 Kbytes)
        38.97% of uncompressed directory table size (3596964 bytes)
Number of duplicate files found 10432
Number of inodes 147869
Number of files 93901
Number of fragments 5988
Number of symbolic links  37952
Number of device nodes 85
Number of fifo nodes 0
Number of socket nodes 0
Number of directories 15931
Number of ids (unique uids + gids) 30
Number of uids 8
        root (0)
        man (6)
        daemon (1)
        gdm (106)
        speech-dispatcher (107)
        libuuid (100)
        avahi-autoipd (103)
        hplip (111)
Number of gids 27
        root (0)
        video (44)
        audio (29)
        tty (5)
        fuse (104)
        kmem (15)
        disk (6)
        daemon (1)
        dip (30)
        shadow (42)
        ssl-cert (113)
        messagebus (105)
        crontab (102)
        mail (8)
        lpadmin (112)
        mlocate (106)
        ssh (107)
        games (60)
        utmp (43)
        saned (118)
        staff (50)
        libuuid (101)
        src (40)
        pulse (120)
        avahi-autoipd (108)
        gdm (114)
        adm (4)

Kehren Sie wieder in Ihr Heimatverzeichnis zurück und hängen die Containerdatei mit dem neuen Live-System aus.

georg@ubuntu1104:~/remastering/newfilesystem$ cd ~
georg@ubuntu1104:~$ sudo umount ~/remastering/newfilesystem/

Wechseln Sie jetzt in das Verzeichnis mit dem modifizierten Live-System und erstellen die Datei md5sum.txt neu. Dadurch wird sichergestellt, dass die Fehlerprüfung der Live-CD die korrekten Hashwerte zur Verfügung hat und keine Fehler meldet.

georg@ubuntu1104:~$ cd ~/remastering/livecd
georg@ubuntu1104:~/remastering/livecd$ sudo find . -type f \( ! -iwholename "*isolinux*" ! -name "md5sum.txt" \) -print0 | xargs -0 md5sum | sudo tee md5sum.txt
550bc581881e884e8e29e59f1a22a620  ./pool/main/b/b43-fwcutter/b43-fwcutter_013-3_amd64.deb
264f7e54ca1af1ac75bee5e00d13956d  ./pool/main/l/linux-wlan-ng/linux-wlan-ng_0.2.9+dfsg-4_amd64.deb
[...]
7e3aa6d1958baf72d369392fdb175486  ./preseed/cli.seed
0391854d1af5a015a667f29fa0442e78  ./preseed/ltsp.seed

Jetzt müssen Sie nur noch das ISO-Image der Live-CD erstellen. Dazu wechseln Sie in Ihr Heimatverzeichnis und erstellen mit genisoimage ein neues ISO-Image.

georg@ubuntu1104:~/remastering/livecd$ cd ~
georg@ubuntu1104:~$ sudo genisoimage -o ubuntu-11.04-desktop-amd64-remastered.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -input-charset utf-8 -r -V "Ubuntu Live-CD" -cache-inodes -J -l ~/remastering/livecd
Size of boot image is 4 sectors -> No emulation
  1.40% done, estimate finish Fri Apr 29 17:30:30 2011
  2.80% done, estimate finish Fri Apr 29 17:30:30 2011
[...]
Total translation table size: 2048
Total rockridge attributes bytes: 41210
Total directory bytes: 145408
Path table size(bytes): 774
Max brk space used 72000
357387 extents written (698 MB)

Da das ISO-Image als root erstellt wurde, müssen Sie wenn nötig noch den Eigentümer des ISO-Images ändern.

georg@ubuntu1104:~$ sudo chown $(whoami):$(whoami) ubuntu-11.04-desktop-amd64-remastered.iso

Mit qemu können Sie überprüfen ob die erstellte Live-CD problemlos funktioniert. Sollte qemu noch nicht installiert sein, holen Sie dies mit dem folgenden Befehl nach.

georg@ubuntu1104:~$ sudo apt-get install qemu

Zum Booten der erstellten Ubuntu 11.04 amd64 Live-CD rufen Sie den folgenden Befehl auf.

georg@ubuntu1104:~$ sudo qemu-system-x86_64 -m 512 -cdrom ubuntu-11.04-desktop-amd64-remastered.iso

Wenn Sie die Ubuntu 11.04 i386 Live-CD booten wollen, müssen Sie den Befehl qemu anstelle von qemu-system-x86_64 verwenden.

georg@ubuntu1104:~$ sudo qemu -m 512 -cdrom ubuntu-11.04-desktop-i386-remastered.iso

Nachdem Sie die erstellten ISO-Image auf ihre Funktion überprüft haben, können Sie diese brennen.

Wenn die temporären Dateien nicht mehr benötigen werden, können Sie das Arbeitsverzeichnis löschen.

georg@ubuntu1104:~$ rm -rf ~/remastering


Dieser Eintrag wurde am 06.05.2011 erstellt und zuletzt am 19.05.2012 bearbeitet.

Direkter Link zu dieser Seite: http://www.gtkdb.de/index_34_1259.html

[ Zur Startseite ]   [ Zur Kategorie ]


Valid XHTML 1.0 Transitional Valid CSS Valid Atom 1.0

© 2004-2018 by Georg Kainzbauer