Lenne 2 azonos méretű partíció az egyik ext2 a másik ext3. hogyan tudnám átmásolni "konvertálni" az ext2-es filerendszert a ext3-ra úgy, hogy az ext2 megmaradjon. A sima file másolás nem megoldható, mert a root file rendszert is kéne másolni.
- 1482 megtekintés
Hozzászólások
tar --create --one-file-system --totals --directory /mnt/ext2 . | tar --extract --preserve --atime-preserve --directory /mnt/ext3
- A hozzászóláshoz be kell jelentkezni
Nulladik lépésben single mód, minden szolgáltatás leállít, lsof kimenete megnéz, hogy tényleg nincs olyan nyitott fájl, ami problémát okozna... Ha ez kész, akkor egy jól irányzott find (-depth nem lefelejteni, /proc és /dev kihagy) a kimenet meg odaadni egy cpio-nak, (-pdmv ha jól tévedek) aztán sutty, már megy is. (Ez az egyike a "101 gyakori kérdés láma kezdő rendszergazdáktól" c. el nem készült doksinak...)
- A hozzászóláshoz be kell jelentkezni
`dd`
+
`tune2fs -j`
?
- A hozzászóláshoz be kell jelentkezni
Jujjjjjjjj.... :-/
- A hozzászóláshoz be kell jelentkezni
ha nincs felmountolva a src particio (vagy mondjuk readonly) es tenyleg egyformak a particiok, akkor a dd teljesen jo.
- A hozzászóláshoz be kell jelentkezni
Blokkra egyformák, nincs felcsatolva... No, az utóbbi ugye már is bukik, mert a / -t kéne költöztetni, ahogy olvasom a kérdést, pontosabban annak a végét is...
- A hozzászóláshoz be kell jelentkezni
de masik hddre koltozteted? vagy csak at akarod konvertalni? miert nem jo ott ahol van?
---
Apple iMac 20"
áéíóöőúüű
- A hozzászóláshoz be kell jelentkezni
Teljesen másik hddre menne minden, azaz az összes partíció, de a régi vinyón maradna minden a régiben.
Ha lehetséges, akkor felmountolt lennének a régi partíciók, de ha szükséges megoldható anélkül is.
- A hozzászóláshoz be kell jelentkezni
Live linux bebootol
ext2 felmount ro
ext3 felmount rw
+rsync
vagy
nem mountol semmit
csinál tükör ext2
dd if=/dev/forras of=/dev/cel bs=1024k
majd a cel konvertál ext3-ba
esetleg soft raid1-el forrás türöz, softraid bont de én ilynt csak hw raid megoldással csináltam.
Ha átadod a tudásod neked attól még nem lesz kevesebb belőle..
- A hozzászóláshoz be kell jelentkezni
bootolaskor add a kernel parameterekhez, hogy
ro init=/bin/sh
. igy nem indul el a teljes rendszer, hanem kapsz egy promptot, a rootfs meg ro-ban lesz felmountolva. igy a fent mar leirtak kozul szinte barmelyik menni fog:
-
dd if=/dev/src of=/dev/target; tune2fs -j /dev/target
-
dd_rescue /dev/src /dev/target; tune2fs -j /dev/target
-
mount /dev/target /mnt; cp -avr -x / /mnt/; umount /mnt
-
mount /dev/target /mnt; rsync -avr -x / /mnt/; umount /mnt
- ...
vigyazz, ne gepeld el a pranacsot, nem lesz job control es nem tudod CTRL+C-vel leloni, ha elszurod.
- A hozzászóláshoz be kell jelentkezni
Az init=/bin/sh még stimmel. A dd viszont nagyon nem erre való. Ja, és a cpio kimaradt :-)
cd /
mkdir idemegy
mount /dev/_az_ext3_particio /idemegy -t ext3 -o noatime
find . -depth -mount -print | cpio -Bpdumv /idemegy
Rvid magyarázat: a -depth a könyvtáraknak előbb a tartalmát listázza, és utána magát a könyvtárat, így a cpio előbb másolja a könyvtárak tartalmát (ezért van ott a "d" kapcsoló), utána pedig magát a könyvtárat. Így a könyvtár időadatai (mtime pl.) is azonosak maradnak. A -mount vagy a -xdev azt mondja, hogy egy device-on belül keressen, így nem kell trükközni a /idemegy könyvtár (ahova a másolás történk, illetve a /proc trükkös kiszűrésével).
A cpio esetén a "B" az 5k-ra emeli a blokkméretet az 512 bájtról, a "p" a copy-pass mód (az STDIN-en kapott fájlok másolása a paraméterben megadott helyre), a "d"-vel megcsinálja a könyvtárat is, ha kell (kell, mert a find szándékosan előbb adja a fájlt, utána a könyvtárat), az "u" az unconditional, azaz kérdés nélkül felülírja a létező fájlokat (a könyvtárak előbb elkészülnek, mint a másolás, őket kell fölülcsapni), az "m" a módosítási időt őrzi meg a másolt fájlok esetén, a "v" meg a verbose mód, hogy lásd, hol tart a dolog.
- A hozzászóláshoz be kell jelentkezni