Wie kann ich verhindern, dass Windows 10 den ext4-Superblock jedes Mal beschädigt?

21

Ich habe einen PC mit Dual-Boot Ubuntu / Windows seit mehr als 5 Jahren. Die letzte funktionierende Konfiguration war: Windows 10 und Ubuntu 16.04 LTS.

Ich installiere Ubuntu 16.10 auf der Linux-Partition und habe einige Probleme:

  • Wenn ich nur unter Linux boote, keine Probleme, funktioniert es einwandfrei.
  • Wenn ich Windows boote, kein Problem, funktioniert Windows einwandfrei.
  • Wenn ich Linux nach Windows starte, habe ich einen Superblock-Fehler und gehe zu busybox.

Wenn ich den Superblock mit wiederherstelle

fsck.ext4 -p -b 884736 -B 4096 /dev/sda5

Ich kann Linux booten, aber nach einem weiteren Booten unter Windows treten dieselben Probleme erneut auf.

Natürlich habe ich Lösungsansätze ausprobiert:

  • chkdskund testdiskwährend auf Windows.
  • Ich entferne die erweiterte Partition und lasse sie vom Linux-Installer neu erstellen.
  • Erstellen Sie mit und die erweiterte Partition + ext4 und tauschen Sie diese Partition aus und wählen Sie sie während des Installationsvorgangs aus.

Die Partitionstabelle ( fdisk -lu):

Disk /dev/sda: 298,1 GiB, 320072933376 bytes, 625142448 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
Disklabel type: dos
Disk identifier: 0x6bb7527c

Device     Boot     Start       End   Sectors   Size Id Type
/dev/sda1            2048  22783999  22781952  10,9G  7 HPFS/NTFS/exFAT
/dev/sda2  *     22784000  22988799    204800   100M  7 HPFS/NTFS/exFAT
/dev/sda3        22988800 375246847 352258048   168G  7 HPFS/NTFS/exFAT
/dev/sda4       375246848 625141759 249894912 119,2G  f W95 Ext'd (LBA)
/dev/sda5       383440896 617844735 234403840 111,8G 83 Linux
/dev/sda6       617846784 625141759   7294976   3,5G 82 Linux swap / Solaris

Ich habe weitere Tests ohne Erfolg durchgeführt:

  • Ich habe die erweiterte Linux-Partition entfernt
  • Ich habe die Windows-Partition auf die gesamte Festplatte erweitert
  • Ich habe eine chkdsk /F /Rneue Windows-Partition gestartet → nach ein paar Stunden ist alles in Ordnung
  • Ich habe Ubuntu 16.10 neu installiert und das Installationsprogramm die Größe der Festplatte ändern und den ext4- und Swap-Teil erstellen lassen.
  • Ich boote Linux → kein Problem
  • Ich boote Windows → kein Problem (ich erreiche das Windows-Menü, in dem ich zwischen Windows und Linux wählen kann, ich wähle Windows)
  • Ich boote Linux: das gleiche Problem erneut (Superblock-Fehler)

Update: der genaue Superblock-Fehler:

fsck.ext4: Superblock checksum does not match superblock while trying to open /dev/sda5

So reparieren Sie es:

fsck.ext4 -p -b 884736 -B 4096 /dev/sda5

funktioniert gut, aber nach einem Windows-Boot ist das Problem wieder da ...

Update 2: Von W10 aus kann ich die Linux Ext4-Partition mit dem W10- ext2Tool mounten . Es funktioniert gut, ich kann die Dateien sehen. Aber danach das gleiche Problem, wenn ich unter Linux boote: Superblock-Fehler.

Natürlich, wenn ich nur W10 starte (kein Login) und Linux neu starte, ist das Problem auch da.

Das Problem war bei W10 1511 vorhanden, ich habe auf W10 1607 aktualisiert: das gleiche Problem

Ich sah, dass ich mit diesem Problem nicht allein auf der Erde war, aber ich sah keine Lösung.

update2: Ich habe die Linux- und Swap-Partition entfernt und unter Windows eine neue Partition erstellt. Dann habe ich Ubuntu 16.10 neu installiert => gleiches Problem nochmal

update 3: Am anfang der lösung habe ich vielleicht eine lösung gefunden. Bei der Anmeldung in Windows: Mit dem Befehl diskpart, wenn das Linux-Volume eingestellt ist, offline gibt es kein Problem mehr, wenn ich Linux starte.

Ich muss jetzt herausfinden, wie ich die Lautstärke automatisch offline stellen kann (regedit?)

f35
quelle
Sind Windows und Linux im UEFI-BIOS- oder Legacy-BIOS-Modus installiert? Ändern Sie BIOS-Einstellungen, wenn Sie zwischen Windows und Ubuntu wechseln? Verwenden Sie eine Art RAID für Ihre Speicherkonfiguration? Haben Sie unter Windows mit einem Dateisystemtreiber wie Ext2fsd auf das ext-Dateisystem zugegriffen?
David Foerster
UEFI-BIOS: Nein, BIOS-Änderung: Nein, RAID-Nein (es ist ein MSI u270), Zugriff auf Linux-Partition von Windows: Nein. Nur das Booten von Windows (kein Login) und ein Neustart mit Ubuntu lassen das Problem auftauchen. Danke, dass du auf mein Problem aufmerksam geworden
bist
Welcher Super Block Fehler? Ist es nicht ein Problem mit der Stechuhr? Wenn die im Superblock gespeicherte Zeit kürzer als die von der Hardawre Clock gemeldete Zeit ist, liegt das Problem möglicherweise vor. Versuchen Sie, die Zeit in UTC in der Hardware-Uhr sowohl unter Linux als auch unter Windows zu speichern.
Solstice
@solsTiCe: Überprüfe mein Update im ersten Beitrag auf den genauen Superblock-Fehler. Die Uhr in BIOS ist UTC, die Uhr in Windows ist UTC mit Ortszeit, die Uhr in Ubuntu: sudo dpkg-reconfigure tzdata Aktuelle Standardzeitzone: 'Europe / Paris' Ortszeit ist jetzt: So 20.11. 21:55:16 Uhr MEZ 2016. Weltzeit ist jetzt: So 20. November 20:55:16 UTC 2016.
f35
@f35 ich habe das selbe problem. Duales Booten mit Dell XPS 13 9350 mit SSD-Laufwerk. Startet Ubuntu 16.10 nach dem Wiederherstellen von Superblock mit fsck und ohne Probleme beim Neustart von Ubuntu. Startet Windows 10 von Ubuntu und startet es ohne Probleme neu. Beim Neustart von Ubuntu muss jedoch derselbe Superblock-Fehler wie oben behoben werden. Versuchte Antwort unten (Block Level Backup Service deaktivieren), aber nicht behoben. Bestätige auch, dass die Uhren die gleichen sind wie in deinem obigen Kommentar. Weiß jemand, warum das passiert?
samleighton87

Antworten:

12

Ich habe einige Nachforschungen angestellt und es scheint, dass seit ext2fsprogs 1.43 (Ubuntu 16.10) die 64-Bit-Version und die metadata_csumFunktionen aktiviert sind, wenn ein neues ext4-Dateisystem erstellt wird. Ich habe eine Neuinstallation von Ubuntu 16.10 durchgeführt, aber vor der Installation habe ich die USB-Live-Sitzung gestartet und die 64-Bit-Version und die metadata_csumFunktionen für ext4 von entfernt /etc/mke2fs.conf. Danach habe ich das Installationsprogramm aus dieser Live-Sitzung ausgeführt und jetzt kann ich Windows 10 starten, ohne meine ext4-Partitionen zu beschädigen (Sie müssen Ihre ext4-Partitionen während der Installation von Ubuntu 16.10 neu formatieren).

Das Problem hängt mit ext2fsd zusammen, das die 64-Bit-Funktion und / oder die Funktion metadata_csum offensichtlich nicht unterstützt. Es reicht aus, ext2fsd installiert zu haben, um Ihre ext4-Partitionen zu beschädigen. Sie müssen nicht in Windows eingehängt werden.

Mit dem folgenden Befehl können Sie überprüfen, ob diese Funktionen aktiviert sind:

sudo tune2fs -l /dev/[sdXX]

Dabei steht [sdXX] für die betreffende ext4-Partition.

hempel
quelle
4
Danke, es funktioniert auch und ich denke, es ist eine bessere Lösung. Wir können es tun, ohne das Linux-System neu zu installieren: von einer Live-CD: sudo tune2fs -O ^ metadata_csum, ^ 64bit / dev / sdXX
f35
@ f35: Beachten Sie, dass die Live-CD / USB Ubuntu 16.10 sein muss, da frühere Versionen von Ubuntu nichts über Metadatenprüfsummen wissen.
Krumpelstiltskin
Sie können frühere Live-CDs / DVDs / was auch immer verwenden, wenn Sie ein anderes USB-Laufwerk mit einer Fat32-Partition haben und Sie die Debian-Pakete e2fslibs 1.43 und e2fsprogs 1.43 darauf ablegen und diese entweder dpkgoder udpkgauch installieren .
Wyatt8740
Was für ein schreckliches Programm.
Max Pleaner
Msgstr "Sie müssen nicht in Windows gemountet werden." Warum tritt dieses Problem bei jedem Start von Windows auf?
quietContest
10

Ich habe das gleiche Problem und für mich scheint es der Windows 10 ext2fsd-Dateisystemtreiber zu sein. Vielleicht auch für dich? Wenn ich ext2fsd (Version 0.68) deinstalliere, kann ich Windows 10 so oft starten, wie ich möchte und die ext4-Partitionen bleiben sauber. Wenn ext2fsd installiert ist, werden alle ext4-Partitionen beschädigt, unabhängig davon, ob sie gemountet sind oder nicht.

hempel
quelle
2
Vielen Dank! Das Deinstallieren von ext2fsd unter Windows hat mein Problem gelöst
Yohanes Gultom
2

Ich habe eine Lösung, die für mich funktioniert (Diskpart ist mein Freund)

1) Identifizieren Sie die Linux-Partition in den cmd-Verwaltungsfenstern:

diskpart
list volume

Sie können Ihre Linux-Partition sehen

  N° volume   Ltr  Nom          Fs     Type        Taille   Statut     Info
  ----------  ---  -----------  -----  ----------  -------  ---------  --------
  Volume 0     D   BIOS_RVY     NTFS   Partition     10 G   Sain
  Volume 1     E   System       NTFS   Partition    100 M   Sain       Système
  Volume 2     C   OS_Install   NTFS   Partition    131 G   Sain       Démarrag
  Volume 3     L                       Partition     18 G   Sain     

DISKPART>

In meinem Fall: Band 3

2) erstelle ein diskpart script mit notepad erstelle die datei volume3offline.txt

select volume 3
offline volume
exit

3) Erstellen Sie eine Fledermausdatei mit dem Editor. Erstellen Sie die Datei govolume3offline.bat im selben Verzeichnis

cd \users\f35\documents
diskpart /s volume3offline.txt

4) Eine geplante Aufgabe erstellen Öffnen Sie den Windows Tash Scheduler. Programmieren Sie eine Aufgabe, die govolume3offline.bat beim Booten startet

5) Überprüfen Sie, ob nach einem Neustart in Windows alles in Ordnung ist

diskpart
list volume

Ihr Linux-Volume sollte offline sein

Unter Linux neu starten

If no errors => it's good
if you have errors, 
    correct them
    reboot in windows
    reboot in linux 
       If no errors => it's good
       if you have errors, goto 1)
f35
quelle
1
Meine Linux-Root-Partition wird in diskpart nicht angezeigt. Irgendeine Idee warum?
Darksworm
2

Auf meiner GPT-Festplatte läuft Ubuntu 16.10 parallel zu Windows 7.

Ich bin auf das hier dokumentierte Superblock-Korruptionsproblem gestoßen, da ich vergessen hatte, ext2fs in der Vergangenheit installiert zu haben, und es weiterhin als Windows-Dienst im Hintergrund ausgeführt wurde.

Das neue ext2fs v0.69 besagt, dass es den Superblock-Korruptionsfehler behebt und ich es von http://www.ext2fsd.com/ installiert habe . Der "ext2fs Manager" zeigte mein ext4-formatiertes Laufwerk jedoch als ext3 an und es war nach dem Mounten unter Windows nicht zugänglich.

Also habe ich ext2fs komplett deinstalliert und getan

fsck.ext4 -p -b 884736 -B 4096 /dev/sdxyz

Dies löste das Superblock-Problem und ich bin wieder normal.

user774876
quelle
1
Ubuntu 16.10 wird nicht unterstützt, daher sollten Sie ein Upgrade durchführen!
Zanna
Gleiche Erfahrung mit 0.69 mit Ubuntu 18.04. ext2fs hat immer noch Probleme mit aktuellen Versionen von Ubuntu.
Jonas
-1

Superblock auf Ubuntu Partition wird vom Windows 10 Block Level Backup-Dienst beschädigt. Deaktivieren Sie über das Bedienfeld.

dave_melb
quelle
Das hat nicht funktioniert
samleighton87
Ich kann bestätigen: mit deaktivierter Wbengine habe ich immer noch das Problem
f35