Ero sivun ”Ubuntun live-CD:n mukauttaminen” versioiden välillä

Linux.fista
Siirry navigaatioon Siirry hakuun
Rivi 40: Rivi 40:
==Paketointi uudeksi levykuvaksi==
==Paketointi uudeksi levykuvaksi==


Lisätietoja oppaan kohdasta Cleanup.
Lisätietoja lähteenä olevan oppaan kohdasta ''Cleanup''.
 
Oletetaan, että olet vielä chrootin sisällä. Jos olet ehtinyt jo poistumaan, palaa takaisin.
 
Poistetaan tarpeettomat tiedostot ja poistutaan chroot-ympäristöstä:


  apt-get clean
  apt-get clean
Rivi 49: Rivi 53:
  umount /sys
  umount /sys
  exit
  exit
Irroitetaan vielä dev-tiedostojärjestelmä chrootin ulkopuolelta:
  umount squashfs/dev
  umount squashfs/dev


jatka oppaan kohdasta putting cd together. muista vaihtaa hakemistonnimet
Nyt tehdään rutiinitoimenpiteitä, kuten päivitetään pakettilistaukset ja kapseloidaan squashfs-levykuva uudestaan. Viimeisin rivi vie eniten aikaa, koska se pakkaa juurihakemiston tiedostot squashfs-levykuvaksi cd:n levykuvan sisään.


  chmod +w live/casper/filesystem.manifest
  chmod +w live/casper/filesystem.manifest
Rivi 57: Rivi 64:
  cp live/casper/filesystem.manifest live/casper/filesystem.manifest-desktop
  cp live/casper/filesystem.manifest live/casper/filesystem.manifest-desktop
  sed -i '/ubiquity/d' live/casper/filesystem.manifest-desktop
  sed -i '/ubiquity/d' live/casper/filesystem.manifest-desktop
rm live/casper/filesystem.squashfs
mksquashfs squashfs live/casper/filesystem.squashfs -nolzma


oppaan kohdasta compress filesystem
Saatoit ihmettelit yllä, että miten levykuva voidaan noin vain poistaa, vaikka se on vielä liitettynä. Tämä onnistuu, koska vanha squashfs on mountattu live-ro-hakemistosta, eikä live-hakemistosta. Kyseessä on siis käytännössä eri tiedosto, vaikka jakavatkin saman levysijainnin.
vanha squashfs voidaan poistaa, koska mountattu ro-hakemistosta


rm live/casper/filesystem.squashfs
Tässä vaiheessa voit muokata levyn nimen haluamaksesi tiedostosta <tt>live/README.diskdefines</tt>.
mksquashfs squashfs live/casper/filesystem.squashfs -nolzma


muokkaa levynnimeä tiedostossa live/README.diskdefines
Lopuksi muodostetaan md5-summat uudestaan.  


  rm live/md5sum.txt
  rm live/md5sum.txt
  (cd live && find . -type f -print0 | xargs -0 md5sum > md5sum.txt)
  (cd live && find . -type f -print0 | xargs -0 md5sum > md5sum.txt)
Nyt luodaan lopulta uusi levykuva. Muokkaa halutessasi mkisofs:n <tt>-V</tt>-parametrin määrittelemää levynnimeä ja uuden levykuvan tiedostonnimeä.


  cd live
  cd live
  mkisofs -r -V "ZouppenRoot" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot- info-table -o ../zouppenroot.iso .
  mkisofs -r -V "ZouppenRoot" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot- info-table -o ../UUSI_ISO.iso .
  cd ..
  cd ..


levyt irti
Irroitetaan mukauttamisen aikaiset tiedostojärjestelmät:


  umount live squashfs squashfs-ro live-ro
  umount live squashfs squashfs-ro live-ro


valmista! levyn kulutus yhteensä reilu giga
Valmista tuli! Lopuksi levyllesi jäi notkumaan vajaan gigatavun verran väliaikaisia tiedostoja. Hakemistossa <tt>live-rw</tt> on muutokset alkuperäiseen liveromppuun verrattuna (eniten tilaa vie uusi squashfs-levykuva). Hakemistossa <tt>squashfs-rw</tt> sen sijaan on muutokset valmiin live-ympäristön tiedostojärjestelmässä. Voit säilyttää ne myöhempiä muokkauksia varten tai tuhota heti. Mikäli säilytät ne, voit ottaa ympäristön käyttöön täsmälleen samoilla komennoilla, jotka voit näppärästi kasata vaikka skriptiksi.
 
597472 live-rw
116096 squashfs-rw
623200 zouppenroot.iso


==Mukauttaminen==
==Mukauttaminen==

Versio 9. heinäkuuta 2008 kello 23.11

Ubuntun Live-CD on melko helposti mukautettavissa omaan käyttöön. Ubuntun liverompussa käytetään muokkaamattomia paketteja, joita voi asennetaa ja poistaa apt:llä kuten missä tahansa järjestelmässä.

Mukauttamisen tekee työlääksi kaksinkertainen kääriminen levykuviin. CD-imagen sisällä on squashfs:llä pakattu juuriosio. Lisäksi tietoa on kääritty mm. initrd:n sisään. Tässä ohjeessa neuvotaan kääreiden availu siten, että levytilaa kuluu niin vähän kuin mahdollista ja toki myös kääriminen takaisin valmiiksi levykuvaksi.

Lähteenä tässä ohjeessa on käytetty osoitteesta https://help.ubuntu.com/community/LiveCDCustomization löytyvää mukautusohjetta. Tässä ohjeessa käytetään lähdeartikkelista poiketen kopioinnin sijaan unionfs-moniliitoksia ja esitellään etäpelastuslevyn tekemistä.

Avaaminen mukauttamista varten

Oletetaan, että käytettävissäsi on Ubuntun levykuva. Tämä ohje on kirjoitettu Ubuntu Desktop-levyä silmällä pitäen, tosin ohje toiminee myös muihin casperia käyttäviin levyihin.

Liitetään kaikki levyt muokkausoikeuksin

Keksi jokin paikka, jossa mukautusvaiheen väliaikaiset tiedostot säilytetään. Luo paikkaan hakemisto, esimerkiksi ubuntu-live ja siirry sinne. Suorita seuraavat komennot:

mkdir -p live live-ro live-rw squashfs squashfs-ro squashfs-rw
mount -o loop ALKUPERÄINEN_ISO live-ro
mount -t unionfs -o dirs=live-rw:live-ro=ro none live
mount -o loop -t squashfs live-ro/casper/filesystem.squashfs squashfs-ro/
mount -t unionfs -o dirs=squashfs-rw:squashfs-ro=ro none squashfs

Komentojen seurauksena syntyy muokkausoikeuksilla varustetut hakemistot live ja squashfs. Hakemistossa live on varsinaisen liverompun juurihakemisto – eli se, joka näkyy, kun rompun laittaa koneeseen. Hakemistossa squashfs puolestaan on rompulta bootatun järjestelmän juurihakemisto, Esimerkiksi asennetut ohjelmat sijaitsevat squashfs-hakemistossa.

Seuraavaksi valmistellaan verkkoyhteydet ja chroot-ympäristö, jotta päästäisiin muokkaamaan liveromppua livenä. :-) Komennot ajetaan samasta hakemistosta kuin ylläolevat.

cp /etc/resolv.conf squashfs/etc/
mount --bind /dev/ squashfs/dev
chroot squashfs

Nyt eteen avautuva komentotulkki on live-cd:llä. Siellä on valmiina tarvittavat perusohjelmistot mm. komentotulkin käyttöä varten.

Valmistellaan vielä ympäristöä lisäämällä välttämättömät pseudotiedostojärjestelmät ja asetetaan pari ympäristömuuttujaa välttämään ongelmia. Localen asettamisella pyritään välttämään mm. omasta koneesta periytyvien localeiden sivuvaikutukset.

mount -t proc none /proc
mount -t sysfs none /sys
export HOME=/root
export LC_ALL=C

Nyt ympäristö on valmis käytettäväksi ja voit siirtyä kohtaan mukauttaminen.

Paketointi uudeksi levykuvaksi

Lisätietoja lähteenä olevan oppaan kohdasta Cleanup.

Oletetaan, että olet vielä chrootin sisällä. Jos olet ehtinyt jo poistumaan, palaa takaisin.

Poistetaan tarpeettomat tiedostot ja poistutaan chroot-ympäristöstä:

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

Irroitetaan vielä dev-tiedostojärjestelmä chrootin ulkopuolelta:

umount squashfs/dev

Nyt tehdään rutiinitoimenpiteitä, kuten päivitetään pakettilistaukset ja kapseloidaan squashfs-levykuva uudestaan. Viimeisin rivi vie eniten aikaa, koska se pakkaa juurihakemiston tiedostot squashfs-levykuvaksi cd:n levykuvan sisään.

chmod +w live/casper/filesystem.manifest
chroot squashfs dpkg-query -W --showformat='${Package} ${Version}\n' >live/casper/filesystem.manifest
cp live/casper/filesystem.manifest live/casper/filesystem.manifest-desktop
sed -i '/ubiquity/d' live/casper/filesystem.manifest-desktop
rm live/casper/filesystem.squashfs
mksquashfs squashfs live/casper/filesystem.squashfs -nolzma

Saatoit ihmettelit yllä, että miten levykuva voidaan noin vain poistaa, vaikka se on vielä liitettynä. Tämä onnistuu, koska vanha squashfs on mountattu live-ro-hakemistosta, eikä live-hakemistosta. Kyseessä on siis käytännössä eri tiedosto, vaikka jakavatkin saman levysijainnin.

Tässä vaiheessa voit muokata levyn nimen haluamaksesi tiedostosta live/README.diskdefines.

Lopuksi muodostetaan md5-summat uudestaan.

rm live/md5sum.txt
(cd live && find . -type f -print0 | xargs -0 md5sum > md5sum.txt)

Nyt luodaan lopulta uusi levykuva. Muokkaa halutessasi mkisofs:n -V-parametrin määrittelemää levynnimeä ja uuden levykuvan tiedostonnimeä.

cd live
mkisofs -r -V "ZouppenRoot" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot- info-table -o ../UUSI_ISO.iso .
cd ..

Irroitetaan mukauttamisen aikaiset tiedostojärjestelmät:

umount live squashfs squashfs-ro live-ro

Valmista tuli! Lopuksi levyllesi jäi notkumaan vajaan gigatavun verran väliaikaisia tiedostoja. Hakemistossa live-rw on muutokset alkuperäiseen liveromppuun verrattuna (eniten tilaa vie uusi squashfs-levykuva). Hakemistossa squashfs-rw sen sijaan on muutokset valmiin live-ympäristön tiedostojärjestelmässä. Voit säilyttää ne myöhempiä muokkauksia varten tai tuhota heti. Mikäli säilytät ne, voit ottaa ympäristön käyttöön täsmälleen samoilla komennoilla, jotka voit näppärästi kasata vaikka skriptiksi.

Mukauttaminen

eniten vievät paketit pois, uutta tilalle lisätään universe pakettilistaan tarvittaessa

apt-get remove --purge openoffice.org-core evolution-common gnome-games gimp pidgin
apt-get update
apt-get dist-upgrade

ssh-kustomointi

apt-get install openssh-server autossh
cd ~/.ssh
ssh-keygen

kopioi authorized_keys -tiedostoon oma julkinen avaimesi kopioi id_rsa.pub ssh-palvelimelle authorized_keysiin lisää tiedostoon /etc/rc.local seuraavaa

export AUTOSSH_GATETIME=0
export AUTOSSH_POLL=60
autossh -M AUTOSSHPORTTI -qf -4Ng -R SSHPORTTI:127.0.0.1:22 tunnus@hostname

MUISTA kokeilla yhdistämistä ensin! Saadaan siten known-hostsiin rivi

EXTRAA

kuvan muokkaus, toimii vaikka valittaa

ppmtolss16 '#ffffff=7' < ~joell/kuvia/ubunturootkit-splash.ppm > live/isolinux/splash.rle
cat ~joell/kuvia/ubunturootkit-splash.pcx > live/isolinux/splash.pcx 

turhien kielten poisto alkulistasta

live/isolinux/langlist