GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

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

Ich habe seit mehr als 5 Jahren einen PC mit Dual-Boot Ubuntu/Windows.
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, es funktioniert gut.
  • Wenn ich Windows boote, kein Problem, Windows funktioniert einwandfrei.
  • Wenn ich Linux nach Windows boote, bekomme ich einen Superblock-Fehler und springe auf 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 von Windows treten die gleichen Probleme wieder auf.

Natürlich habe ich versucht Lösungen gefunden:

  • chkdsk und testdisk unter Windows.
  • Ich entferne die erweiterte Partition und lasse sie vom Linux-Installationsprogramm neu erstellen.
  • Erstellen Sie mit and die erweiterte Partition + ext4 und tauschen und wählen Sie diese Partition 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 einige weitere Tests ohne Erfolg durchgeführt:

  • Ich habe die erweiterte Linux-Partition entfernt
  • Ich habe die Windows-Partition auf die volle Festplatte erweitert
  • Ich habe ein chkdsk /F /R gestartet auf dieser neuen Windows-Partition → nach ein paar Stunden ist alles gut
  • Ich habe Ubuntu 16.10 neu installiert und das Installationsprogramm die Größe der Festplatte ändern lassen und den ext4- und Swap-Teil erstellt.
  • Ich boote Linux → kein Problem
  • Ich starte 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:dasselbe Problem wieder (Superblock-Fehler)

Aktualisieren Sie :
den genauen Superblock-Fehler :

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

Um es zu reparieren:

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

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

Update 2 :
Ab W10 kann ich die Linux ext4-Partition mit dem W10 ext2 mounten Werkzeug. Es funktioniert einwandfrei, ich kann die Dateien sehen. Aber danach dasselbe Problem, wenn ich unter Linux boote:Superblock-Fehler.

Wenn ich natürlich nur W10 starte (keine Anmeldung) und Linux neu starte, ist das Problem auch da.

Das Problem war mit W10 1511 vorhanden, ich habe auf W10 1607 aktualisiert:dasselbe Problem

Verwandte:Wie kann ich über Linux nach Fehlern im RAM suchen?

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

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

Update 3:Der Anfang der Lösung
Ich habe vielleicht eine Lösung gefunden.
Beim Einloggen in Windows:
Mit dem Befehl diskpart , wenn das Linux-Volume auf offline gesetzt wird
Es gibt kein Problem mehr, wenn ich Linux starte.

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

Beste Antwort

Ich habe einige Nachforschungen angestellt und es scheint, dass seit ext2fsprogs 1.43 (Ubuntu 16.10) die 64-Bit- und die metadata_csum Funktionen werden aktiviert, wenn ein neues ext4-Dateisystem erstellt wird. Ich habe Ubuntu 16.10 neu installiert, aber vor der Installation habe ich in die USB-Live-Sitzung gestartet und die 64-Bit- und metadata_csum entfernt Features für ext4 von /etc/mke2fs.conf . Danach habe ich das Installationsprogramm aus dieser Live-Sitzung ausgeführt und kann jetzt 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 offensichtlich die 64-Bit-Funktion und/oder die Funktion metadata_csum nicht unterstützt. Es reicht aus, ext2fsd installiert zu haben, um Ihre ext4-Partitionen zu beschädigen. Sie müssen nicht in Windows gemountet werden.

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

sudo tune2fs -l /dev/[sdXX]

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


Ubuntu
  1. Linux – Wie starte ich eine Windows-Partition von der Grub-Befehlszeile aus?

  2. Wie greife ich vom Linux-Terminal auf Windows-Partitionen zu?

  3. Wie kann man verhindern, dass Benutzer auf das Root-Verzeichnis zugreifen?

  4. So erstellen Sie mit dem neuen WoeUSB einen bootfähigen Windows 10 USB unter Linux

  5. So stellen Sie die IP-Adresse von C in Linux ein

So greifen Sie von Ubuntu Linux aus auf den Remote-Windows-Desktop zu

So stellen oder ändern Sie die Zeitzone in Linux

So führen Sie Ubuntu mit dem Windows-Subsystem für Linux aus

So greifen Sie von Windows 10 auf Linux-Partitionen zu

So verbinden Sie sich vom Terminal in Ubuntu Linux mit WLAN

So verhindern Sie, dass PHP-FPM unter Linux zu viel RAM verbraucht