Muokataan sivua Ubuntun live-CD:n mukauttaminen
Siirry navigaatioon
Siirry hakuun
Kumoaminen voidaan suorittaa. Varmista alla olevasta vertailusta, että haluat saada aikaan tämän lopputuloksen, ja sen jälkeen julkaise alla näkyvät muutokset.
Nykyinen versio | Oma tekstisi | ||
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ä. | |||
Mukauttamisen tekee työlääksi kaksinkertainen kääriminen | 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 | 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 casperia 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 | |||
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 syntyy 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 bootatun järjestelmän juurihakemisto, Esimerkiksi asennetut ohjelmat sijaitsevat squashfs-hakemistossa. | ||
Seuraavaksi valmistellaan | 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 | mount --bind /dev/ squashfs/dev | ||
chroot squashfs | chroot squashfs | ||
Nyt eteen avautuva | 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ö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 proc none /proc | ||
mount -t sysfs none /sys | mount -t sysfs none /sys | ||
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 | |||
rm -rf /tmp/* | |||
rm /root/.bash_history | rm /root/.bash_history | ||
rm /etc/resolv.conf | rm /etc/resolv.conf | ||
umount /proc | |||
umount | umount /sys | ||
exit | |||
Irroitetaan vielä 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 | |||
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 | |||
rm live/casper/filesystem.squashfs | rm live/casper/filesystem.squashfs | ||
mksquashfs squashfs live/casper/filesystem.squashfs - | mksquashfs squashfs live/casper/filesystem.squashfs -nolzma | ||
Saatoit | 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 <tt>live/README.diskdefines</tt>. | Tässä vaiheessa voit muokata levyn nimen haluamaksesi tiedostosta <tt>live/README.diskdefines</tt>. | ||
Lopuksi muodostetaan | Lopuksi muodostetaan md5-summat uudestaan. | ||
rm live/md5sum.txt | rm live/md5sum.txt | ||
(cd live && | (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 . | |||
cd .. | cd .. | ||
Irroitetaan 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 | 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. | ||
==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 purgea, jolloin myös asetustiedostot poistuvat. Esimerkiksi näin: | ||
apt-get remove --purge | 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 | |||
Voit muokata tarvittaessa <tt>/etc/apt/ | 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 109: | Rivi 106: | ||
===Etäpelastuslevy=== | ===Etäpelastuslevy=== | ||
ssh-kustomointi | |||
apt-get install openssh-server autossh | |||
cd ~/.ssh | |||
apt-get install | |||
ssh-keygen | 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_GATETIME=0 | ||
export AUTOSSH_POLL=60 | export AUTOSSH_POLL=60 | ||
autossh -M | 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 |