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.
Funkčnost CD je vhodné zkoušet ve virtuálním počítači bez nutnosti vypalování a restartování.
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
).
ubuntu-7.04-desktop-i386.iso
.mkdir cd-mnt mkdir cd-data mkdir sq-mnt mkdir sq-data
cd-mnt
:sudo mount ubuntu-7.04-desktop-i386.iso cd-mnt/ -o loop -t iso9660
cd-data
. Vynecháme ale obrovský soubor /casper/filesystem.squashfs
, v němž je uložen zmíněný komprimovaný oddíl s většinou dat.rsync --exclude=/casper/filesystem.squashfs -a cd-mnt/ cd-data
sq-mnt
:sudo mount cd-mnt/casper/filesystem.squashfs sq-mnt -o loop -t squashfs
sq-data
: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.
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ě.
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
V chrootu jde dále provádět kouzla jako:
/boot/vmlinuz-názevjádra
do cd-data/casper/vmlinuz
.initrd.gz
: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
/usr/share/backgrounds
a zároveň jsou zapsány v přehledném souboru /usr/share/gnome-background-properties/ubuntu-wallpapers.xml
. Hezké obrázky najdete třeba na http://art.gnome.org/.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
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
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!
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.)
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