Ero sivun ”Juurihakemiston siirtäminen” versioiden välillä
Pb (keskustelu | muokkaukset) (uusi sivu) |
(uuid:stä juttua, tt-tageja) |
||
Rivi 10: | Rivi 10: | ||
mikä kopioi osion <tt>sda1</tt> sisällön bitti bitiltä osion <tt>sdb1</tt> päälle. Osiolla sdb1 oleva [[tiedostojärjestelmä]] ja kaikki tiedostot korvautuvat sda1:n vastaavilla. | mikä kopioi osion <tt>sda1</tt> sisällön bitti bitiltä osion <tt>sdb1</tt> päälle. Osiolla sdb1 oleva [[tiedostojärjestelmä]] ja kaikki tiedostot korvautuvat sda1:n vastaavilla. | ||
Tehdään uudesta juuriosiosta tarvittaessa aktiivinen (asetetaan sille boot-lippu). [[Parted]]-[[osiointityökalut|osiointityökalua]] käyttäen (juuriosiona sdb1) tämä onnistuisi komennolla | Tehdään uudesta juuriosiosta tarvittaessa aktiivinen (asetetaan sille <tt>boot</tt>-lippu). [[Parted]]-[[osiointityökalut|osiointityökalua]] käyttäen (juuriosiona <tt>sdb1</tt>) tämä onnistuisi komennolla | ||
parted /dev/sdb set 1 boot on | parted /dev/sdb set 1 boot on | ||
Luodaan live-cd:n alla osiolle sdb1 liitospiste /mnt/uusijuuri komennolla | Luodaan live-cd:n alla osiolle sdb1 liitospiste <tt>/mnt/uusijuuri</tt> komennolla | ||
[[mkdir]] /mnt/uusijuuri | [[mkdir]] /mnt/uusijuuri | ||
ja [[mount|liitetään]] osiolla oleva tiedostojärjestelmä siihen komennolla | ja [[mount|liitetään]] osiolla oleva tiedostojärjestelmä siihen komennolla | ||
mount /dev/sdb1 /mnt/uusijuuri | mount /dev/sdb1 /mnt/uusijuuri | ||
Avataan [[asetustiedosto]] /mnt/uusijuuri/etc/[[fstab]] halutulla [[tekstieditori]]lla ja muutetaan /dev/sda1:een viittaavat rivit viittaamaan /dev/sdb1:een. | Avataan [[asetustiedosto]] <tt>/mnt/uusijuuri/etc/[[fstab]]</tt> halutulla [[tekstieditori]]lla ja muutetaan <tt>/dev/sda1</tt>:een viittaavat rivit viittaamaan <tt>/dev/sdb1</tt>:een. Jos tiedostossa ei viitata osioon laitetiedostoilla (<tt>/dev/sdXY</tt>) vaan [[UUID]]-tunnuksella (muodossa <tt>UUID=xxx.yyy.zzz</tt> tai <tt>/dev/disk/by-id/ata-ST3120026A_3JT37VET-part5</tt>), on muutettava juurihakemiston (liitospiste <tt>/</tt>) UUID-tunnus uuden osion laitetiedostoksi (tässä <tt>/dev/sdb1</tt>). Myös uuden osion UUID-tunnusta voi käyttää; sen voi selvittää komennolla <tt>ls /dev/disk/ -l</tt> (tiedostot ovat [[symbolinen linkki|symbolisia linkkejä]]) tai komennolla <tt>[[blkid]]</tt>. | ||
Korjataan [[käynnistyslatain|käynnistyslataimen]] (yleensä [[GRUB]] tai [[LILO]]) asetustiedostossa olevat viittaukseet /boot-hakemiston vanhaan sijaintiosioon sekä juuriosioon. | Korjataan [[käynnistyslatain|käynnistyslataimen]] (yleensä [[GRUB]] tai [[LILO]]) asetustiedostossa olevat viittaukseet /boot-hakemiston vanhaan sijaintiosioon sekä juuriosioon. | ||
Rivi 84: | Rivi 84: | ||
mount /dev/sda2 /mnt/uusijuuri | mount /dev/sda2 /mnt/uusijuuri | ||
Avataan [[asetustiedosto]] /mnt/uusijuuri/etc/[[fstab]] halutulla [[tekstieditori]]lla ja muutetaan /dev/sdc5:een viittaavat rivit viittaamaan /dev/sda2:een. | Avataan [[asetustiedosto]] <tt>/mnt/uusijuuri/etc/[[fstab]]</tt> halutulla [[tekstieditori]]lla ja muutetaan <tt>/dev/sdc5</tt>:een viittaavat rivit viittaamaan /dev/sda2:een. Jos tiedostossa käytetään laitetiedoston sijaan UUID-tunnuksia, muokataan tiedostoa kuten levykuvamuotoa käsittelevässä osassa kerrottiin. | ||
Tarkistetaan, että hakemistosta /mnt/uusijuuri/dev/ löytyvät [[Laitetiedostot#.2Fdev.2Fconsole_ja_.2Fdev.2Fnull|staattiset laitetiedostot]] <tt>console</tt> ja <tt>null</tt>. Mikäli jompaakumpaa tai molempia ei löydy, voi ne luoda komennoilla | Tarkistetaan, että hakemistosta /mnt/uusijuuri/dev/ löytyvät [[Laitetiedostot#.2Fdev.2Fconsole_ja_.2Fdev.2Fnull|staattiset laitetiedostot]] <tt>console</tt> ja <tt>null</tt>. Mikäli jompaakumpaa tai molempia ei löydy, voi ne luoda komennoilla | ||
Rivi 108: | Rivi 108: | ||
Käynnistyslatain täytyy nyt asentaa uudelleen riippumatta käytetystä käynnistyslataimesta. Tätä ei tarvitse tehdä, mikäli /boot-hakemisto ei sijaitse siirretyllä juuriosiolla. | Käynnistyslatain täytyy nyt asentaa uudelleen riippumatta käytetystä käynnistyslataimesta. Tätä ei tarvitse tehdä, mikäli /boot-hakemisto ei sijaitse siirretyllä juuriosiolla. | ||
Käynnistyslataimen uudelleenasennusta varten liitetään hakemiston /mnt/uusijuuri alle /dev- ja /[[proc]]-tiedostojärjestelmät komennoilla | Käynnistyslataimen uudelleenasennusta varten liitetään hakemiston <tt>/mnt/uusijuuri</tt> alle <tt>/dev</tt>- ja <tt>/[[proc]</tt>]-tiedostojärjestelmät komennoilla | ||
mount -o bind /dev /mnt/uusijuuri/dev | mount -o bind /dev /mnt/uusijuuri/dev | ||
mount -o bind /proc /mnt/uusijuuri/proc | mount -o bind /proc /mnt/uusijuuri/proc | ||
Rivi 154: | Rivi 154: | ||
Jotta myös [[piilotiedosto]]t tulisivat varmasti mukaan, [[putkitus|putkitetaan]] komennolla <tt>ls -A</tt> tuotettu luettelo tiedostoista <tt>xargs</tt>-komennon kautta kopiontikomennolle <tt>cp</tt>. Linkit ja tiedostojen määreet säästetään ja myös hakemistot otetaan mukaan cp:n valitsimella <tt>-a</tt>. Varmuuskopiohakemiston alle mahdollisesti liitetyt muut tiedostojärjestelmät jätetään huomiotta valitsimella <tt>-x</tt>. | Jotta myös [[piilotiedosto]]t tulisivat varmasti mukaan, [[putkitus|putkitetaan]] komennolla <tt>ls -A</tt> tuotettu luettelo tiedostoista <tt>xargs</tt>-komennon kautta kopiontikomennolle <tt>cp</tt>. Linkit ja tiedostojen määreet säästetään ja myös hakemistot otetaan mukaan cp:n valitsimella <tt>-a</tt>. Varmuuskopiohakemiston alle mahdollisesti liitetyt muut tiedostojärjestelmät jätetään huomiotta valitsimella <tt>-x</tt>. | ||
Tarkistetaan, että hakemistosta /mnt/juuri/dev/ löytyvät [[Laitetiedostot#.2Fdev.2Fconsole_ja_.2Fdev.2Fnull|staattiset laitetiedostot]] <tt>console</tt> ja <tt>null</tt>. Mikäli jompaakumpaa tai molempia ei löydy, voi ne luoda komennoilla | Tarkistetaan, että hakemistosta <tt>/mnt/juuri/dev/</tt> löytyvät [[Laitetiedostot#.2Fdev.2Fconsole_ja_.2Fdev.2Fnull|staattiset laitetiedostot]] <tt>console</tt> ja <tt>null</tt>. Mikäli jompaakumpaa tai molempia ei löydy, voi ne luoda komennoilla | ||
[[mknod]] -m 600 /mnt/juuri/dev/console c 5 1 | [[mknod]] -m 600 /mnt/juuri/dev/console c 5 1 | ||
mknod -m 666 /mnt/juuri/dev/null c 1 3 | mknod -m 666 /mnt/juuri/dev/null c 1 3 | ||
Mikäli käytössä on [[GRUB]]-[[käynnistyslatain]] tai jos [[Hakemistorakenne#Juurihakemisto|/boot]]-hakemisto sijaitsee eri osiolla kuin juurihakemisto, pitäisi järjestelmän nyt toimia kuten ennenkin. | Mikäli käytössä on [[GRUB]]-[[käynnistyslatain]] tai jos [[Hakemistorakenne#Juurihakemisto|/boot]]-hakemisto sijaitsee eri osiolla kuin juurihakemisto, pitäisi järjestelmän nyt toimia kuten ennenkin. | ||
Jos käytössä on [[LILO]] ja /boot-hakemisto sijaitsee juuriosiolla, täytyy käynnistyslatain vielä asentaa uudelleen seuraavalla tavalla: | Jos käytössä on [[LILO]] ja <tt>/boot</tt>-hakemisto sijaitsee juuriosiolla, täytyy käynnistyslatain vielä asentaa uudelleen seuraavalla tavalla: | ||
[[mount|Liitetään]] hakemiston /mnt/juuri alle /dev- ja /[[proc]]-tiedostojärjestelmät komennoilla | [[mount|Liitetään]] hakemiston <tt>/mnt/juuri</tt> alle <tt>/dev</tt>- ja /[[proc]]-tiedostojärjestelmät komennoilla | ||
mount -o bind /dev /mnt/uusijuuri/dev | mount -o bind /dev /mnt/uusijuuri/dev | ||
mount -o bind /proc /mnt/uusijuuri/proc | mount -o bind /proc /mnt/uusijuuri/proc |
Versio 18. huhtikuuta 2009 kello 00.28
Juurihakemiston siirtämiseen osiolta toiselle on käytännössä kaksi vaihtoehtoa, levykuvan luominen sekä tietojen kopiointi tavalliseen tapaan tiedostomuodossa. Levykuva on hyvä vaihtoehto, mikäli molemmat osiot ovat samankokoisia ja tyypiltään samankaltaisia (esimerkiksi tavallisia kiintolevyosioita ilman LVM:ää, salausta ym). Muussa tapauksessa on yleensä syytä siirtää juurihakemiston sisältö tiedostomuodossa.
Siirto muuttuu yksinkertaisemmaksi, mikäli juuriosion sijainti ja nimi eivät muutu. Tämä on usein ajankohtaista palautettaessa juurihakemistosta tehtyä varmuuskopiota.
Levykuvamuoto
Oletetaan, että alkuperäinen juurihakemisto sijaitsee osiolla, jonka laitetiedosto on /dev/sda1, ja se halutaan siirtää osiolle /dev/sdb1.
Käynnistetään kone joltakin live-cd:ltä ja annetaan komento
dd if=/dev/sda1 of=/dev/sdb1
mikä kopioi osion sda1 sisällön bitti bitiltä osion sdb1 päälle. Osiolla sdb1 oleva tiedostojärjestelmä ja kaikki tiedostot korvautuvat sda1:n vastaavilla.
Tehdään uudesta juuriosiosta tarvittaessa aktiivinen (asetetaan sille boot-lippu). Parted-osiointityökalua käyttäen (juuriosiona sdb1) tämä onnistuisi komennolla
parted /dev/sdb set 1 boot on
Luodaan live-cd:n alla osiolle sdb1 liitospiste /mnt/uusijuuri komennolla
mkdir /mnt/uusijuuri
ja liitetään osiolla oleva tiedostojärjestelmä siihen komennolla
mount /dev/sdb1 /mnt/uusijuuri
Avataan asetustiedosto /mnt/uusijuuri/etc/fstab halutulla tekstieditorilla ja muutetaan /dev/sda1:een viittaavat rivit viittaamaan /dev/sdb1:een. Jos tiedostossa ei viitata osioon laitetiedostoilla (/dev/sdXY) vaan UUID-tunnuksella (muodossa UUID=xxx.yyy.zzz tai /dev/disk/by-id/ata-ST3120026A_3JT37VET-part5), on muutettava juurihakemiston (liitospiste /) UUID-tunnus uuden osion laitetiedostoksi (tässä /dev/sdb1). Myös uuden osion UUID-tunnusta voi käyttää; sen voi selvittää komennolla ls /dev/disk/ -l (tiedostot ovat symbolisia linkkejä) tai komennolla blkid.
Korjataan käynnistyslataimen (yleensä GRUB tai LILO) asetustiedostossa olevat viittaukseet /boot-hakemiston vanhaan sijaintiosioon sekä juuriosioon.
Grubin tapauksessa korjattaisiin kernel-rivin kohta root= esimerkiksi muodosta
root=/dev/sda1
muotoon
root=/dev/sdb1
Tässä kohdassa saattaa alun perin olla määriteltynä myös esimerkiksi /dev/disk/by-uuid/-alkuinen laitetiedosto, joka kuitenkin viittaa samaan osioon kuin /dev/sd-alkuinenkin.
Toinen Grubin asetustiedostossa korjattava asia on root-alkuinen rivi, joka saatettaisiin muuttaa esimerkiksi muodosta
root (hd0,0)
(eli sda1) muotoon
root (hd1,0)
(sdb1). Tätä ei tarvitse tehdä, mikäli /boot-hakemisto ei sijaitse siirretyllä juuriosiolla.
Lilon tapauksessa on korjattava boot=- ja root=-alkuiset rivit osoittamaan oikeaan laitetiedostoon. boot=-riviä ei muuteta, mikäli /boot-hakemisto ei sijaitse siirretyllä juuriosiolla.
Kun sekä fstab että käynnistyslataimen asetustiedosto on korjattu, täytyy käynnistyslatain asentaa uudelleen (riippumatta käytetystä käynnistyslataimesta). Tätä ei tarvitse tehdä, mikäli /boot-hakemisto ei sijaitse siirretyllä juuriosiolla.
Käynnistyslataimen uudelleenasennusta varten liitetään hakemiston /mnt/uusijuuri alle /dev- ja /proc-tiedostojärjestelmät komennoilla
mount -o bind /dev /mnt/uusijuuri/dev mount -o bind /proc /mnt/uusijuuri/proc
ja tehdään siitä tilapäinen juurihakemisto komennolla
chroot /mnt/uusijuuri
Grub voidaan asentaa uudelleen antamalla komento
grub
ja sen jälkeen esimerkiksi komennot
grub> root (hd1,0) grub> setup (hd1) grub> quit
riippuen /boot-hakemiston sijaintiosiosta ja -kiintolevystä. (hd1,0) on sama asia kuin sdb1 ja (hd1) sama asia kuin sdb.
Lilon uudelleenasennus onnistuu komennolla
/sbin/lilo
chrootista poistutaan komennolla
exit
Tietokone voidaan nyt käynnistää uudelleen, ja uudella juuriosiolla olevan järjestelmän pitäisi toimia.
Tiedostomuoto
Oletetaan, että juurihakemistoa ollaan siirtämässä osiolta, jonka laitetiedosto on /dev/sdc5 osiolle /dev/sda2.
Tehdään uudesta juuriosiosta tarvittaessa aktiivinen (asetetaan sille boot-lippu). Parted-osiointityökalua käyttäen (uutena juuriosiona sda2) tämä onnistuisi komennolla
parted /dev/sda set 2 boot on
Luodaan uudelle juuriosiolle tiedostojärjestelmä. Ext3-tiedostojärjestelmän luominen onnistuisi esimerkiksi komennolla
mkfs.ext3 -m 1 /dev/sda2
missä valitsimella -m asetetaan pääkäyttäjälle varattu osuus tiedostojärjestelmästä yhteen prosenttiin (oletuksena on kaksi prosenttia, mikä on yleensä aivan liikaa nykyisillä suurilla levyillä).
Liitetään uusi juuritiedostojärjestelmä. Liitospiste voitaisiin luoda komennolla
mkdir /mnt/uusijuuri
ja itse liitos suorittaa komennolla
mount /dev/sda2 /mnt/uusijuuri
Kopioidaan juurihakemiston (/) tiedostot uudelle osiolle komennolla
cp -ax / /mnt/uusijuuri
Linkit ja tiedostojen määreet säästetään ja myös hakemistot otetaan mukaan valitsimella -a. Juurihakemiston alle liitetyt muut tiedostojärjestelmät (esimerkiksi cd-levyt ja uusi juuriosio) jätetään huomiotta valitsimella -x.
Käynnistetään tietokone live-cd:ltä ja liitetään sekä vanha että uusi juuritiedostojärjestelmä. Liitospisteet niille voitaisiin luoda komennolla
mkdir /mnt/vanhajuuri /mnt/uusijuuri
ja liitos suorittaa komennoilla
mount /dev/sdc5 /mnt/vanhajuuri mount /dev/sda2 /mnt/uusijuuri
Avataan asetustiedosto /mnt/uusijuuri/etc/fstab halutulla tekstieditorilla ja muutetaan /dev/sdc5:een viittaavat rivit viittaamaan /dev/sda2:een. Jos tiedostossa käytetään laitetiedoston sijaan UUID-tunnuksia, muokataan tiedostoa kuten levykuvamuotoa käsittelevässä osassa kerrottiin.
Tarkistetaan, että hakemistosta /mnt/uusijuuri/dev/ löytyvät staattiset laitetiedostot console ja null. Mikäli jompaakumpaa tai molempia ei löydy, voi ne luoda komennoilla
mknod -m 600 /mnt/uusijuuri/dev/console c 5 1 mknod -m 666 /mnt/uusijuuri/dev/null c 1 3
Korjataan käynnistyslataimen (yleensä GRUB tai LILO) asetustiedostossa olevat viittaukseet /boot-hakemiston vanhaan sijaintiosioon sekä juuriosioon.
Grubin tapauksessa korjattaisiin kernel-rivin kohta root= esimerkiksi muodosta
root=/dev/sdc5
muotoon
root=/dev/sda2
Tässä kohdassa saattaa alun perin olla määriteltynä myös esimerkiksi /dev/disk/by-uuid/-alkuinen laitetiedosto, joka kuitenkin viittaa samaan osioon kuin /dev/sd-alkuinenkin.
Toinen Grubin asetustiedostossa korjattava asia on root-alkuinen rivi, joka saatettaisiin muuttaa esimerkiksi muodosta
root (hd2,4)
(eli sdc5) muotoon
root (hd0,1)
(sda2). Tätä ei tarvitse tehdä, mikäli /boot-hakemisto ei sijaitse siirretyllä juuriosiolla.
Lilon tapauksessa on korjattava boot=- ja root=-alkuiset rivit osoittamaan oikeaan laitetiedostoon. boot=-riviä ei muuteta, mikäli /boot-hakemisto ei sijaitse siirretyllä juuriosiolla.
Käynnistyslatain täytyy nyt asentaa uudelleen riippumatta käytetystä käynnistyslataimesta. Tätä ei tarvitse tehdä, mikäli /boot-hakemisto ei sijaitse siirretyllä juuriosiolla.
Käynnistyslataimen uudelleenasennusta varten liitetään hakemiston /mnt/uusijuuri alle /dev- ja /[[proc]]-tiedostojärjestelmät komennoilla
mount -o bind /dev /mnt/uusijuuri/dev mount -o bind /proc /mnt/uusijuuri/proc
ja tehdään siitä tilapäinen juurihakemisto komennolla
chroot /mnt/uusijuuri
Grub voidaan asentaa uudelleen antamalla komento
grub
ja sen jälkeen esimerkiksi komennot
grub> root (hd0,1) grub> setup (hd0) grub> quit
riippuen /boot-hakemiston sijaintiosiosta ja -kiintolevystä. (hd0,1) on sama asia kuin sda2 ja (hd0) sama asia kuin sda.
Lilon uudelleenasennus onnistuu komennolla
/sbin/lilo
chrootista poistutaan komennolla
exit
Tietokone voidaan nyt käynnistää uudelleen, ja uudella juuriosiolla olevan järjestelmän pitäisi toimia.
Varmuuskopion palautus
Levykuvamuoto
Käynnistetään tietokone esimerkiksi live-cd:ltä. Kopioidaan aikaisemmin luotu varmuuskopiolevykuva (tässä varmuuskopio.img) juuriosion (tässä /dev/sdb3) päälle.
dd if=varmuuskopio.img of=/dev/sdb3
Järjestelmän pitäisi nyt toimia kuten ennenkin.
Koska data löytyy samannimiseltä osiolta ja samasta paikasta kuin aikaisemminkin, ei esimerkiksi fstabia tai käynnistyslataimen asetuksia tarvitse muokata.
Tiedostomuoto
Käynnistetään tietokone esimerkiksi live-cd:ltä.
Luodaan juuriosiolle tarvittaessa uusi tiedostojärjestelmä, eli alustetaan se. Esimerkiksi ext3-tiedostojärjestelmän voisi luoda osiolle (tässä /dev/sdb3) vaikkapa komennolla
mkfs.ext3 -m 1 /dev/sdb3
missä valitsimella -m asetetaan pääkäyttäjälle varattu osuus tiedostojärjestelmästä yhteen prosenttiin.
Luodaan live-cd:n alla osiolle /dev/sdb3 liitospiste /mnt/juuri komennolla
mkdir /mnt/juuri
ja liitetään osiolla oleva tiedostojärjestelmä siihen komennolla
mount /dev/sdb3 /mnt/juuri
Kopioidaan varmuuskopioidut juurihakemiston tiedostot juuriosiolle komennoilla
cd /polku/varmuuskopiohakemistoon/ ls -A | xargs -I '{}' cp -ax '{}' /mnt/juuri
Jotta myös piilotiedostot tulisivat varmasti mukaan, putkitetaan komennolla ls -A tuotettu luettelo tiedostoista xargs-komennon kautta kopiontikomennolle cp. Linkit ja tiedostojen määreet säästetään ja myös hakemistot otetaan mukaan cp:n valitsimella -a. Varmuuskopiohakemiston alle mahdollisesti liitetyt muut tiedostojärjestelmät jätetään huomiotta valitsimella -x.
Tarkistetaan, että hakemistosta /mnt/juuri/dev/ löytyvät staattiset laitetiedostot console ja null. Mikäli jompaakumpaa tai molempia ei löydy, voi ne luoda komennoilla
mknod -m 600 /mnt/juuri/dev/console c 5 1 mknod -m 666 /mnt/juuri/dev/null c 1 3
Mikäli käytössä on GRUB-käynnistyslatain tai jos /boot-hakemisto sijaitsee eri osiolla kuin juurihakemisto, pitäisi järjestelmän nyt toimia kuten ennenkin.
Jos käytössä on LILO ja /boot-hakemisto sijaitsee juuriosiolla, täytyy käynnistyslatain vielä asentaa uudelleen seuraavalla tavalla:
Liitetään hakemiston /mnt/juuri alle /dev- ja /proc-tiedostojärjestelmät komennoilla
mount -o bind /dev /mnt/uusijuuri/dev mount -o bind /proc /mnt/uusijuuri/proc
ja tehdään siitä tilapäinen juurihakemisto komennolla
chroot /mnt/juuri
Asennetaan LILO-käynnistyslatain komennolla
/sbin/lilo
ja poistutaan tilapäisestä juurihakemistosta komennolla
exit