/ Forside / Teknologi / Operativsystemer / Linux / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Linux
#NavnPoint
o.v.n. 11177
peque 7911
dk 4814
e.c 2359
Uranus 1334
emesen 1334
stone47 1307
linuxrules 1214
Octon 1100
10  BjarneD 875
Død harddisk?
Fra : Thomas Lindgaard


Dato : 28-12-04 14:56

Hejsa

Jeg har et problem (potentielt et meget STORT problem)...

Min computer er forholdsvis ny (2-3 mdr.), men nu vil den ene harddisk vist
ikke mere - naturligvis den hvor /home ligger :'(

Når jeg starter op (kører Fedora Core 3), kommer den med følgende output:


Checking filesystems
/home: Attempt to read block from filesystem resulted in short read while
reading block 1545

/home: Attempt to read block from filesystem resulted in short read reading
jounal superblock

fsck.ext3: Attempt to read block from filesystem resulted in short read
while checking ext3 journal for /home

[failed]
*** An error occurred during the file system check.
*** Dropping you to a shell; the system will reboot
*** when you leave the shell.


Et par gange på det sidste har musen ikke virket, når jeg kom ind Gnome, men
det har ikke været et problem de sidste 2-3 gange, så det tænkte jeg ikke
videre over. Sidst jeg startede op, kunne jeg så pludselig ikke gemme filer
eller Quanta-settings (se mit andet indlæg fra kl. 13:17), idet /home var
mounted read-only. Det sad jeg og grublede lidt over og kvalte i den
forbindelse x-serveren - med det resultat at computeren gik i baglås... og
efter genstart får jeg nu ovenstående output.

Nu er det så, at jeg MEGET gerne vil redde data fra /home, da min seneste
backup er fra 9. november, og mit speciale har udviklet sig en del siden da!

Hjææælp! Efter lidt Googlen har jeg fundet en side, hvor det foreslås at
fyre følgende kommando af:

dd if=/dev/hd_old_disk of=/dev/hd_backup_disk bs=1k conv=sync,noerror

(men så skal jeg lige have fat i en ekstra disk... og det kræver vel at jeg
har et system, der kan boote (Knoppix?)). Er der andre tricks?

--
Mvh.
/Thomas



 
 
Thomas S. Iversen (28-12-2004)
Kommentar
Fra : Thomas S. Iversen


Dato : 28-12-04 15:42

On 2004-12-28, Thomas Lindgaard <thomas@it-snedkeren.BLACK_HOLE.dk> wrote:

> Nu er det så, at jeg MEGET gerne vil redde data fra /home, da min seneste
> backup er fra 9. november, og mit speciale har udviklet sig en del siden da!

Surt med hdd crashs

> Hjææælp! Efter lidt Googlen har jeg fundet en side, hvor det foreslås at
> fyre følgende kommando af:
>
> dd if=/dev/hd_old_disk of=/dev/hd_backup_disk bs=1k conv=sync,noerror

Det ville jeg som minimum gøre, og så lægge din defekte disk over et sted,
hvor den bare ligger indtil du har leget med kopien.

Hvor mange data drejer det sig om?

Hvis det ikke er vildt mange, så kan du jo overveje at dd if=/dev/old_disk
of=/file og så rode med filsystemet via loop modulet. Så kan du hurtigt lave
flere kopier af de data du arbejder på uden at skulle tilgå den originale
disk eller kopien. Så kan du nøjes med at tilgå en kopi af kopien.

Personligt ville jeg nok se om jeg kunne køre noget fsck på filsystemet
mountet som loop.

Eller noget helt tredie. Hvis det kun er en enelt fil du vil have ud, så kan
der måske skrives/findes et specialværktøj til lige netop den opgave. Min
tid er meget begrænset, så det bliver ikke mig der forsøger mig ud i det
lige pt.

Thomas

Kasper Dupont (29-12-2004)
Kommentar
Fra : Kasper Dupont


Dato : 29-12-04 22:57

Såfremt nogen skulle være interesseret i udfaldet,
så har jeg hjulpet Thomas med problemet. Først
kørte jeg et program, der anvendte pread og pwrite
til at kopiere så mange sektorer som mulig fra
partitionen til en fil. Muligvis kunne det samme
være opnået med dd og passende argumenter.

På den måde kunne alt på nær 176 sektorer læses
fra partitionen (som var på ca. 110GB hvoraf ca.
35GB var i brug). Jeg gentog læsningen igen hvor
alt på nær 208 sektorer kunne læses. Til sidst
prøvede jeg så at åbne devicet med O_DIRECT og
prøvede endnu en gang at læse de dårlige sektorer.
På denne måde var der kun 5 sektorer, som ikke
kunne læses.

Og de vigtigste data ser nu ud til at være i
sikkerhed.

--
Kasper Dupont

Christian Iversen (30-12-2004)
Kommentar
Fra : Christian Iversen


Dato : 30-12-04 16:10

Kasper Dupont wrote:

> Såfremt nogen skulle være interesseret i udfaldet,
> så har jeg hjulpet Thomas med problemet. Først
> kørte jeg et program, der anvendte pread og pwrite
> til at kopiere så mange sektorer som mulig fra
> partitionen til en fil. Muligvis kunne det samme
> være opnået med dd og passende argumenter.
>
> På den måde kunne alt på nær 176 sektorer læses
> fra partitionen (som var på ca. 110GB hvoraf ca.
> 35GB var i brug). Jeg gentog læsningen igen hvor
> alt på nær 208 sektorer kunne læses. Til sidst
> prøvede jeg så at åbne devicet med O_DIRECT og
> prøvede endnu en gang at læse de dårlige sektorer.
> På denne måde var der kun 5 sektorer, som ikke
> kunne læses.
>
> Og de vigtigste data ser nu ud til at være i
> sikkerhed.

Interessant nok - men tyder dét at du fik O_DIRECT til at virke ikke mere på
en semi-periodisk fejl, end en fuldstændig ødelagt sektor? Kunne det ikke
lige så godt have virket at læse fra block-devicet? (og kunne det ikke
tænkes at grunden til at det til sidst virkede var at disken relokerede
nogle af de dårlige sektorer?)

--
M.V.H
Christian Iversen

Kasper Dupont (30-12-2004)
Kommentar
Fra : Kasper Dupont


Dato : 30-12-04 16:42

Christian Iversen wrote:
>
> Interessant nok - men tyder dét at du fik O_DIRECT til at virke ikke mere på
> en semi-periodisk fejl, end en fuldstændig ødelagt sektor?

Det tror jeg ikke. Jeg gentog læsningerne med O_DIRECT
fem gange, og hver gang var det de samme fem sektorer,
der ikke kunne læses. Jeg kan ikke lige huske, om jeg
prøvede en læsning gennem buffer cachen derefter.

> Kunne det ikke
> lige så godt have virket at læse fra block-devicet?

Der sker nogle mærkelig ting i buffer cachen når man
støder på diskfejl. Jeg har på et tidspunkt konstateret,
at et enkelt read kald resulterede i 64 forsøg på at
læse den samme sektor. Og når læsningerne bliver cached
bliver der også læse mere end en sektor ad gangen. Og
man kan derfor også godt komme ud for, at få en
fejlmelding selvom fejlen i virkeligheden blot ligger i
nærheden af den sektor, man er ved at læse.

Det oplever man ikke med O_DIRECT, hvis man blot nøjes
med at læse en sektor ad gangen.

> (og kunne det ikke
> tænkes at grunden til at det til sidst virkede var at disken relokerede
> nogle af de dårlige sektorer?)

Den kan jo ikke relokere dem før det lykkes at læse
sektoren eller man overskriver den. Hvordan relokering
i øvrigt virker kan jeg ikke udtale mig om.

--
Kasper Dupont

Thomas S. Iversen (30-12-2004)
Kommentar
Fra : Thomas S. Iversen


Dato : 30-12-04 16:28

> Og de vigtigste data ser nu ud til at være i
> sikkerhed.

Respekt! Håber Thomas har betalt dig klækkeligt

Mvh en anden Thomas

Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408929
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste