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

Siirry navigaatioon Siirry hakuun
Joell (keskustelu | muokkaukset)
vähän kappalerakennetta
Pb (keskustelu | muokkaukset)
p siirsi sivun ”Ubuntun Live-CD:n mukauttaminen” uudelle nimelle ”Ubuntun live-CD:n mukauttaminen”
 
(12 välissä olevaa versiota 4 käyttäjän tekeminä ei näytetä)
Rivi 1: Rivi 1:
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ä.
[[Ubuntu]]n [[live-CD]] on melko helposti mukautettavissa omaan käyttöön. Ubuntun liverompussa käytetään muokkaamattomia paketteja, joita voi asennetaa ja poistaa [[apt]]illa kuten tavallisessakin 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.
Mukauttamisen tekee työlääksi kaksinkertainen kääriminen [[levykuva|levykuviin]]. CD-levykuvan 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ä.
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==
==Avaaminen mukauttamista varten==


Liitetään kaikki levyt muokkausoikeuksin
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 [[casper]]ia käyttäviin levyihin.


  mkdir live live-ro live-rw squashfs squashfs-ro squashfs-rw
Liitetään kaikki levyt muokkausoikeuksin.
  mount -o loop ~joell/nettikama/ubuntu-8.04.1-desktop-i386.iso live-ro
 
Keksi jokin paikka, jossa mukautusvaiheen väliaikaiset tiedostot säilytetään. Luo paikkaan hakemisto, esimerkiksi <tt>ubuntu-live</tt> 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 -t unionfs -o dirs=live-rw:live-ro=ro none live
  mount -o loop -t squashfs live-ro/casper/filesystem.squashfs squashfs-ro/
  mount -o loop -t squashfs live-ro/casper/filesystem.squashfs squashfs-ro/
  mount -t unionfs -o dirs=squashfs-rw:squashfs-ro=ro none squashfs
  mount -t unionfs -o dirs=squashfs-rw:squashfs-ro=ro none squashfs


verkko
Komentojen seurauksena syntyvät [[tiedostojen oikeudet|muokkausoikeuksilla]] varustetut hakemistot <tt>live</tt> ja <tt>squashfs</tt>. Hakemistossa <tt>live</tt> on varsinaisen liverompun juurihakemisto – eli se, joka näkyy, kun rompun laittaa koneeseen. Hakemistossa <tt>squashfs</tt> puolestaan on rompulta käynnistetyn järjestelmän juurihakemisto, Esimerkiksi asennetut ohjelmat sijaitsevat squashfs-hakemistossa.
  cp /etc/resolv.conf squashfs/etc/
 
Seuraavaksi valmistellaan [[verkkoliitynnät|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.


levyt ja moutit
Valmistellaan vielä ympäristöä lisäämällä välttämättömät pseudotiedostojärjestelmät ja asetetaan pari [[ympäristömuuttuja]]a välttämään ongelmia. [[Locale]]n asettamisella pyritään välttämään mm. omasta koneesta periytyvien localeiden sivuvaikutukset.
sudo mount --bind /dev/ squashfs/dev
sudo chroot squashfs


chrootissa seuraavat
  mount -t proc none /proc
  mount -t proc none /proc
  mount -t sysfs none /sys
  mount -t sysfs none /sys
[[export]] HOME=/root
export LC_ALL=C


jatketaan ohjeen mukaan:
Nyt ympäristö on valmis käytettäväksi ja voit siirtyä kohtaan ''mukauttaminen''.


==Paketointi uudeksi levykuvaksi==


export HOME=/root
Lisätietoja lähteenä olevan oppaan kohdasta ''Cleanup''.
export LC_ALL=C


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


Lisätietoja oppaan kohdasta Cleanup.
Poistetaan tarpeettomat tiedostot ja poistutaan chroot-ympäristöstä:


  apt-get clean
  [[apt-get]] clean
  rm -rf /tmp/*
  [[rm]] -rf /tmp/*
  rm /root/.bash_history
  rm /root/.bash_history
  rm /etc/resolv.conf
  rm /etc/resolv.conf
  umount /proc
  [[umount]] [[proc-tiedostojärjestelmä|/proc]]
  umount /sys
  umount [[sys-tiedostojärjestelmä|/sys]]
  exit
  [[exit]]
 
Irrotetaan vielä [[laitetiedostot|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
  chroot squashfs dpkg-query -W --showformat='${Package} ${Version}\n' >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
  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 -no[[lzma]]


oppaan kohdasta compress filesystem
Saatoit ihmetellä yllä, että miten levykuva voidaan noin vain poistaa, vaikka se on vielä liitettynä. Tämä onnistuu, koska vanha squashfs on [[mount]]attu 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|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
Irrotetaan 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 [[bash-skriptaus|skriptiksi]].


597472 live-rw
Nyt voit [[Levyn_polttaminen|polttaa levykuvan cd:lle]] mieluisimmalla ohjelmallasi.
116096 squashfs-rw
623200 zouppenroot.iso


==Mukauttaminen==
==Mukauttaminen==


eniten vievät paketit pois, uutta tilalle
Mikäli tarvitset lisää tilaa live-CD:lle, voit poistaa tarpeettomia paketteja. Jotta pystyt polttamaan levyn tavalliselle rompulle, ei lopullisen levykuvan koko saa kasvaa 700 megatavun yli.
lisätään universe pakettilistaan tarvittaessa
 
Paketit kannattaa poistaa käyttäen <tt>purge</tt>a, jolloin myös asetustiedostot poistuvat. Esimerkiksi näin:
 
apt-get remove --purge [[openoffice.org]]-core [[gimp]] gimp-data
 
Hyvän käsityksen kunkin paketin tilan kulutuksesta saa tällaisella virityksellä:
[[dpkg|dpkg-query]] -W --showformat='${Installed-Size} ${Package}\n' | sort -nr | less
 
Voit muokata tarvittaessa <tt>/etc/apt/[[sources.list]]</tt> -tiedostoa esimerkiksi ottamalla käyttöön universe-paketit. Voit samalla päivittää järjestelmän uusimpaan versioon:


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


ssh-kustomointi
===Etäpelastuslevy===
  apt-get install openssh-server autossh
 
cd ~/.ssh
Mikäli pelastettavan koneen luo ei pääse fyysisesti, mutta se on liitetty verkkoon, on mahdollisuus käyttää etäpelastusta. Tässä neuvotaan live-CD:n mukauttaminen automaattiseksi etäkäyttölevyksi, joka avaa tarvittavat palvelut etäkäyttöä varten ja muodostaa palomuurin ohittavat tunnelit.
 
Tätä käyttääksesi tarvitset:
* tunnukset kiinteällä hostnamelle varustetulle palvelimelle
* live-cd avattuna mukauttamista varten (sivun alussa ohjeet)
* oman julkisen [[ssh]]-avaimesi (voit luoda ssh-keygenillä)
 
Annetaan seuraavat komennot chrootissa, joka asetettiin sivun alun ohjeiden mukaan. Asennetaan [[ssh]]-palvelin ja [[autossh]]. Autossh on universe-pakettilähteessä, joten ota se käyttöön ennen tätä.
 
  apt-get install [[openssh]]-server autossh
 
Muodostetaan liverompulle ssh-avain. Anna ohjelman tallentaa tiedostot oletussijainteihin.
 
  ssh-keygen
  ssh-keygen


kopioi authorized_keys -tiedostoon oma julkinen avaimesi
Kopioi <tt>~/.ssh/authorized_keys</tt> -tiedostoon oman julkisen avaimesi rivi. Se löytyy usein kotikoneesi tiedostosta <tt>~/.ssh/id_rsa.pub</tt> tai <tt>~/.ssh/id_dsa.pub</tt>.
kopioi id_rsa.pub ssh-palvelimelle authorized_keysiin
 
lisää tiedostoon /etc/rc.local seuraavaa
Jotta pääset käyttämään kaksisuuntaista tunnelia, tarvitset myös toisensuuntaisen avaimenvaihdon. Kopioi liverompun tiedosto <tt>~/.ssh/id_rsa.pub</tt> käyttämäsi palvelimen kotihakemistosi tiedoston <tt>~/.ssh/authorized_keys</tt> loppuun. Tällöin liverompun käyttäjä pääsee myös kirjautumaan käyttämällesi palvelimellei. Tässä on siis potentiaalinen tietoturva-aukko myös tähän suuntaan. Sen välttämisestä on lopussa ohjeita.
 
Muokataan tiedostoa <tt>/etc/rc.local</tt> ja lisätään ennen riviä <tt>exit 0</tt> seuraavat rivit. Korvaa sana <tt>tunnus@hostname</tt> käyttämäsi palvelimen tiedoilla ja numerot <tt>8020</tt> ja <tt>8022</tt> käyttämilläsi palvelimen vapailla porteilla. Ensin mainittua porttia seuraavaksi suuremman portin on myös oltava vapaana, jotta tunneli toimisi.


  export AUTOSSH_GATETIME=0
  export AUTOSSH_GATETIME=0
  export AUTOSSH_POLL=60
  export AUTOSSH_POLL=60
  autossh -M AUTOSSHPORTTI -qf -4Ng -R SSHPORTTI:127.0.0.1:22 tunnus@hostname
  autossh -M 8020 -qf -4Ng -R 8022:127.0.0.1:22 tunnus@hostname
 
Jotta palvelimen rivi tallentuu liverompun <tt>known-hosts</tt>-tiedostoon, täytyy yhdistää yhden kerran ja sanoa 'yes'. Sisälle pitäisi päästä ilman salasanaa, jos kaikki on kunnossa.
[[ssh]] -4 tunnus@hostname
 
====Palvelimen asetukset====
 
Jotta etäpelastettavan koneen rompulla ei päästäisi käsiksi tiedostoihin palvelimella tai tekemään mitään muuta kuin porttiohjauksia, tarvitaan muokata riviä, joka on lisätty käytetyn tunnuksen tiedostoon <tt>~/.ssh/authorized_keys</tt>. Lisätään etäpelastuslevyn julkisen avaimen rivin alkuun:
 
command="/bin/[[false]]",no-agent-forwarding,no-X11-forwarding,no-pty
 
Mikäli halutaan, että palvelimen kautta voidaan ottaa suora yhteys ylläpidettävään koneeseen, täytyy säätää palvelimen asetuksia roottina. Mikäli tähän ei ole mahdollisuutta, tunneliin voidaan yhdistää vain suoraan palvelimen komentoriviltä yhdistämällä [[localhost]]iin.
 
Muokkaa palvelimen tiedostoa <tt>/etc/ssh/sshd_config</tt> ja lisää loppuun rivi (huomaa tabulaattorisisennys ja korvaa <tt>tunnus</tt> oikealla):
Match User tunnus
GatewayPorts yes
 
====Yhdistäminen ja pelastaminen====
 
Kun etäpelastustehtävä tulee, pyydä vaikkapa puhelimitse pelastettavaa konetta bootattavaksi polttamasi cd:n kera. Mikäli kone saa yhteyden verkkoon, pitäisi tunnelinkin olla ylhäällä. Mikäli et poistanut pelastuslevyltä [[Firefox]]ia, kokemattomankin etäkäyttäjänkin on helppo varmistaa netin toimiminen sillä.
 
Voit muodostaa yhteyden koneeseen seuraavasti (korvaa palvelimen nimi ja portti, jätä <tt>root</tt>:
 
ssh -p 8022 root@palvelin
 
Onnea. Olet etäyhteydessä. Voit liittää tietokoneen levyjä, lukea lokeja ja alkaa etsimään vikaa. Jos kyseessä on vaikkapa kiukutteleva [[Windows]]-kone, voit ottaa tiedot etänä talteen ja käynnistää Ubuntun asennuksen!


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


==EXTRAA==
Käynnistyskuvan voi vaihtaa piirtämällä vanhan <tt>live/isolinux/splash.pcx</tt>-kuvan pohjalta uuden ja
muuntamalla sen oikeaan muotoon. Tallenna muokkaamasi kuva sekä pcx- että raw ppm-muodoissa. Tämä näyttää toimivan, vaikka <tt>ppmtolss16</tt> valittaa liian isosta väripaletista. Komenna (korvaa <tt>UUSIKUVA</tt> kuvan polulla):
ppmtolss16 '#ffffff=7' < UUSIKUVA.ppm > live/isolinux/splash.rle
[[cat]] UUSIKUVA.pcx > live/isolinux/splash.pcx


kuvan muokkaus, toimii vaikka valittaa
Rompulta käynnistettäessä ruudulle listautuu valtaisa määrä kieliä, joista yleensä vain suomi ja englanti lienevät tarpeellisia. Voit siivota tarpeettomat kielet poistamalla rivejä tiedostosta <tt>live/isolinux/langlist</tt>.
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
[[Luokka:Ohjeet]]
live/isolinux/langlist
[[Luokka:Ubuntu]]