Sida 1 av 1

Fel vid läsning av block

Postat: 13 mar 2009, 16:12
av Cadryc
Startade datorn häromdagen, en rutinkontroll av hårddiskarna skulle göras. Ett fel upptäckets och jag fick köra fsck manuellt. Jag tog då och väntade med det till efter inloggning så jag eventuellt kunde kopiera grejer från terminalen.

Jag körde fsck /dev/sdb2 och det tuggade på, så kommer denna fråga

Kod: Markera allt

Fel vid läsning av block 59932807 (Attempt to read block from filesystem resulted in short read) vid hämtar nästa inod från sökning.  Ignorera fel<j>?
Jag tryckte då enter, så kom en till fråga som jag tyvärr missade att kopiera. Tror det var om jag skulle skriva om blocket, om jag minns rätt så var det iaf ingen badblock-lista den fråga om. Hur som helst så svarade jag JA. Sen var det ett till block den klaga på, jag gjorde samma sak

Det har hänt att när jag testat nån grej så Ubuntu det hängt sig och jag fått använda resetknappen på datorn.

Så partitionen hade alltså två dåliga block?
Vad kan det bero på? Ska jag se det som varningstecken för en hårddiskkrasch eller nåt?
Är det risk för att jag förlorat nån data, eller korrigeras detta av andra mekanismer?

Re: Fel vid läsning av block

Postat: 14 mar 2009, 07:14
av Osprey
Det kan bero på något så enkelt som att ett program har avslutats på ett onormalt sätt, det behöver alltså inte vara någon fara med det. Prova att köra fsck igen och se om det verkar ok nu. Om du vill kan du prova någon gång då och då med fsck den närmaste tiden för att se om problemet uppstår igen, när en disk "börjar krascha" så brukar badblocks och annat strul komma rätt snabbt och så att säga "stå som spön i backen"...

Om du kör fsck några gånger och allt verkar ok, så är det antagligen ingen fara... :)

Ett annat alternativ med ett problem som jag inte vet säkert om det finns kvar i Intrepid är "Load cycle count" där det tydligen finns en gräns för "utsliten" vid 600.000

Installera kontrollprogram med:

Kod: Markera allt

sudo apt-get install smartmontools
Sätt igång smartfunktionerna med:

Kod: Markera allt

sudo smartctl -s on /dev/sda
Och kontrollera med:

Kod: Markera allt

smartctl -a /dev/sda | grep Load_Cycle_Count
Där du tittar på vad talet sist i utskriften visar....
Givetvis byter du ut "sda" mot det din disk heter, om det är något annat. Men som sagt, jag vet inte om det här problemet finns kvar nu...

Re: Fel vid läsning av block

Postat: 14 mar 2009, 13:36
av Cadryc
Körde fsck direkt en gång till, och då hittade den inget fel. Jag har haft program som kraschat, så det beror kanske på det då.

Smartmontools verkar inte funka på den här hårddisken, men det är en stationär så sannolikt försööker den inte parkera läsarmen ideligen för att spara ström, så borde inte vara den buggen.

Tackar för svaret :)

Re: Fel vid läsning av block

Postat: 15 mar 2009, 01:21
av David Andersson
fsck kollar om filsystemet (mappar, inoder, sånt) är konsistent. Sånt kan bli inkonsistent om det blir strömavbrott under en skrivning eller glapp i datorn. Data i ett block har inte blivit färdigskrivet och stämmer inte med data i andra block. Filsystemet har ofta massor med redundans för den övergripande strukturen (mappar, inoder, sånt) så den kan återskapa inkonsistent data.

fsck kollar inte konsistensen av allt data i alla filer. Den kan inte återskapa fel som uppstått inne i filer (kanske att journalling kan det för nyligen ändrade filer).

Om det blir läsfel på vissa block på disken så är det troligen inte (bara) att data är inkonsistent ("fel" ettor och nollor) utan att disken är trasig just där ("inga" ettor och nollor). Om det trasiga blocket är inne i en datafil är det inte säkert att fsck upptäcker det.

Om första fsck säger "fel vid läsning av block", så kommer den nog att använda redundansen för att återskapa datat i blocket och skriva tillbaka blocket. Skrivningen kan nu ske till ett reservblock som inte är trasigt (men som får samma blocknummer som, och därmed ersätter, det trasiga blocket). Nästa fsck direkt efteråt ser nu konsistenta data och allt ser bra ut. Det felaktiga blocket finns kvar på skivan men kommer aldrig mer att användas.
Ska jag se det som varningstecken för en hårddiskkrasch eller nåt?
Jag tolkar "Fel vid läsning av block" som ett fel på hårddisken och inte (bara) inkonsistenta data. Det kan vara isolerade fel och resten av disken har månader eller år kvar. Eller så packar den ihop om en timme. Gör en mer rigorös kontroll om innehållet i filer kan ha påverkats, och i så fall se till att ha en backup från en tidpunkt innan skadan skedde.

Re: Fel vid läsning av block

Postat: 15 mar 2009, 14:09
av Cadryc
Kan man kolla om filinnehållet är inkonsistent utan att ha en backup?

Re: Fel vid läsning av block

Postat: 15 mar 2009, 16:55
av David Andersson
Cadryc skrev:Kan man kolla om filinnehållet är inkonsistent utan att ha en backup?
Tja. Kommandot badblocks kan fås att göra en läsning av alla block. Den visar vilka block som är fel. Eller man kan göra cat på alla filer (eller backup, se nedan), så blir det i/o-fel om en fil ligger i ett dåligt block. Då testas inte alla block utan bara de som används.

Om en fil har kopierats (från ett dåligt block till ett friskt block) och man struntat i felmeddelandet, så kan den vara "inkonsistent" utan att badblocks eller cat (eller backup) märker det.

Om du inte har en backup, börja med att göra en. Den kommer att visa i/o-fel om nån fil ligger i ett dåligt block. (Den filen i backuppen är då "inkonsistent", men det kan inte göras nåt åt, än. Försök komma ihåg vilka de är för att sedan ta bort dem, eller försöka rädda dem med avancerad kirurgi.)