Come posso impedire a Windows 10 di corrompere il superblocco ext4 ogni volta?


21

Ho un pc con Ubuntu / Windows a doppio avvio da più di 5 anni. L'ultima configurazione funzionante è stata: Windows 10 e Ubuntu 16.04 LTS.

Installo Ubuntu 16.10 sulla partizione Linux e ho alcuni problemi:

  • Se avvio solo su Linux, nessun problema, funziona benissimo.
  • Se avvio Windows, nessun problema, Windows funziona bene.
  • Se avvio Linux dopo Windows, ho un errore superblock e scendo su busybox.

Se ripristino il superblocco con

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

Posso avviare Linux ma dopo un altro avvio su Windows si verificano gli stessi problemi.

Ovviamente ho provato soluzioni trovate:

  • chkdske testdiskmentre su windows.
  • Rimuovo la partizione estesa e lascio ricreare al programma di installazione di Linux.
  • Crea da e, la partion estesa + ext4 e scambia e seleziona queste partizioni durante il processo di installazione.

La tabella delle partizioni ( 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

Ho fatto qualche altro test senza successo:

  • Ho rimosso la partizione estesa di Linux
  • Ho esteso la partizione di Windows a tutto il disco
  • Ho lanciato un chkdsk /F /Rsu questa nuova partizione di Windows → dopo un paio d'ore va tutto bene
  • Ho reinstallato Ubuntu 16.10 e ho lasciato che il programma di installazione ridimensionasse il disco e creasse la parte ext4 e swap.
  • Avvio Linux → nessun problema
  • Avvio Windows → nessun problema (raggiungo il menu Windows che mi consente di scegliere tra Windows e Linux, scelgo Windows)
  • Avvio Linux: di nuovo lo stesso problema (errore superblock)

Aggiornamento: errore del superblocco esatto:

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

Per ripararlo:

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

funziona bene, ma dopo un avvio di Windows, il problema è di nuovo lì ...

Aggiornamento 2: da W10, posso montare la partizione Linux ext4 con lo ext2strumento W10 . Funziona bene, posso vedere i file. Ma dopo quello, stesso problema, quando avvio su Linux: errori di superblock.

Ovviamente se avvio W10 (nessun accesso) e riavvio Linux, il problema è presente anche lì.

Il problema era presente con W10 1511, ho aggiornato a W10 1607: stesso problema

Ho visto che non ero solo sulla terra con questo problema, ma non ho visto alcuna soluzione.

update2: ho rimosso la partizione Linux e di swap e ho creato una nuova partizione da Windows. Quindi ho reinstallato di nuovo Ubuntu 16.10 => stesso problema

aggiornamento 3: L'inizio della soluzione forse ho trovato una soluzione. Quando si accede a Windows: con il comando diskpart, quando è impostato il volume di Linux offline non c'è più problema all'avvio di Linux.

Ora devo trovare come impostare automaticamente il volume offline (regedit?)


Windows e Linux sono installati nel BIOS UEFI o in modalità BIOS legacy? Modifichi le impostazioni del BIOS quando passi da Windows a Ubuntu? Usi un qualche tipo di RAID per la tua configurazione di archiviazione? Hai effettuato l'accesso al file system ext da Windows con un driver del file system come Ext2fsd?
David Foerster,

BIOS UEFI: no, Modifica nel BIOS: no, RAID no (è un MSI u270), accedi alla partizione Linux da Windows: no. Basta avviare Windows (nessun accesso) e riavviare con Ubuntu per far apparire il problema. Grazie per prestare attenzione al mio problema
f35,

Quale errore di superblocco? Non è un problema di orologio? Se il tempo memorizzato nel super blocco è inferiore a quello riportato dall'orologio hardawre, potresti avere questo problema. Prova a memorizzare l'ora in UTC nell'orologio hardware sia su Linux che su Windows.
solsTiCe

@solsTiCe: controlla il mio aggiornamento nel post iniziale per l'esatto errore superblock. L'orologio nel BIOS è UTC, l'orologio in Windows è UTC con l'ora locale, l'orologio in Ubuntu: sudo dpkg-reconfigure tzdata Fuso orario predefinito corrente: 'Europa / Parigi' L'ora locale è ora: Dom 20 Nov 21:55:16 CET 2016. Universal Time is now: dom 20 nov 20:55:16 UTC 2016.
f35

@ f35 Ho lo stesso problema. Doppio avvio con Dell XPS 13 9350 con unità SSD. Si avvierà in Ubuntu 16.10 dopo aver ripristinato superblock con fsck e senza problemi di riavvio da Ubuntu. Si avvierà in Windows 10 da Ubuntu e non si riavvierà nessun problema. Tuttavia, al riavvio in Ubuntu stesso errore superblock che richiede la correzione di cui sopra. Ho cercato di seguito (disabilita il servizio di backup a livello di blocco) ma non è stato corretto. Conferma anche che gli orologi sono gli stessi del tuo commento sopra. Qualcuno sa perché questo sta accadendo?
samleighton87,

Risposte:


12

Ho fatto alcune ricerche e sembra che da ext2fsprogs 1.43 (Ubuntu 16.10), il 64 bit e le metadata_csumfunzionalità siano abilitate quando viene creato un nuovo filesystem ext4. Ho fatto una nuova installazione di Ubuntu 16.10, ma prima dell'installazione, ho iniziato la sessione live USB e rimosso 64 bit e metadata_csumfunzionalità per ext4 da /etc/mke2fs.conf. Dopo questo ho eseguito l'installer da questa sessione live e ora posso avviare Windows 10 senza corrompere le mie partizioni ext4 (devi riformattare le tue partizioni ext4 durante l'installazione di Ubuntu 16.10).

Il problema è legato a ext2fsd che ovviamente non supporta la funzionalità a 64 bit e / o la funzionalità metadata_csum. È sufficiente installare ext2fsd per corrompere le partizioni ext4. Non è necessario che vengano montati su Windows.

Puoi verificare se queste funzionalità sono abilitate con il seguente comando:

sudo tune2fs -l /dev/[sdXX]

dove [sdXX] sta per la partizione ext4 in questione.


4
Grazie, anche lui si sveglia ed è una soluzione migliore, penso. Possiamo farlo senza reinstallare il sistema Linux: da un CD live: sudo tune2fs -O ^ metadata_csum, ^ 64bit / dev / sdXX
f35

@ f35: nota che il CD / USB live deve essere Ubuntu 16.10, poiché le versioni precedenti di Ubuntu non sanno nulla del checksum dei metadati.
Krumpelstiltskin,

Puoi usare i precedenti liveCD / DVD / qualunque cosa tu abbia un'altra unità USB con una partizione fat32 e ci metti e2fslibs 1.43 ed e2fsprogs 1.43 pacchetti debian su di esso e li installi tramite uno dpkgo entrambi udpkg.
Wyatt8740,

che programma orribile.
max pleaner

"Non è necessario che vengano montati su Windows." Perché questo problema si verifica ogni volta che avvio Windows?
quietContest,

10

Ho lo stesso problema e per me sembra essere il driver del file system ext2fsd di Windows 10. Forse anche per te? Quando disinstallo ext2fsd (versione 0.68) posso avviare Windows 10 tutte le volte che voglio e le partizioni ext4 rimangono pulite. Con ext2fsd installato tutte le partizioni ext4 vengono danneggiate, indipendentemente dal fatto che siano montate o meno.


2
Grazie! La disinstallazione di ext2fsd da Windows ha risolto il mio problema
Yohanes Gultom,

2

Ho una soluzione che funziona per me (diskpart è mio amico)

1) identifica la partizione linux nelle finestre amministrative cmd:

diskpart
list volume

puoi vedere la tua partizione linux

  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>

Nel mio caso: volume 3

2) creare uno script diskpart con notepad creare il file volume3offline.txt

select volume 3
offline volume
exit

3) creare un file bat con il blocco note creare il file govolume3offline.bat nella stessa directory

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

4) creare un'attività pianificata Aprire lo scheduler di tash di Windows Programmare un'attività che avvia govolume3offline.bat all'avvio

5) controlla se tutto va bene dopo un riavvio in Windows

diskpart
list volume

il tuo volume di linux dovrebbe essere offline

Riavvia in linux

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)

1
La mia partizione root di Linux non viene visualizzata in diskpart. Qualche idea sul perché?
Darksworm,

2

Sul mio disco rigido GPT Ubuntu 16.10 è in esecuzione in parallelo a Windows 7.

Ho riscontrato il problema di corruzione del superblocco documentato qui, poiché avevo dimenticato di aver installato ext2fs in passato ed era ancora in esecuzione come servizio Windows in background.

Il nuovo ext2fs v0.69 dice che corregge il bug di corruzione del superblocco e l'ho installato da http://www.ext2fsd.com/ . Tuttavia, "ext2fs Manager" ha mostrato il mio disco formattato ext4 come ext3 e non era accessibile dopo il montaggio in Windows.

Quindi, ho disinstallato completamente ext2fs e l'ho fatto

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

Questo ha risolto il problema del superblocco e sono tornato alla normalità.


1
Ubuntu 16.10 non è supportato, quindi dovresti aggiornare!
Zanna,

Stessa esperienza con 0.69 con Ubuntu 18.04. ext2fs ha chiaramente ancora problemi con le versioni correnti di Ubuntu.
Jonas

-1

Superblock su Ubuntu Partition è corrotto dal servizio Backup a livello di blocco di Windows 10. Disabilita tramite il pannello di controllo.


Questo non ha funzionato
samleighton87,

Posso confermare: con wbengine disabilitato, ho ancora il problema
f35
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.