Kako napraviti svoju linux distribuciju
Ovaj naslov je tu samo radi privlačenja pozornosti :). Ova "kuharica" ne govori o tome kako napraviti linux distribuciju iz temelja, već kako prilagoditi jednu od najraširenijih distribucija - Ubuntu - svojim potrebama. Ako vas zanima kako napraviti Live/Install CD sa vašim lokalnim postavkama (jezik, tipkovnica,...), dodati ili ukloniti neke programe, promjeniti zadane postavke sustava, itd., onda pročitajte članak do kraja. Za to ce vam trebati malo više slobodnog vremena jer ovo nije kraći članak.
Kao ishodište za promjenu distribucije možete odabrati bilo koju distribuciju koja je proizašla iz Ubuntu distribucije. Odabirom klona koji je najsličniji vašim zahtjevima, skraćujete postupak prilagodbe. Npr., ako trebate Live/Install CD sa KDE grafičkim sučeljem za prilagodbu ćete odabrati Kubuntu distribuciju; ako želite serversku distribuciju, koristite Ubuntu Server Edition; ako želite distribuciju sa svim multimedijalnim kodecima, Javom, flashom, itd. odabrati ćete SuperUbuntu ili LinuxMint; itd...
PRIPREMA TERENA
Potrebno je instalirati Linux distribuciju. Poželjno neku od Ubuntu klonova radi jednostavnosti prilagođavanja nove distribucije. Ova instalacija služi kao radni okvir unutar kojeg ćemo raditi promjene.
Pokrenuti terminal i postati root
$sudo su
<unijeti lozinku korisnika>
//to je lozinka običnog korisnika kojeg smo kreirali tijekom instalacije distribucije na tvrdi disk. Kreirani korisnik ima "sudo" prava
Instalirati pakete
#apt-get install squashfs-tools genisoimage
U kernel učitati squashfs module
#modprobe squashfs
Sa lsmod možemo provjeriti da li je modul učitan
#lsmod
potražiti squashfs u listi modula
možemo upisati i
lsmod | grep squashfs
ako želimo prikazati samo sqashfs modul
Skinuti (download) verziju Ubuntu distribucije koju želimo prilagoditi. Može to biti bilo koja od Ubuntu klonova: (Ubuntu, Kubuntu, SuperUbuntu, LinuxMint,...). Spremiti je negdje na disk.
Napraviti direktorij live unutar našeg /home direktorija
#mkdir /home/<korisnik>/live
//<korisnik> je ime korisnika koji je kreiran kod instalacije; u daljnjem tekstu <korisnik> = toni
Ući u direktorij gdje smo spremili Ubuntu (Kubuntu, LinuxMint,...) .iso datoteku
#cd /home/<korisnik>/<ime direktorija>
Kopirati skinutu .iso datoteku (u našem slučaju ubuntu-8.10-desktop-i386.iso) u direktorij /home/<korisnik>/live
#cp ubuntu-8.10-desktop-i386.iso /home/toni/live
//istu stvar možete napraviti kroz grafičko sučelje koristeći upravitelj datotekama (eng. filemanager) i klikom na cut ili copy + paste
Ući u direktorij live
# cd /home/toni/live
Napraviti direktorij mnt
#mkdir mnt
Napraviti mount .iso datoteke (u ovom slučaju - ubuntu-8.10-desktop-i386.iso) u direktorij mnt
#mount -o loop ubuntu-8.10-desktop-i386.iso mnt
Napraviti direktorij extract-cd
#mkdir extract-cd
Raspakirati sadržaj .iso datoteke u direktorij extract-cd
#rsync --exclude=/casper/filesystem.squashfs -a mnt/ extract-cd
Napraviti direktorij squashfs
#mkdir squashfs
Napraviti mount squashfs datotečnog sustava (eng. file system)
#sudo mount -t squashfs -o loop mnt/casper/filesystem.squashfs squashfs
Napraviti direktorij edit
#mkdir edit
Kopirati sadržaj direktorija squashfs u direktorij edit
#cp -a squashfs/* edit/
PRIPREMITI CHROOT
chroot je naredba koja zamjenjuje stvarni root direktorij sa prividnim za neke trenutno pokrenute procese i povezane podprocese. Sa naredbom chroot možemo pokrenuti neku naredbu unutar određenog root direktorija koji je sam sadržan unutar drugog root direktorija. (Analogija s Windowsima: disk C: unutar diska C:).
Ako trebamo mrežnu povezanost unutar chroota
#cp /etc/resolv.conf edit/etc/
Ovisno o konfiguraciji, potrebno je kopirati i hosts datoteku
#cp /etc/hosts edit/etc/
Napraviti mount nekih važnijih direktorija iz datotečnog sustava samog računala (NE chroot file systema). Ako se kasnije odlučite za brisanje edit direktorija, VAŽNO je napraviti njihov unmount. U suprotnom, računalo može prestati biti upotrebljivo sve dok ga ponovo ne pokrenemo (reboot).
#mount --bind /dev/ edit/dev
#chroot edit
#mount -t proc none /proc
#mount -t sysfs none /sys
Da bi izbjegli probleme sa lokalizacijom (naše postavke) i GPG ključevima potrebno je pokrenuti naredbe:
#export HOME=/root
#export LC_ALL=C
//paziti na velika i mala slova
PRILAGODBA DISTRIBUCIJE
Sa slijedećom naredbom prikazujete instalirane pakete po veličini. Pritiskom na "q" na tipkovnici, napuštate taj prikaz
#dpkg-query -W --showformat='${Installed-Size} ${Package}\n' | sort -nr | less
Potrebno je dodati (ili odkomentirati) repozitorije sa programima koji možete dodati vašoj distribuciji koristeći naredbu apt-get iz naredbenog retka.
Otvorimo datoteku /etc/apt/sources.list za uređivanje:
#nano /etc/apt/sources.list
U datoteci /etc/apt/sources.list dodamo ili odkomentiramo slijedeće retke:
deb http://archive.ubuntu.com/ubuntu intrepid universe
deb-src http://archive.ubuntu.com/ubuntu intrepid universe
deb http://archive.ubuntu.com/ubuntu intrepid-updates universe
deb-src http://archive.ubuntu.com/ubuntu intrepid-updates universe
deb http://security.ubuntu.com/ubuntu intrepid-security universe
deb-src http://security.ubuntu.com/ubuntu intrepid-security universe
deb http://archive.ubuntu.com/ubuntu intrepid multiverse
deb-src http://archive.ubuntu.com/ubuntu intrepid multiverse
deb http://archive.ubuntu.com/ubuntu intrepid-updates multiverse
deb-src http://archive.ubuntu.com/ubuntu intrepid-updates multiverse
deb http://security.ubuntu.com/ubuntu intrepid-security multiverse
deb-src http://security.ubuntu.com/ubuntu intrepid-security multiverse
Zatvorimo datoteku i spremimo je
<CTRL+X>
Save....? <y>
<ENTER>
Nakon uređivanja datoteke potrebno je pokrenuti naredbu
#apt-get update
INSTALACIJA PROGRAMA
Nakon dodavanja izvora programa u sources.lists, željene programe instaliramo ili ukloniti na uobičajeni način za Ubuntu i srodne distribucije. U osnovi, možemo koristiti instalacijke naredbe za distribucije sa Debian korijenima (npr., apt-get install..., dpkg -i..., itd.).
Primjer1: Instalacija multimedijalnih dodataka
Za instalaciju aplikacija i dodataka za reprodukciju najuobičajenih multimedijalnih datoteka (uključujući MP3, DVD reprodukciju, Flash i Java dodatke za internet preglednike, Quicktime, WMA i WMV datoteke) potrebno je instalirati pakete libenca0 i libass1
Da bi instalirali pakete koji nisu unutar repozitorija, potrebno ih je skinuti sa interneta i spremiti u neki direktorij.
#cd /home
//ovo je /home direktorij unutar chroot okruženja (unutar edit poddirektorija)
Prvo instaliramo paket libenca0
#wget http://ftp.hr.debian.org/debian/pool/main/e/enca/libenca0_1.9-6_i386.deb
a zatim pokrenemo instalaciju paketa sa:
#dpkg -i libenca0_1.9-6_i386.deb
Zatim instaliramo paket libass1
#wget http://ftp.hr.debian.org/debian/pool/main/liba/libass/libass1_0.9.5-2_i386.deb
a zatim pokrenemo instalaciju paketa sa:
#dpkg -i libass1_0.9.5-2_i386.deb
Nakon instalacije ovih paketa, da bi intalirali multimedijalne dodatke (plugins) potrebno je pokrenuti jednu od naredbi:
-ako je distribucija koju mijenjate Ubuntu
#apt-get install ubuntu-restricted-extras
-ako je distribucija koju mijenjate Kubuntu
#apt-get install kubuntu-restricted-extras
-ako je distribucija koju mijenjate Xubuntu
#apt-get install xubuntu-restricted-extras
Na pitanje
Do you want to continue [Y/n]?
odgovorite sa y
Također potvrdite prihvaćanje korisničkog ugovora za Javu.
Primjer2: Instalacija aplikacija
Instalacija VLC media playera (VLC - program za repordukciju video datoteka) pokrenemo:
#apt-get install vlc
na upit
After this operation, XX.XMB of additional disk space will be used.
Do you want to continue [Y/n]?
odgovorite potvrdno sa y
Da bi instalirali Amarok (program za repordukciju glazbenih datoteka) unesite:
#apt-get install amarok
na upit
After this operation, XX.XMB of additional disk space will be used.
Do you want to continue [Y/n]?
odgovorite potvrdno sa y
Na ovaj način je moguće instalirati bilo koju aplikaciju koju želimo dodati i novu distribuciju.
Promjena pozadine radne površine (wallpapera)
Priprema: Otvoriti NOVI terminal i postanite root
$sudo su
<unesite lozinku>
Doći do mjesta gdje ste pohranili sliku koju želite postaviti u pozadinu zaslona vaše nove distribucije (u ovom slučaju: carnet_logo.png) i kopirati je naredbom:
#cp carnet_logo.png /home/toni/live/edit/usr/share/backgrounds/
Ponovo se VRATITI u terminal u kojem smo radili prilagodbu distribucije!!!
Potrebno je urediti više datoteka da bi dobili postavke pozadine koju želimo promjeniti.
Urediti datoteku ubuntu-wallpapers.xml
#nano /usr/share/gnome-background-properties/ubuntu-wallpapers.xml
promjeniti sve crte koda gdje se navodi .png datoteka da izgleda kao npr.:
<filename>/usr/share/backgrounds/carnet_logo.png</filename>
izaći i spremiti
<CTRL+X>
Save....? <y>
<ENTER>
Urediti datoteku 16_ubuntu-artwork
#nano /usr/share/gconf/defaults/16_ubuntu-artwork
promjeniti sve crte koda gdje se navodi .png datoteka da izgleda kao:
/apps/gnome-session/options/splash_image splash/carnet_logo.png
izaći i spremiti
<CTRL+X>
Save....? <y>
<ENTER>
Urediti datoteku 16_ubuntu-wallpapers
#nano /usr/share/gconf/defaults/16_ubuntu-wallpapers
promjeniti sve crte koda gdje se navodi .png datoteka da izgleda kao:
/desktop/gnome/background/picture_filename "/usr/share/backgrounds/carnet_logo.png"
izaći i spremiti
<CTRL+X>
Save....? <y>
<ENTER>
Urediti datoteku 10_libgnome2-common
#nano /usr/share/gconf/defaults/10_libgnome2-common
promjeniti sve crte koda gdje se navodi .png datoteka da izgleda kao:
/desktop/gnome/background/picture_filename /usr/share/backgrounds/carnet_logo.png
izaći i spremiti
<CTRL+X>
Save....? <y>
<ENTER>
PROMJENA ZADANOG (DEFAULT) JEZIKA
Promjena zadanog (default) jezika koji će se učitati prilikom pokretanja nove distribucije:
Otvoriti novi terminal i postanite root
$sudo su
<unesite lozinku>
Preći u direktorij
#cd /home/toni/live/extract-cd/isolinux
Napraviti datoteku lang u koju ćemo upisati samo oznaku za jezik koji želimo učitati (u ovom slučaju hrvatski)
#nano lang
u novootvorenoj datoteci upisati oznaku jezika
hr
izaći i spremiti
<CTRL+X>
Save....? <y>
<ENTER>
"POSPREMANJE " DISTRIBUCIJE PRIJE PAKIRANJA U .iso DATOTEKU
#apt-get clean
Brisanje privremenih datoteka
#rm -rf /tmp/*
Brisanje postavki DNS-a
#rm /etc/resolv.conf
Unmount montiranih datotečnih sustava i izlazak iz chroot-a
#umount /proc
#umount /sys
#exit
#umount edit/dev
GENERIRANJE NOVE DISTRIBUCIJE
Pokrenuti naredbe (možete ih kopirati, jednu po jednu, i umetnuti u vaš terminal sa <SHIFT+Insert>)
#chmod +w extract-cd/casper/filesystem.manifest
#chroot edit dpkg-query -W --showformat='${Package} ${Version}\n' > extract-cd/casper/filesystem.manifest
#cp extract-cd/casper/filesystem.manifest extract-cd/casper/filesystem.manifest-desktop
#sed -i '/ubiquity/d' extract-cd/casper/filesystem.manifest-desktop
Sažeti (compress) datotečni sustav
#rm extract-cd/casper/filesystem.squashfs
//ova naredba može vratiti poruku o grešci; može se ignorirati
Unijeti naredbu
#mksquashfs edit extract-cd/casper/filesystem.squashfs -nolzma
//ovo može potrajati par minuta
Odrediti ime za novu distribuciju i unijeti je u datoteku README.diskdefines
#nano extract-cd/README.diskdefines
u redak define DISKNAME unijeti ime distribucije
define DISKNAME CARNet 0.1.0 - Release i386
izaći i spremiti
<CTRL+X>
Save....? <y>
<ENTER>
Izbrisati stari md5sum.txt i izračunati novi md5 broj
#sudo -s
#rm extract-cd/md5sum.txt
#cd extract-cd && find . -type f -print0 | xargs -0 md5sum > md5sum.txt
#exit
Kreirati .iso datoteku
#cd extract-cd
Ova naredba kreira .iso datoteku. Unutar naredbe zamjeniti CARNet-0.1.0-desktop-i386-custom.iso sa imenom nove distribucije.
#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 ../CARNet-0.1.0-desktop-i386-custom.iso .
Znak \ na kraju prvog reda prethodne naredbe je samo oznaka da se naredba tu ne prekida, već da oba reda čine jednu naredbu. Naredba se može kopirati i unijeti neprekinuta (bez znaka \).
Snimiti .iso datoteku sa nekim od alata za snimanje CD/DVD.
Pozor!!! Ne snimati kao običnu datoteku, nego kao CD/DVD iso image.
Nakon snimanja, kod podizanja računala, vašu novu ditribuciju pokrećeta kao i svaku drugu live-cd distribuciju.
- Logirajte se za dodavanje komentara
- Inačica za ispis
- PDF version