badblocks am Ende der Partitionen - gesamte Festplatte ohne badblocks
Hi Liste, beim zurückspielen eines "rohen" Partitions-Backups ist mir aufgefallen, dass am Ende dieser Partition drei defekte Blocks sind. Danach überprüfte ich via "badblocks" alle Platten/Partitionen. Heraus kam etwas seltsames: beim Überprüfen der gesamten Platte als solches bekam ich keine Fehler. Ein "badblocks /dev/hda" und ein "badblocks /dev/hdb" (hab zwei Festplatten) lieferte mir immer einen tadellosen Zustand meiner Platten zurück. Nun überprüft ich die Partitionen einzelnd: "badblocks /dev/hda1", "badblocks /dev/hda2", etc. Das Ergebnis: Es sind immer die 1-3 letzten (vorletzten) Blocks, die als defekt angeben werden: hda1 ist laut badblocks 2096451 Blocks groß. Defekt sind angeblich: 2096448 2096449 2096450 bei hda2 ist es Block 4200996 bei einer Größe von 4200997 Block. bei hda5 (Größe: 1052226): Blöcke: 1052224 und 1052225 bei hda8 (Größe: 57681351): Blöcke: 57681348, 57681349 u. 57681350 Dies Platte ist 1Monat alt! D.h. vor einen Monat gekauft. Bei der zweiten Platte (Jahre alt) tratten bei beiden Tests keine Fehler auf. Jetzt frag ich mich, ob das vielleicht an einer fehlerhaften Partitionstabelle liegt oder so was in der Art. Als ich dann mit den PartitionsMagic 7.0-Disketten bootete brachte er mir keine Fehler. Ich formatierte dann damit mal die erste Partition (unter Linux: hda1). Danach hatte ich für ein paar Stunden keine Fehler mehr. Nun aber sind die genau gleichen drei Blocks angeblich wieder defekt. Überprüfe ich dies Blocks dann mit "badblocks /dev/hda $PASSENDES_ENDE $PASSENDER_OFFSET" dann sind da wie gesagt keine Fehler. Bei meinen Google-Suchen fand ich einen Eintrag in einer englisch-sprachigen Mailliste von jemanden mit dem selben Fehler. Als einzige Antwort bekam er aber nur "that's the ide bug". Von den berühmt-berütigten IDE Bug hab ich schon mal was gehört. Ich benutze aber den aktuellen 2.4.20 Vanilla Kernel .... Kann mir hier jemand helfen! Martin System: SuSE 7.3, Vanilla Kernel 2.4.20, badblocks aus dem Paket e2fsprogs-1.28-18
Nachtrag: Langsam glaub ich auch an einen Bug: Bei einem "dd if=/dev/hda1 of=t skip=2096448 bs=1k count=1" bekomme ich die Ausgabe: dd: Lesen von »/dev/hda1«: Eingabe-/Ausgabefehler 0+0 Records ein 0+0 Records aus In die /var/log/messages steht: Jan 5 14:57:20 lbox kernel: attempt to access beyond end of device Jan 5 14:57:20 lbox kernel: 03:01: rw=0, want=2096452, limit=2096451 Ich greife aber mit "dd .." aber auf Block 2096449 zu und nicht auf Block 2096452. Meine "badblocks" Aufrufe brachten übrigens ähnliche Logeinträge. Was kann ich jetzt machen? Liegt das an meinem IDE-Kontroller? Martin PS: Mein Mainboard ist ein Soyo Dragon Ultra.
Hi, On Sunday 05 January 2003 15:02, Martin Scharrer wrote:
Nachtrag:
Langsam glaub ich auch an einen Bug:
Lustig, aber kein Bug.
Bei einem "dd if=/dev/hda1 of=t skip=2096448 bs=1k count=1" bekomme ich die Ausgabe: dd: Lesen von »/dev/hda1«: Eingabe-/Ausgabefehler 0+0 Records ein 0+0 Records aus
und das zu recht.
In die /var/log/messages steht: Jan 5 14:57:20 lbox kernel: attempt to access beyond end of device Jan 5 14:57:20 lbox kernel: 03:01: rw=0, want=2096452, limit=2096451
Ich greife aber mit "dd .." aber auf Block 2096449 zu und nicht auf Block 2096452.
Nein, Du willst sogar noch viel weiter auf die Platte zugreifen. Deine Partition ist 2096452 Blöcke á 512 Byte gross, da mit 0 angefangen wird zu zählen ist der letzte also 2096451. Du willst mit dd if=/dev/hda1 of=t skip=2096448 bs=1k count=1 allerdings die Blöcke 4192896 und 4192897 lesen, die gibt es aber da nicht. Probier mal dd if=/dev/hda1 of=t skip=2096448 bs=512 count=1
Meine "badblocks" Aufrufe brachten übrigens ähnliche Logeinträge.
Was kann ich jetzt machen?
Es mag sein, dass badblocks da Schwierigkeiten hat.
Martin
Stefan -- Stefan Schmidt jsj-hb at t-online dot de
On Sunday 05 January 2003 15:31, Stefan Schmidt wrote:
Hi,
On Sunday 05 January 2003 15:02, Martin Scharrer wrote:
Nachtrag:
Langsam glaub ich auch an einen Bug:
Lustig, aber kein Bug. Ja, "Lustig"
Bei einem "dd if=/dev/hda1 of=t skip=2096448 bs=1k count=1" bekomme ich die Ausgabe: dd: Lesen von »/dev/hda1«: Eingabe-/Ausgabefehler 0+0 Records ein 0+0 Records aus
und das zu recht.
In die /var/log/messages steht: Jan 5 14:57:20 lbox kernel: attempt to access beyond end of device Jan 5 14:57:20 lbox kernel: 03:01: rw=0, want=2096452, limit=2096451
Ich greife aber mit "dd .." aber auf Block 2096449 zu und nicht auf Block 2096452.
Nein, Du willst sogar noch viel weiter auf die Platte zugreifen. Deine Partition ist 2096452 Blöcke á 512 Byte gross, da mit 0 angefangen wird zu zählen ist der letzte also 2096451. Du willst mit dd if=/dev/hda1 of=t skip=2096448 bs=1k count=1 allerdings die Blöcke 4192896 und 4192897 lesen, die gibt es aber da nicht. Probier mal dd if=/dev/hda1 of=t skip=2096448 bs=512 count=1 Nein, das habe ich vorher schon überprüft. Das ist eine 2GB Partition!
lbox:/mnt # df . Dateisystem 1k-Blöcke Benutzt Verfügbar Ben% montiert auf /dev/hda1 2096160 0 2096160 0% /mnt ^^^^^^^^^^ Ein "dd if=/dev/hda1 of=t skip=2096447 bs=1k count=1" (Man beachte die "7" statt eine "8") funktioniert nämlich einwandfrei! badblocks sagt mir auch, dass da 0 - 2096159 Blöcke vorhanden sind, schweigt sich aber über die Größe aus. Warum es nun 1024Byte-Blöcke hernimmt weis ich auch nicht. 512Bytes/Block ist der Normalwert. Da hast du schon recht. Aber du hast mich auf eine Idee gebracht: Ich hab jetzt die hda1 u. hda2 nochmal mit dem Option "-b 512" gestartet um eine Blockgröße von 512Bytes zu verwenden. Bei hda1 (gerade mit "mkdosfs" formatiert um obige "df" Ausgabe zu bekommen - ist meine Win-Partition von der ich das Backup hab) treten nun komischerweise keine Fehler auf. Wie gesagt hatte ich das nach einer Formatierung schon mal. Für kurze Zeit .... Bei hda2 hab ich nun statt einem defekten 1024Byte Block (#4200996) drei defekte 512Byte Blocks (8401992, 8401993, 8401994).
Meine "badblocks" Aufrufe brachten übrigens ähnliche Logeinträge.
Was kann ich jetzt machen?
Es mag sein, dass badblocks da Schwierigkeiten hat. Na ja, da alle Zugriffe (dd & badblocks) auf die letzten drei Blocks die selbe Kernelmeldung brachten, mag es sein dass das ein anwendungsunabhängiges Problem ist.
Martin
* On Sun, 05 Jan 2003 at 15:02 +0100, Martin Scharrer wrote:
Langsam glaub ich auch an einen Bug:
Bei einem "dd if=/dev/hda1 of=t skip=2096448 bs=1k count=1" bekomme ich die Ausgabe: dd: Lesen von »/dev/hda1«: Eingabe-/Ausgabefehler 0+0 Records ein 0+0 Records aus
In die /var/log/messages steht: Jan 5 14:57:20 lbox kernel: attempt to access beyond end of device Jan 5 14:57:20 lbox kernel: 03:01: rw=0, want=2096452, limit=2096451 [...]
Schicke mal die Ausgabe von cat /proc/ide/hda/capacity /proc/ide/hda/geometry -- Adalbert GPG welcome, request public key: mailto:adalbert+key@lopez.at
* On Sun, 05 Jan 2003 at 17:58 +0100, Martin Scharrer wrote:
Schicke mal die Ausgabe von cat /proc/ide/hda/capacity /proc/ide/hda/geometry Hier bitte: 156301488
On Sunday 05 January 2003 17:40, Adalbert Michelic wrote: physical 155061/16/63 logical 9729/255/63
Danke, kannst Du mir bitte auch noch die Ausgabe von cat /proc/partitions fdisk -l /dev/hda schicken? -- Adalbert GPG welcome, request public key: mailto:adalbert+key@lopez.at
On Sunday 05 January 2003 18:07, Adalbert Michelic wrote:
Danke, kannst Du mir bitte auch noch die Ausgabe von cat /proc/partitions fdisk -l /dev/hda schicken? Natürlich, hier:
/proc/partitions: major minor #blocks name 8 0 1048575 sda 8 16 1048575 sdb 3 0 78150744 hda 3 1 2096451 hda1 3 2 4200997 hda2 3 3 1 hda3 3 5 1052226 hda5 3 6 2626596 hda6 3 7 10490413 hda7 3 8 57681351 hda8 3 64 9903600 hdb 3 65 2907733 hdb1 3 66 1 hdb2 3 69 6988243 hdb5 fdisk -l /dev/hda: Festplatte /dev/hda: 255 Köpfe, 63 Sektoren, 9729 Zylinder Einheiten: Zylinder mit 16065 * 512 Bytes Gerät boot. Anfang Ende Blöcke Id Dateisystemtyp /dev/hda1 1 261 2096451 6 FAT16 /dev/hda2 262 784 4200997+ 83 Linux /dev/hda3 785 9729 71850712+ f Win95 Erw. (LBA) /dev/hda5 785 915 1052226 82 Linux Swap /dev/hda6 916 1242 2626596 83 Linux /dev/hda7 1243 2548 10490413+ b Win95 FAT32 /dev/hda8 2549 9729 57681351 83 Linux Martin
* On Sun, 05 Jan 2003 at 15:02 +0100, Martin Scharrer wrote:
Langsam glaub ich auch an einen Bug:
Bei einem "dd if=/dev/hda1 of=t skip=2096448 bs=1k count=1" bekomme ich die Ausgabe: dd: Lesen von »/dev/hda1«: Eingabe-/Ausgabefehler 0+0 Records ein 0+0 Records aus
In die /var/log/messages steht: Jan 5 14:57:20 lbox kernel: attempt to access beyond end of device Jan 5 14:57:20 lbox kernel: 03:01: rw=0, want=2096452, limit=2096451
Ich greife aber mit "dd .." aber auf Block 2096449 zu und nicht auf Block 2096452.
Merkwürdig, merkwürdig. Mein Desktop macht das bei der swap-Partition auch. Mir scheint das ein Kernel-Bug zu sein - hier 2.4.18 in der Edition von SuSE/Hubert Mantel. Mein Äpfelchen mit 2.4.20 in der Edition von Benjamin Herrenschmidt macht diese Spinnerein nicht, aber das will wohl nicht viel heissen. Allerdings fällt mir auf - sowohl bei Deinem System, als auch bei meinem, daß die Werte aus der in /proc/ide/hda/geometry angebenen logischen Geometrie eine kleinere Platte ergeben, als in /proc/partitions angegeben. Weiß aber ebenfalls nicht, ob das von Relevanz ist. -- Adalbert GPG welcome, request public key: mailto:adalbert+key@lopez.at
Hallo, On Sun, 05 Jan 2003, Adalbert Michelic wrote:
* On Sun, 05 Jan 2003 at 15:02 +0100, Martin Scharrer wrote: Allerdings fällt mir auf - sowohl bei Deinem System, als auch bei meinem, daß die Werte aus der in /proc/ide/hda/geometry angebenen logischen Geometrie eine kleinere Platte ergeben, als in /proc/partitions angegeben. Weiß aber ebenfalls nicht, ob das von Relevanz ist.
Liegt am Verschnitt der Geometrie (hab ich neulich mal ausfuehrlich erklaert) und ist normal. -dnh -- Therefore, if you can get it booted as far as it giving little dialogue boxes[1] [1] You know, the one with that red icon with the X in the middle. It's a Philips-head screw, and it's telling the luser it's screwed. [A. deBoer]
* On Sun, 05 Jan 2003 at 23:36 +0100, David Haller wrote:
On Sun, 05 Jan 2003, Adalbert Michelic wrote:
* On Sun, 05 Jan 2003 at 15:02 +0100, Martin Scharrer wrote: Allerdings fällt mir auf - sowohl bei Deinem System, als auch bei meinem, daß die Werte aus der in /proc/ide/hda/geometry angebenen logischen Geometrie eine kleinere Platte ergeben, als in /proc/partitions angegeben. Weiß aber ebenfalls nicht, ob das von Relevanz ist.
Liegt am Verschnitt der Geometrie (hab ich neulich mal ausfuehrlich erklaert) und ist normal.
Ich weiß; ich war laut denkend auf der Suche nach Gründen, warum bei mir ausgerechnet der letzte Block einer Partition eine solche irre Meldung provoziert (bzw. bei Martin sind da überhaupt mehrere im "Eimer"). Nachdem das Problem nicht mit dd und badblocks auftritt, sondern auch ein einfaches cat übers Ziel rausschießt, nehme ich mal an, daß es wirklich was mit dem Kernel zu tun hat. -- Adalbert GPG welcome, request public key: mailto:adalbert+key@lopez.at
Hallo, On Mon, 06 Jan 2003, Adalbert Michelic wrote:
* On Sun, 05 Jan 2003 at 23:36 +0100, David Haller wrote:
On Sun, 05 Jan 2003, Adalbert Michelic wrote:
* On Sun, 05 Jan 2003 at 15:02 +0100, Martin Scharrer wrote: Allerdings fällt mir auf - sowohl bei Deinem System, als auch bei meinem, daß die Werte aus der in /proc/ide/hda/geometry angebenen logischen Geometrie eine kleinere Platte ergeben, als in /proc/partitions angegeben. Weiß aber ebenfalls nicht, ob das von Relevanz ist.
Liegt am Verschnitt der Geometrie (hab ich neulich mal ausfuehrlich erklaert) und ist normal.
Ich weiß; ich war laut denkend auf der Suche nach Gründen, warum bei mir ausgerechnet der letzte Block einer Partition eine solche irre Meldung provoziert (bzw. bei Martin sind da überhaupt mehrere im "Eimer").
Nachdem das Problem nicht mit dd und badblocks auftritt, sondern auch ein einfaches cat übers Ziel rausschießt, nehme ich mal an, daß es wirklich was mit dem Kernel zu tun hat.
Ajep ;) Interessant waere evtl. noch, wie z.B. vche darauf reagiert. Wenn man ausschliessen kann, dass die Bloecke/Sektore tatsaechlich defekt sind, dann liegt ein Kernel-Bug nahe -- testhalber koennte man mal einen anderen Kernel booten, der Vanilla 2.4.16 hat sich hier bewaehrt... Ob seitdem am IDE-Code des Vanilla-Kernels rumgeschraubt wurde weiss ich grad nicht, aber bei 2.5.x sind sie mal wieder am basteln ;) -dnh -- If you found yourself in a situation where you could either save a drowning man, or you could take a Pulitzer prize winning photograph of him drowning, what shutter speed and setting would you use? -- Help wanted ad asking for a photo journalist
* On Mon, 06 Jan 2003 at 11:04 +0100, David Haller wrote:
On Mon, 06 Jan 2003, Adalbert Michelic wrote:
* On Sun, 05 Jan 2003 at 23:36 +0100, David Haller wrote:
On Sun, 05 Jan 2003, Adalbert Michelic wrote:
* On Sun, 05 Jan 2003 at 15:02 +0100, Martin Scharrer wrote: Allerdings fällt mir auf - sowohl bei Deinem System, als auch bei meinem, daß die Werte aus der in /proc/ide/hda/geometry angebenen logischen Geometrie eine kleinere Platte ergeben, als in /proc/partitions angegeben. Weiß aber ebenfalls nicht, ob das von Relevanz ist.
Liegt am Verschnitt der Geometrie (hab ich neulich mal ausfuehrlich erklaert) und ist normal.
Ich weiß; ich war laut denkend auf der Suche nach Gründen, warum bei mir ausgerechnet der letzte Block einer Partition eine solche irre Meldung provoziert (bzw. bei Martin sind da überhaupt mehrere im "Eimer").
Nachdem das Problem nicht mit dd und badblocks auftritt, sondern auch ein einfaches cat übers Ziel rausschießt, nehme ich mal an, daß es wirklich was mit dem Kernel zu tun hat.
Ajep ;) Interessant waere evtl. noch, wie z.B. vche darauf reagiert.
vche reagiert interessanterweise gar nicht :-) Er schiesst aber auch übers Ziel raus: Jan 7 07:01:09 leo kernel: attempt to access beyond end of device Jan 7 07:01:09 leo kernel: 03:02: rw=0, want=787188, limit=787185
Wenn man ausschliessen kann, dass die Bloecke/Sektore tatsaechlich defekt sind,
Ich würde sagen, ja - kann man ausschließen. Bei Defekt kommen ja ganz andere Meldungen; abgesehen davon läuft ein cat /dev/hda > /dev/null fehlerfrei durch.
dann liegt ein Kernel-Bug nahe -- testhalber koennte man mal einen anderen Kernel booten, der Vanilla 2.4.16 hat sich hier bewaehrt... Ob seitdem am IDE-Code des Vanilla-Kernels rumgeschraubt wurde weiss ich grad nicht, aber bei 2.5.x sind sie mal wieder am basteln ;)
Ich boote mal einen 2.2er, und schaue mir das da an. -- Adalbert GPG welcome, request public key: mailto:adalbert+key@lopez.at
Hi, On Sunday 05 January 2003 20:09, Adalbert Michelic wrote:
Mein Desktop macht das bei der swap-Partition auch. Mir scheint das ein Kernel-Bug zu sein - hier 2.4.18 in der Edition von SuSE/Hubert Mantel.
Mein Äpfelchen mit 2.4.20 in der Edition von Benjamin Herrenschmidt macht diese Spinnerein nicht, aber das will wohl nicht viel heissen. Also ich hab jetzt den Original SuSE 7.3 Kernel 2.4.10-4GB wieder hergesucht und mal mit dem gebootet. Dann traten diese Fehler allesamt _nicht_ auf. Nach dem Reboot mit meinem Standard Vanilla 2.4.20 Kernel waren die Fehler alle wieder am selben Ort.
Ist also eindeutig eine Kernel-Sache. Ein wenig ärgerlich aber so anscheinend nicht gefährlich (hoffe ich doch mal) Danke für alles, Martin
participants (4)
-
Adalbert Michelic
-
David Haller
-
jsj-hb@t-online.de
-
Martin Scharrer