Sziasztok. Van egy 250 gigás hdd, ezen van a rendszer és minden lényeges. Van egy 160 gigás másik vinyó, amin semmi sincs, csak egy teljes méretét elfoglaló üres ext3.
/dev/sda1 226G 71G 144G 33% /
Úgy gondoltam hogy dd-vel csinálok egy image fájlt az egész sda-ról ami ugyan 250 gb lenne, de be lehet tömöríteni, és találtam módszert amivel on-the-fly lehet (állítólag) tömöritett image -t kreálni.
dd if=/dev/sda | gzip > disk.img.gz
Elindult majd aludtam egyet és ctrl-c -vel leállítottam miután felkeltem, mert emlékeztem hogy ilyenkor kiírja hol tartott. 150 gb körül szakadt meg. Mivel a cél fs valójában 141 gigás így gondolom hogy a forrásból olvasott be 150 gigát, a cél meg - valamekkora lett. Gyorsan töröltem, szal jól elnooboztam, meg kellett volna néznem mekkora lett.
A kérdés az lenne, hogy a parancs megfelelő-e arra hogy a 250 gigás diszk 71 foglalt gb-ját dd-zze on the fly tömöritve egy 160 gigás ext3-ra? Lényeges, hogy ne kelljen az unalomig ismert sztech boltba ismét bemennem vinyóért.
Köszi!
- 2272 megtekintés
Hozzászólások
Hat, az sda-n egyik particio se legyen iras alatt, semmilyen szinten sem. ha arrol futtatod a rendszert, akkor "remount,ro", oszt utana (egyebkent meg szopo lehet, mert korrupt lesz az fs). ha bootcd-rol inditottad a fenti parancsot, akkor fasza lehet minden. felteve persze hogy a gzippelt fs elfe'r.
- A hozzászóláshoz be kell jelentkezni
a dd be fogja olvasni mind a 250Gb-t. Ha 71Gb adatod van rajta, akkor nem lesz nagyobb a keletkező tömörített állomány, mint 71 Gb. Viszont ki kell várni, amíg a teljes 250Gb-t végignyalja.
- A hozzászóláshoz be kell jelentkezni
Én így használom:
dd if=/dev/sda conv=sync,noerror bs=128K | gzip -c > /mnt/external_disk/sda_disk.gz
Igaz, az sda csak 10 gigás...
Tényleg, Rsync nem lenne jobb neked?
--
Coding for fun. ;)
- A hozzászóláshoz be kell jelentkezni
Szerintem ott elhal a dolog, hogy mas a ket particio merete, igy a dd nem feltetlen a legjobb otlet. (Ha csak image file kell, akkor persze jo lehet a dd is, a fentebb irtak kozul valamelyik biztos megy :P)
Inkabb rsyncelj vagy tarolj:
root:/# tar -c --one-file-system -p | tar -C /mnt/masikvinyo -x
Kb igy.
- A hozzászóláshoz be kell jelentkezni
Az én kályhám ez ügyben:
http://www.hwsw.hu/oldal.php3?cikkid=755&oldal=4
Egy kis izelítő:
A dd-vel való teljes reprodukció előnye, a tökéletes másolás, egyben az egyik legnagyobb hátránya is...
Amennyiben az üres helyen visszamaradt információktól meg szeretnénk szabadulni, forduljuk csak továbbra is a dd-hez. Bizonyára hallottunk már a Linux rendszerek /dev/zero eszközéről, ezt fogjuk most használni:
dd if=/dev/zero of=/mnt/hda1/00000000.000
Mit csinálhat ez a parancs? Az első felét, gondolom nem szükséges megmagyarázni: nullákat olvasunk ki a /dev/zero-ból. A második fele már érdekesebb, egy 00000000.000 nevű fájlba kerülnek a devzéróból kiolvasott nullák. Nagyszerű, zérókat teszünk a nullába, ez már maga a Zen...
... a lementendő fájlrendszer szabad területeit ténylegesen is kiürítettük, nulláztuk így hozzáfoghatunk a lenyomat elkészítéséhez, de nem a szokásos módon, hanem egy csővezetéken keresztül írjuk ki az adatokat a tárolóeszközre...
- A hozzászóláshoz be kell jelentkezni
Az a gond, hogy a dd átviszi a fájlrendszer által szabadnak nyilvántartott blokkokat is, ahol esetleg korábbi, törölt adat van. Ezt a gzip-nek ugyanúgy tömörítenie kell, ami random "szemétre" nem lesz hatékony.
A fájlméretet csökkentheted, ha ezt a nem használt helyet teleírod 0-val. A legegyszerűbb módszer:
dd if=/dev/zero of=/nullfile bs=1M
Mikor tele lesz a fájlrendszer, meg fog állni. Ezután töröld le a nullfile-t:
rm /nullfile
Ha több fájlrendszer van az diszken, csatold fel mindet, és mindegyiket írd így tele 0-val. Ezután dd-zd a diszket, a gzip pedig örülni fog a sok 0-nak :-)
Persze ha titkosítva van a fájlrendszer, az ellen nem véd...
- A hozzászóláshoz be kell jelentkezni
Mi a célod? Mentésre a dd szerintem a legkevésbé alkalmas eszköz, pláne, ha tömöríted is a célállományt. mentésre, vésztartalék előállítására rsync, cpio, vagy hasonló, fájlszintű másolat készítésére alkalmas eszközöket javaslom.
Többször előkerül a dd if=komplett_diszk_vagy_partíció of=mentes.dump móka esetén a "töltsük ki az esetleg már használt szabad helyeket csupa nullás bájttal", mint teljesítményt/tömörített dd-s image méretét csökkentő látszatmegoldás. Ez egyrészt a mentés előtt egy csomó írásművelettel jár, utána ezeket a blokkokat is vissza kell olvasnia a dd-nek, majd a gz-nek meg tömöríteni. Azaz a szabad hely duplájának megfelelő I/O művelet -- csak azért, hogy a dd...| gz > foo.gz kisebb legyen. Ha a teljes partíció/diszk tényleges (egyszeri) klónozása a cél, akkor rendben van, egyébként viszont fölösleges munka a gépnek.
- A hozzászóláshoz be kell jelentkezni
Na, félbeszakítottam és 90gb feldolgozásából keletkezett egy 60gb gzippelt image, úgyhogy gondolom, működik.
Az sda-n egy nagy root és egy swap van. Természetesen init 1, ro,remout után indítottam csak el a mókát.
A cél az hogy a teljes rendszeremről tudjak időnként egy megbízható másolatot gyártani. Egy olyat, amit visszatéve, teljesen ugyanazt kapom vissza. Pl. veszek egy új 250-est helyette, vissza dd-zem, és grubostul rendszerestül mindenem megvan. Ez a cél. Nem fájlszinten akarom a mentést, hanem minnél komplettebben, és a dd pont ezt nyújtja (ugyebár bitszintnél nincs eredetibb és teljesebb mentés). Az hogy sokáig tart, nem zavar. Egy éjszaka alatt biztosen elkészül. Egyszóval, amíg a foglalt terület nem éri el a 120-130 gigát, nyugodtan csinálhatom ezt a megoldást, gondolom. Egyébként nem fogja, tipikusan a mindennap maga után rendet rakó juzer vagyok, azaz a nagy helyfoglalású dolgokat (pl. filmek és ilyenek) kiírom és elpakolom. 30-40 gigánál évek óta nem használtam több helyet.
Úgy gondoltam, hogy beállítom alapban, a mentéses vinyó kapcsoljon ki minden bootkor (gondolom acpin keresztül vagy vmivel megoldható). Kreálok a 0-s runlevel mellé egy sajátot, ami pont ugyanaz, kivéve hogy a legvégén még:
1.) bekapcsolja a mentéses vinyót
2.) mountolja
*szerk* gondolom readonly elé beszúrjuk az általatok említett üreshelynullázást is
3.) ro-ba rakja az sda-t
4.) törli a korábbi disk imaget
5.) dd-gzippel legyártja az új másolatot
6.) ha végzett, unmount, és halt
Szerintetek életképes, legalábbis az én esetemre? Mittomén, pár hetente amikor eleve ki akarom kapcsolni a gépet, nem a 0-s runlevelt használom kikapcsolásra hanem a spécit. És mire felébredek, tudom hogy minden el van mentve szépen.
********************
http://holo-media.hu
- A hozzászóláshoz be kell jelentkezni
"Egyébként nem fogja, tipikusan a mindennap maga után rendet rakó juzer vagyok, azaz a nagy helyfoglalású dolgokat (pl. filmek és ilyenek) kiírom és elpakolom."
Lehet, mondtam már IRC-n, de szerintem gondolkozz el egy 1T-s disken. :)
Régen én is mindent CD/DVD-ztem, aztán rájöttem, hogy szarni bele, nem éri meg az időt/vesződést, főleg, hogy nem egy 3-8 éves lemezzel az új író küszködik már. Ráadásul vinyóról marhagyorsan előkotrom, ott van mindig kéznél, ha keresgélni kell valamit, lehet indexelni stb. Ahogy nézem, ilyen 25-30k körül van most egy 1T-s lemez. Ha ugyanennyi adatot akarok DVD-re kiírni, akkor eleve lényegesen több helyet foglal (400+ db DVD vs 1 db vinyó), másrészt rengeteg munka kiírni. Max azt lehet mondani rá, hogy fele annyi a DVD. De már szerintem mondtam, hogy miért vettem én mégegy 1T-s disket anno, ahelyett, hogy elkezdtem volna DVD-zni, mint az őrült (gyk. ledolgozom azt az időt, míg kiírok 400 DVD-t, többszörösen megtérül).
----------------
Lvl86 Troll
- A hozzászóláshoz be kell jelentkezni
Tudom, dd
volt a kérdés, de a partimage
tud ilyet. (Partimage will only copy data from the used portions of the partition. For speed and efficiency, free blocks are not written to the image file. This is unlike the 'dd' command, which also copies empty blocks. Partimage also works for large, very full partitions. For example, a full 1 GB partition can be compressed with gzip down to 400MB.)
- A hozzászóláshoz be kell jelentkezni
+1 a partimage-nek. Bár azok a mentések, amik a felhasználóra bízva futnak... Hogy is fogalmazzam meg finoman... sz@rt sem érnek, mert a felhasználó per default lusta -- még egy sima script elindítására is, nemhogy a teljes rendszer dd-s másolásához (ezt én nem nevezném mentésnek -- egy normális mentésből bármikor, bármelyik állomány minden szívfájdalom nélkül visszanyerhető), ami ugye másik runlevel, root-ként történő bizerbuzer...
Az meg pláne rossz irány, hogy "törlöm az előző mentést, és utána csinálok egy újat". Ilyen mentési mókából láttunk már adatot veszteni...
- A hozzászóláshoz be kell jelentkezni
Apró szépséghiba, hogy sajnos LVM partíciót nem lehet vele másolni, arra muszáj a dd. Pont tegnap futottam bele a dologba... én is szeretem a partimage-t, de most egy virtuális gépet tartalmazó partíciót kellett áttennem másik vasra.
- A hozzászóláshoz be kell jelentkezni
LVM snapshot esetleg?
- A hozzászóláshoz be kell jelentkezni
egyaltalan mi fenenek akarsz te dd-t hasznalni fajlmasolara
--
When in doubt, use brute force.
- A hozzászóláshoz be kell jelentkezni
Nem fájlmásolásra akarom használni, hanem az egész hdd bitszintű backupolására, mert az segít, de nem eleget, hogy a fájljaim megvannak, sokkal jobb ha az egész rendszer grubostul, mindenestül megvan.
Amúgy ha feljebb nézel már segített rajtam 1-2 emberke, szóval helyesen és érthetően írni, no meg konstruktívabban spamelni mehetsz másik fórumra is, köszi...
********************
http://holo-media.hu
- A hozzászóláshoz be kell jelentkezni
Szia!
1.) A tar parancs elvben csak a op. rendszer által lefoglalt -- mint amilyenek például a fájlok, alkönyvtárak -- lemezrészeket fűzné össze egy fájllá (persze a rekurzív alkönyvtárbejárást be kell állítani a megfelelő kapcsolójával!). Ezt a fájl tudod szükség esetén akár ,,on-the-fly'' tömöríteni.
2.) Ismét elvben a ,,dump'' (mentő) és ,,restore'' (visszaállító) parancsok alapban mágnesszalagra tudnának menteni, és a mentés közben tudnak tömöríteni is, s ha jól tudom a mentést lehet talán másik lemezre is készíteni.
G.
============================================
"Share what you know. Learn what you don't."
- A hozzászóláshoz be kell jelentkezni