Obsah

Vytvoření vlastního LiveCD

Tento návod je určen pro pokročilé uživatele

V následujícím návodu si krok za krokem ukážeme, jak postupovat při úpravách běžného Ubuntu desktop CD. Budeme vycházet z verze 7.10 Gutsy Gibbon, ale mělo by to fungovat i na jiné. Takto můžeme například:

Postup je: rozbalit, upravit, sbalit, vypálit. Není to tak složité, jako se může zdát.

V následujícím textu budeme psát o CD, totéž ale platí pro DVD či podobná média.

Co potřebujeme

Funkčnost CD je vhodné zkoušet ve virtuálním počítači bez nutnosti vypalování a restartování.

Rozbalení CD

Získáme iso obraz CD. Lze jej stáhnout nebo zkopírovat z CD (příkazem cp /dev/cdrom ubuntu-7.04-desktop-i386.iso).

mkdir cd-mnt
mkdir cd-data
mkdir sq-mnt
mkdir sq-data
sudo mount ubuntu-7.04-desktop-i386.iso cd-mnt/ -o loop -t iso9660
rsync --exclude=/casper/filesystem.squashfs -a cd-mnt/ cd-data
sudo mount cd-mnt/casper/filesystem.squashfs sq-mnt -o loop -t squashfs
sudo cp -a sq-mnt/* sq-data/

Chvíli to potrvá, je jich 1,5 GB.

sudo umount sq-mnt/; rmdir sq-mnt
sudo umount cd-mnt/; rmdir cd-mnt

Nyní můžeme v adresáři cd-data upravovat nezazipovanou část CD (tj. jen jádro a úvodní nabídka) a v sq-data zbytek systému.

Tipy na možné úpravy

Počeštění

Výchozí jazyk určíme přidáním souboru lang obsahujícího dvoupísmennou zkratku daného jazyka do adresáře cd-data/isolinux/. Do toho souboru se vloží toliko dvě písmena cs.

sudo echo "cs" > cd-data/isolinux/lang

Aby byl na CD zahrnut plný český překlad, instalujeme metabalík language-support-cs podle níže uvedeného postupu (obsahuje závislosti na veškeré české překlady). Podrobnější postup instalace jen části jazykových balíčků je uveden níže. Slovenčina (sk) se samozřejmě instaluje obdobně.

Přidání/odebrání balíčků

Namísto kopírování použijeme balíčkovací systém APT, aby se automaticky instalovaly jejich závislosti a abychom z programů neudělali černé pasažéry. Balíčkovací systém je potřeba zmást tak, aby za rootovský adresář považoval ten, kam jsme rozbalili squashfs. K tomu je příkaz chroot. Pak je lze programy instalovat jako obvykle, ale veškeré změny se týkají systému na CD.

sudo cp /etc/resolv.conf sq-data/etc/
sudo cp /etc/hosts sq-data/etc/
sudo chroot sq-data
mount -t proc none /proc
mount -t sysfs none /sys
export HOME=/root
export LC_ALL=C

*V novějších verzích Ubuntu je nutné aptitude doinstalovat, práce s balíky tak bude v textovém prostředí pohodlnejší.

apt-get install aptitude

Nezapomeneme na aktualizaci informací o balíčcích ze stávajících i přidaných Zdrojů

aptitude update

* A je to. Nyní můžeme spustit např. aptitude a přidávat či odebírat programy dle libosti.

:!: Jen pozor pokud budeme vypalovat na CD, abychom se na něj vešli (je zaplněno skoro těsně).

Po dokončení úprav po sobě smažeme stažené balíčky a jiné dočasné soubory, odpojíme oddíly a vymaníme se z chrootu:

apt-get clean
rm -rf /tmp/*
rm /etc/resolv.conf  /etc/hosts
umount /proc
umount /sys
exit

Další nápady

V chrootu jde dále provádět kouzla jako:

sudo chroot sq-data
mkinitramfs -o /initrd.gz 2.6.15-26-k7(vaše označení jádra)

*Exitněte se z chrootu a z sq-data přesuňte nový initrd.gz do cd-data/casper

apt-get remove ttf-baekmuk ttf-bengali-fonts ttf-devanagari-fonts ttf-gujarati-fonts ttf-indic-fonts ttf-kannada-fonts ttf-kochi-gothic ttf-kochi-mincho ttf-lao ttf-oriya-fonts ttf-punjabi-fonts ttf-malayalam-fonts ttf-tamil-fonts ttf-telugu-fonts
aptitude --purge remove language-pack-de language-pack-gnome-de language-pack-gnome-de-base --assume-yes
aptitude --purge remove language-pack-xh language-pack-gnome-xh language-pack-gnome-xh-base --assume-yes
aptitude --purge remove language-pack-pt language-pack-gnome-pt language-pack-gnome-pt-base --assume-yes
aptitude --purge remove language-pack-es language-pack-gnome-es language-pack-gnome-es-base --assume-yes
aptitude --purge remove language-pack-fr language-pack-gnome-fr language-pack-gnome-fr-base --assume-yes
aptitude --purge remove gnome-games gnome-games-data
apt-get install language-pack-cs language-pack-cs-base mozilla-firefox-locale-cs-cz myspell-cs-cz aspell-cs openoffice.org-help-cs openoffice.org-l10n-cs openoffice.org-thesaurus-cs thunderbird-locale-cs gimp-help-cs

V případě, že instalujeme všechny, stačí instalovat metabalíček:

apt-get install language-support-cs
apt-get install gstreamer0.10-pitfdll gstreamer0.10-ffmpeg gstreamer0.10-plugins-bad gstreamer0.10-plugins-bad-multiverse gstreamer0.10-plugins-ugly gstreamer0.10-plugins-ugly-multiverse gxine ogle ogle-gui lame lame-extras
apt-get install flashplugin-nonfree

Java od SUNů není svobodně licencována a je nutno odsouhlasit licenční smlouvu:

apt-get install sun-java6-jre sun-java6-plugin
aptitude update
aptitude safe-upgrade

Start Gnome v chrootu

chroot /home/vasuzivatel/sq-data
mount -t proc none /proc
mount -t sysfs none /sys
export HOME=/root
export LC_ALL=C
/etc/init.d/dbus start
X :1 -ac
DISPLAY=localhost:1 gnome-session

Sestavení ISO

Po dokončení úprav CD sestavíme zpátky.

sudo chmod +w cd-data/casper/filesystem.manifest
sudo chroot sq-data dpkg-query -W --showformat='${Package} ${Version}\n' > cd-data/casper/filesystem.manifest
sudo cp cd-data/casper/filesystem.manifest cd-data/casper/filesystem.manifest-desktop
sudo sed -ie '/ubiquity/d' cd-data/casper/filesystem.manifest-desktop
sudo rm -f cd-data/casper/filesystem.squashfs
sudo mksquashfs sq-data/ cd-data/casper/filesystem.squashfs
sudo gedit cd-data/README.diskdefines

(s vyjímkou těch které se budou ještě měnit)

cd cd-data
sudo bash -c "find . \( -path './isolinux/isolinux.bin' -or -path './md5sum.txt' -or -path './cd-data/isolinux/boot.cat' -prune \)  -or -type f -print0 | xargs -0 md5sum > md5sum.txt"
cd ..
cd cd-data
sudo mkisofs -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-7.04-desktop-i386-custom.iso .

A po skončení hrátek s LiveCD, můžeme smazat pracovní adresáře

sudo rm -rf cd-data
sudo rm -rf sq-data

A je to!

Zkouška CD v emulátoru

Použij qemu, Luku!

qemu -cdrom ubuntu-7.04-desktop-i386-custom.iso -m 300

(Volba -m 300 zde určuje množství poskytnuté paměti v MB.)

Vypálení CD

ISO soubor lze vypálit běžnými nástroji (jako k3b) nebo v příkazovém řádku:

cdrecord dev=/dev/cdrom ubuntu-7.04-desktop-i386-custom.iso

Odkazy