GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come impedire a Windows 10 di danneggiare il superblocco Ext4 ogni volta?

Ho un PC con Ubuntu/Windows dual-boot da più di 5 anni.
L'ultima configurazione funzionante era: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 bene.
  • Se avvio Windows, nessun problema, Windows funziona correttamente.
  • Se avvio Linux dopo Windows, ho un errore di superblocco e passo a 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 ripresentano gli stessi problemi.

Ovviamente ho provato soluzioni trovate:

  • chkdsk e testdisk mentre su Windows.
  • Rimosso la partizione estesa e lascio che il programma di installazione di Linux le ricrei.
  • Crea con e, la partizione 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 altri test senza successo:

  • Ho rimosso la partizione estesa di Linux
  • Ho esteso la partizione di Windows all'intero disco
  • Ho lanciato un chkdsk /F /R su 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 di Windows che mi permette di scegliere tra Windows e Linux, scelgo Windows)
  • Avvio Linux:di nuovo lo stesso problema (errore superblocco)

Aggiorna :
l'errore esatto del superblocco :

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 l'avvio di Windows il problema si ripresenta...

Aggiornamento 2 :
Da W10, posso montare la partizione linux ext4 con il ext2 W10 attrezzo. Funziona bene, posso vedere i file. Ma dopo, stesso problema, quando avvio su Linux:errori di superblocco.

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

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

Correlati:come verificare la presenza di errori nella RAM tramite Linux?

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

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

aggiornamento 3:l'inizio della soluzione
Forse ho trovato una soluzione.
Quando effettuato l'accesso a Windows:
Con il comando diskpart , quando il volume di Linux è impostato su offline
non ci sono più problemi quando avvio linux.

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

Migliore risposta

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

Il problema è relativo a ext2fsd che ovviamente non supporta la funzionalità a 64 bit e/o la funzionalità metadata_csum. È sufficiente avere ext2fsd installato per corrompere le partizioni ext4. Non è necessario che vengano montati in 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.


Ubuntu
  1. Come cercare nel Web da terminale su Linux

  2. Come connettersi a una macchina Windows remota da Lubuntu Linux usando Remmina

  3. Come disabilitare la chiave di Windows dall'apertura della panoramica delle attività?

  4. Come impostare l'indirizzo IP da C in Linux

  5. Come si installa Linux insieme a Windows 8 senza danneggiare la configurazione di avvio di Windows 8?

Come accedere al desktop remoto di Windows da Ubuntu Linux

Come impostare o modificare il fuso orario in Linux

Come eseguire Ubuntu utilizzando il sottosistema Windows per Linux

Come accedere alle partizioni Linux da Windows 10

Come connettersi al WiFi dal terminale in Ubuntu Linux

Come impedire a PHP-FPM di consumare troppa RAM in Linux