Ero sivun ”Ubuntun live-CD:n mukauttaminen” versioiden välillä
Siirry navigaatioon
Siirry hakuun
Ubuntun live-CD:n mukauttaminen (muokkaa)
Versio 11. heinäkuuta 2008 kello 20.39
, 11. heinäkuuta 2008siirsi sivun ”Ubuntun Live-CD:n mukauttaminen” uudelle nimelle ”Ubuntun live-CD:n mukauttaminen”
(→Mukauttaminen: kaunistaminen) |
Pb (keskustelu | muokkaukset) p (siirsi sivun ”Ubuntun Live-CD:n mukauttaminen” uudelle nimelle ”Ubuntun live-CD:n mukauttaminen”) |
||
(9 välissä olevaa versiota 4 käyttäjän tekeminä ei näytetä) | |||
Rivi 1: | Rivi 1: | ||
[[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- | 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== | ||
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 | 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. | ||
Liitetään kaikki levyt muokkausoikeuksin | Liitetään kaikki levyt muokkausoikeuksin. | ||
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: | 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 | [[mkdir]] -p live live-ro live-rw squashfs squashfs-ro squashfs-rw | ||
mount -o loop ALKUPERÄINEN_ISO live-ro | [[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 | ||
Komentojen seurauksena | 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. | ||
Seuraavaksi valmistellaan verkkoyhteydet ja chroot-ympäristö, jotta päästäisiin muokkaamaan liveromppua livenä. | 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/ | [[cp]] /etc/resolv.conf squashfs/etc/ | ||
mount --bind /dev/ squashfs/dev | mount --bind /dev/ squashfs/dev | ||
chroot squashfs | chroot squashfs | ||
Nyt eteen avautuva komentotulkki on live-cd:llä. Siellä on valmiina tarvittavat perusohjelmistot mm. komentotulkin käyttöä varten. | 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 | 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. | ||
mount -t proc none /proc | mount -t proc none /proc | ||
mount -t sysfs none /sys | mount -t sysfs none /sys | ||
export HOME=/root | [[export]] HOME=/root | ||
export LC_ALL=C | export LC_ALL=C | ||
Rivi 46: | Rivi 46: | ||
Poistetaan tarpeettomat tiedostot ja poistutaan chroot-ympäristöstä: | 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 | ||
Rivi 60: | Rivi 60: | ||
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. | 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 | rm live/casper/filesystem.squashfs | ||
mksquashfs squashfs live/casper/filesystem.squashfs - | mksquashfs squashfs live/casper/filesystem.squashfs -no[[lzma]] | ||
Saatoit | 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. | ||
Tässä vaiheessa voit muokata levyn nimen haluamaksesi tiedostosta <tt>live/README.diskdefines</tt>. | Tässä vaiheessa voit muokata levyn nimen haluamaksesi tiedostosta <tt>live/README.diskdefines</tt>. | ||
Lopuksi muodostetaan md5-summat uudestaan. | 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ä. | 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 ../UUSI_ISO.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 .. | ||
Irrotetaan mukauttamisen aikaiset tiedostojärjestelmät: | |||
umount live squashfs squashfs-ro live-ro | umount live squashfs squashfs-ro live-ro | ||
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. | 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]]. | ||
Nyt voit [[Levyn_polttaminen|polttaa levykuvan cd:lle]] mieluisimmalla ohjelmallasi. | |||
==Mukauttaminen== | ==Mukauttaminen== | ||
Mikäli tarvitset lisää tilaa | 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. | ||
Paketit kannattaa poistaa käyttäen | 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 | apt-get remove --purge [[openoffice.org]]-core [[gimp]] gimp-data | ||
Hyvän käsityksen kunkin paketin tilan kulutuksesta saa tällaisella virityksellä: | Hyvän käsityksen kunkin paketin tilan kulutuksesta saa tällaisella virityksellä: | ||
dpkg-query -W --showformat='${Installed-Size} ${Package}\n' | sort -nr | less | [[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: | 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 update | apt-get update | ||
Rivi 106: | Rivi 109: | ||
===Etäpelastuslevy=== | ===Etäpelastuslevy=== | ||
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. | ||
apt-get install openssh-server autossh | |||
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 <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>. | |||
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 | 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! | |||
==Muuta mukautettavaa== | |||
= | 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 | |||
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>. | |||
[[Luokka:Ohjeet]] | |||
[[Luokka:Ubuntu]] |