Nachdem ich ein beschädigtes Dateisystem auf meiner SD-Karte habe (wahrscheinlich aufgrund einer unzureichenden Stromversorgung), möchte ich ein neues Dateisystem erstellen. ( e2fsck
schlägt fehl, loggen Sie sich unten ein.)
Alle dateibezogenen Änderungen auf der SD-Karte werden jedoch auf magische Weise rückgängig gemacht!
- Erstes Beispiel: Wenn ich die SD-Karte einbinde, einige Dateien lösche, verschwinden die Dateien. Wenn ich es aushänge und wieder einbinde, sind die Dateien wieder da! Wenn ich den Inhalt einer Datei ändere, ist der ursprüngliche Inhalt nach dem erneuten Mounten wieder verfügbar.
- Zweites Beispiel: Wenn ich eine neue Partitionstabelle mit erstelle
fdisk
, ist die alte Partitionstabelle sofort wieder vorhanden. (Protokoll unten.) - Drittes Beispiel: Während ich renne
dd if=/dev/zero of=/dev/mmcblk0 bs=1M
,fdisk
vernünftigerweise gesagtDisk /dev/mmcblk0 doesn't contain a valid partition table
. Alsdd
dies erledigt war, war die alte Partitionstabelle wieder da.
Ich habe die SD-Karte mit dem kleinen Schalter nicht physisch gesperrt. Ich erhalte keine schreibgeschützten Fehler. Tatsächlich bekomme ich überhaupt keine Fehler! dmesg
meldet nichts außer dass ich ein Dateisystem mit Fehlern einbinde.
Das Problem trat auch beim Ausführen einer Xubuntu-Live-CD (12.10) auf. Leider habe ich momentan keinen Zugriff auf andere Computer und / oder SD-Kartenleser.
Ist das ein Problem meines Computers, meiner SD-Karte oder fehlt mir ständig etwas? Irgendwelche Vorschläge, was ich versuchen könnte?
e2fsck
schlägt fehl:
$ sudo e2fsck /dev/mmcblk0p2
e2fsck 1.42.5 (29-Jul-2012)
/dev/mmcblk0p2: recovering journal
Superblock needs_recovery flag is clear, but journal has data.
Run journal anyway<y>? yes
e2fsck: unable to set superblock flags on /dev/mmcblk0p2
/dev/mmcblk0p2: ********** WARNING: Filesystem still has errors **********
Hier ist das Protokoll, das zeigt, dass fdisk
es keine Auswirkungen hat:
$ sudo fdisk /dev/mmcblk0
Command (m for help): p
Disk /dev/mmcblk0: 31.5 GB, 31460425728 bytes
4 heads, 16 sectors/track, 960096 cylinders, total 61446144 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00017b69
Device Boot Start End Blocks Id System
/dev/mmcblk0p1 8192 122879 57344 c W95 FAT32 (LBA)
/dev/mmcblk0p2 122880 61446143 30661632 83 Linux
Command (m for help): d
Partition number (1-4): 1
Command (m for help): d
Selected partition 2
Command (m for help): p
Disk /dev/mmcblk0: 31.5 GB, 31460425728 bytes
4 heads, 16 sectors/track, 960096 cylinders, total 61446144 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00017b69
Device Boot Start End Blocks Id System
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
$ sudo fdisk -l /dev/mmcblk0
Disk /dev/mmcblk0: 31.5 GB, 31460425728 bytes
4 heads, 16 sectors/track, 960096 cylinders, total 61446144 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00017b69
Device Boot Start End Blocks Id System
/dev/mmcblk0p1 8192 122879 57344 c W95 FAT32 (LBA)
/dev/mmcblk0p2 122880 61446143 30661632 83 Linux
Ihre Karte scheint über das MMC-Schreibschutzflag gesperrt zu sein. Wenn Sie einen Linux-Computer mit einem SD / MMC-Kartenleser haben, versuchen Sie es
Beachten Sie, dass Sie ein MCC-Gerät (kein USB-Massenspeichergerät wie dieses
/dev/sdX
) benötigen, damit dies funktioniert.sdtool
finden Sie hier . Es gibt einen Raspberry Pi-Build, ansonsten müssen Sie aus Quellen erstellen. Es scheint, dass eine ähnliche Aktion ausgeführt werden kannhdparm
, aber ich habe das nicht persönlich versucht.Beachten Sie, dass sich defekte Karten auf ähnliche Weise intern sperren, um weiteren Datenschaden zu vermeiden, und Entsperrbefehle ignorieren.
quelle