Hatalmas baklövés [megoldva]

Fórumok

Szép Estét!

Tehát az történt, hogy 8.10-es Ubuntu alatt gyakorolgattam a shell parancsokat. Egyszer csak azt akartam, hogy a készített könyvtáramat ki tudjam törölni. Utánanéztem, hogy mivel is lehetne, és én találtam a jegyzetben (iskolai jegyzet gyakorlatra) egy "rm -r *" parancsot. A /home/user-ban volt a mappa amit csináltam. Na, az a lényeg, hogy lefuttattam így a parancsot, hogy "rm -r * /home/user/mappa neve" és egyszer csak fogta magát és _mindent- letörölt a gépről ezzel a paranccsal. A parancs leírásában csak az volt, hogy a mappát és az összes almappáját törli. Mivel a fenti elérési utat adtam meg, nem féltem, hogy másnak is baja lesz. Erre beütött a krach. Na, most azt szeretném kérdezni, hogy esetleg nem-e tud valaki olyan programot, amivel legalább az egyik partícióra visszanyerhetem az adatokat? Nincs annyira nagy gáz, mert van két helyen is backup a cuccokról, de azért most jól besz@rtam. :D

Köszönettel,
Tomato

UPDATE: A problémát megoldottam. Újratettem a rendszer és újra felmásoltam a gépre mindent. Csináltam egy partíciót, amit csak használatkor mountolok. Van egy virtualboxba zárt puppy linuxom, amin tudok kontárkodni a terminálban. Nem fogok rootként mindenféle parancsokat végrehajtani, és még jó sokat utánaolvasok a témának!

Köszönöm mindenkinek a tippeket, tanácsokat, módszereket és a biztatást!

Hozzászólások

Senki sem hibátlan, nem is mondtam... Csak amikor elolvastam a kálvária első lépéseit akkor szerencsétlen delikvens arca elém villant, ahogy elsápad, kiveri a víz, egymás után elmond pár csúnya szót, még jobban elsápad, emlegeti valakinek a rokonait, rácsap a billentyűzetre, emlegeti linus rokonait, felsorolja a nemi szerveket, feláll a székből, feltesz pár virtuális kérdést, ismétel párat a korábbi lépésekből, esetleg elmondja valakinek, aki beszáll az ismételgetésbe, majd amikor az agyban található kémiai reakciók radikális változásokon mennek át akkor beír ide a fórumra, hogy jaj.

:)))

A sóhajon kívül nem történt más! Nem vagyok egy ideges típus és türelmes vagyok. Szerintem az elsápadás sem volt meg, bár nem láttam magam. Csúnya szavakat se mondtam és nem szídtam Linus felmenőit se. Én hibám volt, én csesztem el. Semmi okom az idegességre vagy az anyázásra. :D
-Tomato

Biztos vagy benne, hogy _mindent_ letöröltél? Ha uid!=0 (nem root) felhasználóval adtad ki a parancsot, akkor ezt nehezen tudom elképzelni. Ha nem tudsz belépni a "sima" felhasználóddal, attól még a rendszer élhet, legfeljebb a home directory ment a kukába, ezért lehetnek bejelentkezési bajok. Ekkor single user mód előcsalogatható egy boot paraméterrel indításnál: init=/bin/bash

Ha uid=0 (root) volt és a pwd=/ (gyökér), akkor valóban eléggé alávágtál a rendszernek.

:D
--
"Kernel fordítás, fúj... Pótcselekvés."

Tipp: Legközelebb tegyél fel Virtualboxra egy Ubuntut, és azon gyakorolgass, meg telepítgess mindenféle programot, én is így csinálom.

Vedd elő a jegyzetedet (iskolai jegyzet gyakorlatra) és olvasd el az rm teljes leírását, különös tekintettel a -r kapcsolóra, majd olvassad hozzá a pwd használatát és megérted a lényeget. E kettő a világegyetem eszenciája egyébként.

"Állományokat az rm paranccsal törölhetünk. Egyszerre több állományt is meg-
adhatunk, illetve akár helyettesít karaktereket is használhatunk. Az rm parancs
kérdezés nélkül töröl minden megadott állományt.
A -r kapcsoló rekurzív törlést eredményez, azaz a megadott könyvtártól
lefelé a teljes alkönyvtár rendszerben sor kerül a törlésre, az utasítás még a
könyvtárakat is kitörli. A
$ rm -r *
a Linux egyik "leghatásosabb" parancsa, az adott könyvtártól kezdve felszámolja
a teljes állománystruktúrát, és még az alkönyvtárakat is kitörli! Csak akkor
adjuk ki, ha valóban törölni akarunk mindent!"

Én ebből azt szűrtem le, hogy csak azt és annak az almappáit törli, amit megadtam a kód után. De lehet, hogy én értelmeztem rosszul.
-Tomato

psc: A sracnak volt batorsaga kerdezni (ami manapsag keveseknek van), 15x leirta hogy hulye volt es nem ert hozza stb stb. Ezekutan felesleges beszolni neki. Nem tudom mit varsz a '*kezdo' kategoriaban.

tomato: Jo tanacs a jovore, soha ne rootkent tevekenykedj, kiveve ha ezt megkoveteli a haza. :) A bash gyakorlas semmi kep nem ilyen. Es en is megemlitenem a virtualboxon edzes hasznossagat. :)

-------------------------------
"A gorog katolikus noknek 8 dioptria alatt nem kotelezo a bajusz!" avagy "Nozni csak muholdal lehet..." | http://lazly.hu

Hát nem, az adott könyvtár != amiben épp állsz. Az aktuális könyvtár == amiben épp állsz. Az adott könyvtár az az, amit megad neki. Azt kéne forró ólomba mártogatni, aki egy iskolai jegyzetbe így leírta a Linux egyik "leghatásosabb" parancsát. Az a jegyzet olyanoknak szól, akik még sose láttak unix-ot. Ilyen alapon a "szereljünk vizes kézzel a nagyi tévéjét, mert az tanulságos" mondat is lehetne egy tankönyvben.

Egyébként meg, Tomato, volt _bármi_ fontos azon az Ubuntun? Ahogy írod van 2 backup is, ne se törődj az egésszel, dobd fel újból az Ubuntut és rá se ránts az egészre, sokkal jobban jársz, mintha az undeletével szenvednél.

Ja, és még figyelj majd a következő parancsoknál: mv, dd, mkfs, mkswap - swapon, kill 1
Több nem jut hirtelen az eszembe :)

Amúgy tényleg jó ötlet egy VirtualBox-ban futó rendszerben teszelgetni, ha csinálsz snapshotokat akkor nagyon nagy baj nem érhet.

ugye nagyon tisztán és pontosan érzed, hogy ez a jótanács pont annyira gagyi, mint a topicnyitás?
ugyan meséld már el, minek a csillag a könyvtárnév végére, ha teljes könyvtárat akarsz törölni?

Két hibát vétettél ezzel:
1. ha nagyon sok fájl van a könyvtárban, akkor lehet, hogy amikor a shell kifejti a csillagot, akkora lesz a paraméterlista, hogy nem fér el az rm-nek átadandó tömbben
2. egyes hardcore oldschool shellek a * kifejtésébe a ..-t is beleveszik, (most néztem, a bash éppen nem), ezért a fenti parancsod nem a /home/tomato/valami könyvtárat törlik le egyes unixokon, hanem a /home/tomato-t.

Utolsó sorod alapján éppen most adod el a számítógépedet...

Szia!

A kérdésem igazából az, hogy:
- milyen filerendszerek érintettek?
- kell-e valami a /-ről (mint filerendszer)?

Mert ntfs undelete van.
ext3 undelete már baromi necces.

De egy live cd-vel meg is lehet próbálni akár.
(Live cd-ken ugyanúgy lehet telepíteni mint a rendes disztribeken, max nem nagyon marad meg reboot utánra a csomag. (o: )

/evil mode on

trey: még mindig feladathoz kötött a regisztráció?

/evil mode off

Bocs

"Jegyezze fel a vádhoz - utasította Metcalf őrnagy a tizedest, aki tudott gyorsírni. - Tiszteletlenül beszélt a feljebbvalójával, amikor nem pofázott közbe."

"rm - r * /home/user/mappa neve"
őőő, biztos, hogy PONTOSAN ezt pontosan így írtad be? a szóközökkel? mert ez nem hinném, hogy mindent letörölt volna. ha jól gondolom, akkor ez azt jelenti, hogy: törli a "-" nevű fájlt (vagy esetleg erre dob egy errort, hogy ez rossz kapcsoló? nem tudom), törli az "r" nevű fájlt, törli az összes fájlt az aktuális könyvtárban ("*"), és törli a "/home/user/mappa" nevű könyvtárat, de ha abban fájlok is vannak, akkor nem is törli. szóval ha ezt így mondjuk a / gyökérkönyvtárban adtad ki, akkor csak egy pár symlinket törölt le. nézd meg egy live cd-val, mi van a vinyókon.

----------------------------------
feel the beat - it's everywhere!

Dehogynem, kezdte a csillaggal, majd a második
paramétert már nem találta a szerencsétlen, mert az első
paraméter alesetének tekinthető. Valszeg a / könyvtárban
volt szegénykém. (Ebben az esetben az rm -r * ekvivalens
egy bárhonnan kiadott rm -r /* paranccsal.)

Mondjuk az igaz, hogy az rm parancs és a * egymáshoz
képesti helyzetének hatását a könyvtárstruktúrára nem
nagyon szoktuk tanulmányozni, rendszerint el szoktuk
hinni, amit erről a unix könyvek írnak. Az enyémben ez
áll: ne próbáljuk ki, higyjük el, működik (-::

Mondjuk nem vagyok egy nagy májer a kérdésben, ha valami
veszély_gyanús dolgot csinálok lekapom a könyvet a
polcról.

> Sol omnibus lucet.

én sem voltam biztos, ezért kipróbáltam, az van, amit mondtam.

sudo rm - r *
rm: "-" nem törölhető: Nincs ilyen fájl vagy könyvtár
rm: "r" nem törölhető: Nincs ilyen fájl vagy könyvtár
rm: "1" nem törölhető: Könyvtár
rm: "2" nem törölhető: Könyvtár

a könyvtárban lévő fájlokat törölte, az alkönyvtárakban lévőket már nem, és az üres könyvtárakat sem.

úgyhogy ha ezt a gyökérben megcsinálod, csak azt a pár symlinket kapja le az initrd-hez és semmi mást.

Szerintem a topiknyitó elgépelte a példát, ő rm -r * /stb. adott ki. Én is kezdő vagyok, de ez a verzió szerintem gyalul mindent, mert először a *-t veszi paraméternek, ami mindenre érvényes, a második paraméter meg már felesleges.
Esetedben meg persze, hogy nem, mert nincs szó rekurzióról, nincs -r paraméter, csak egy - meg egy r :) és törölné a - és r könyvtárakat, fileokat.

ezt én is tudom és ezt próbálom magyarázni. nem mindegy, hogy "rm -r" vagy "rm - r". de a topicnyitó "rm - r"-t írt (lehet csak elírta), de ha valóban ezt a parancsot használta ugyanígy (szóközzel), akkor nincs para. én csak rákérdeztem nála, hogy valóban ezt csinálta-e. mert nagyon nem mindegy ugyebár... ennyi. :)

"How to Shoot Yourself in the Foot in Any Programming Language"


Unix
% ls
foot.c foot.h foot.o toe.c toe.o
% rm * .o
rm: .o: No such file or directory
% ls
%

source

No rainbow, no sugar

Jó pár éve én ilyet követtem el: (ha jól emlékszem, de a lényeg egy szóköz volt)

"rm -rf *.bak" helyett: "rm -rf * .bak"

(Vannak .bak-os könyvtáraim is.)

Igaz, userként, így csak a saját home-omat vesztettem... :-( :-) És azt se teljesen, mert gyanúsan sokáig dolgozott és nyomtam a Ctrl+C-t, mint a hülye, így csak kb. a fele veszett a fájljaimnak.

De akkor belevertem magamba, hogy "rm"-mel kezdődő parancssor befejezésekor kéz el a billentyűzetről, karakterenként újraolvasni, és csak akkor Enter.

Egyben írom a választ, mindenki keresse ki a rá vonatkozó részt. :D

@psc:
Nem mindenki root jelszavakkal a vérében születik. :) Most tanultam az esetből, legközelebb nem fogok kontárkodni. A könyvtáras leírásért köszönet.

@lazly:
Köszi a biztatást és a jó tanácsokat!

@Fisher:
Nagyon fontosakról csináltam backupot szerencsére. A bosszantó az volt az egészben, hogy este kilenckor nekem haza kellett Budapestről Tatabányára vonatozni, hogy újrahúzzam a rendszert, és ugye most, mikor írom a választ, nekem a suliban kéne lennem. :S Továbbá nem igazán aludtam.

@frottirtigris:
Szia!

Amin a cuccaimat tárolom, az NTFS arra az esetre, ha az itthoni gépemmel hálózaton turkálni akarok rajta. (amiről leszállt a rendszer az netbook, itthon meg van egy asztali)
Végülis inkább újratettem a rendszert és felmásolgattam mindent újból. De köszönöm szépen a segítséget. :)

@Dwokfur:
Én is emailen keresztül regisztráltam. ;)

@bsh:
Ahogy Te írtad le, van egy szóköz a "-" és az "r" között. Nem tudom mennyit számít, de én anélkül írtam. Ezt írtam, szóról szóra: "rm -r * /home/tomato/random"

Tanulva az esetből a következőket csináltam. Újrahúztam a rendszert, de csináltam egy apró -5 gigás- partíciót, amit csak akkor csatolok fel, amikor dolgozom vele. A cuccaimat ezentúl is backupolom jó sűrűn. Szerencsére nem foglalnak sok helyet a fontos dolgok, így egy nagyobb pendrivera ki tudom másolgatni. Feltettem egy virtualboxot, hogy kordában tartsam ezt a vadállatot (meg jómagamat is).

-Tomato

Részemről a tisztelet, ami jár neked!
-önirónia
-önismeret
-lelkesedés
-kitartás

És ha a topicnyitó bekezdést újraolvasom, az is látszik, h még csak nem is az volta kérdés, h mit is csináltál, hanem tudtad (utánaolvasás, guglizás, v józan ész alapján), h mi történt.

No nem azt mondom, h tudsz-e nekem holnaptól egy facebook szerű projectet hostolni.
Szal csak bíztatni tudlak!

Ehehe, nem baj, nem baj, saját kárán tanul az ember! :)
Egy-két ilyen jellegű dolgot szerintem mindenki besz0pott már itt... :)
Ha az R0 user topicot olvastad, akkor láthatod is. :D
Na sok sikert a továbbiakban, aki meg leírta neked ezt a parancsot, azt tényleg forró ólomba kelene fürdetni, igazuk van a többieknek.
(Mondjuk az iskolai hiányzásról ha érdeklődnek a suliban, simán ráfognám arra az emberre, hogy ő miatta van, mert egy ilyen parncsot tanított, és egy napodba tellett a károkat helyrehozni.)

Egyetemen nem nézik a hiányzást annyira szigorúan szerencsére, csak ma lett volna laborgyakorlatom és majd csinálhatom a pótmérést decemberben... Majd számítógépes alapismeretek gyakorlaton meg megbeszélem ezt a kis bukfencet a tanárral. :D

Amúgy meg köszönöm Mindenkitől a biztató szavakat! :)
-Tomato

hat ez nagyon epic failure :))))

de nembaj, igy kell tanulni a sajat karodbol, es megprobalni megerteni, hogy mi az, amit csinalsz. ha elotte nem is, de utolag azert ez sikerulni szokott. reinstall, es probalgasd tovabb szepen :)

en mar eleg reg ota hasznalok linuxot de soha nem irom le az rm es a * -ot egy sorba.
mc az en baratom abban torlok. az okok egszeruek, vannak idiota konyvtar es filenevek, ezeket eleg konnyu elgepelni.

ha nem tudod hogy 100% -ban mit csinal a parancs ne ad ki, elotte kiserletezgess. az rm -et ls lehet cserleni, a 'rm -r' pedig 'ls -R' -re.
ez nem torli hanem listazza es igy tudod mit szeretnel torolni.

Tudom ajanlani Brian W. Kernighan, Rob Pike:A UNIX operacios rendszer konyvet. elso fejezet.

Hát igen, de vannak olyan esetek, amikor a mc nem megoldás.
Például ha több mindent kell csinálnod a törlésen kívül:
ilyenkor egy scriptbe írod be az utasításokat és bizony az
is előfordul, hogy a scriptben rm - t kell használnod,
sőt a parancssorban * paraméter is előfordulhat.

Pláne_sőt: ha cron-ból futtatod, akkor ráadásul a
privilégiumszint is veszélyes lehet!

Nincs más, mint a fokozott figyelem.

> Sol omnibus lucet.

Én az etc-t kaptam hasonlóképp annó le a gépről az usr/local/etc helyett (ez volt a kontárkodós konfig könyvtárom). Ott sikerült adatokat visszahoznom, van egy olyan hogy system-rescue distro, egy live cd, kifejezetten adatmentésre, hatékony tud lenni. De nagyon gáz volt utána keresgélni mert csinált egy lost_and_fond konyvtárat, amiben ezermilió, minden törölt vacak volt, és nem is az eredeti nevükön...... De türelemmel ki lehetett mazsolázni a dolgokat.

------
3 fajta matematikus létezik. Aki tud számolni, és aki nem.

Ha nem tévedek, sikerült egy space-t ütni oda, ahova nem kéne:

rm -r / home/user/mappa

Ez a hiba(lehetőség) benne van a unix haters kézikönyvben is :)

--
return 0;

Valahol olvastam egy jó tippet erre: veszélyes parancsoknál, főleg, ha wildcard van benne, echo-t írni a parancs elé, így látható mi fog történni.

--
Soli Deo Gloria

Pendrive-ra esetleg, csak szövegest? (PenLive)

hátránya, hogy csak ext3-as lehet
viszont újra írni dd-vel egy elmentett img-ből egyszerű

raid5-öt gyakoroltam így, mert annyira lusta vagyok egy működő rendszert újra megszülni...

Nem kellett volna a csillag a parancssorba. Így onnan kezdett törölni, ahol kiadtad a parancsot. Nyilván éppen a gyökérben álltál root-ként. Elég macerás EZ alapján próbálkozni a visszaállítással. Egyszer próbáltam, de elég nagy favágás és ha nem volt létfontosságú dolog a rendszeren akkor érdemes újrahúzni az oprendszert. Biztonsági mentést tessék csinálni legközelebb! (partimage, sysrescue cd project stb)
--
unix -- több, mint kód. filozófia.
Life is feudal

lam lam... a windows ebbe is biztonsagosabb mint a linux...

Szerintem ha van backup, akkor kar beleasnod magad a recoverybe, mert az magasabb szint mar, mint amit abban a tankonyven targyalhatnak.
Tanulj az esetbol, es bealdozhato szerveren probalgasd a parancsokat.

// egyebkent egyszer asszem a dd_recover paranccsal sikerult eljutnom az fs szintig, de nekem mar az sem tudott eloasni semmit egy ujraparticionalt diszkrol :)

--
Joe