GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak zabránit tomu, aby Windows 10 pokaždé poškodil Ext4 Superblock?

Mám počítač s dual-boot Ubuntu/Windows již více než 5 let.
Poslední funkční konfigurace byla:Windows 10 a Ubuntu 16.04 LTS.

Instaluji Ubuntu 16.10 na oddíl Linux a mám nějaké problémy:

  • Pokud spustím pouze Linux, žádné problémy, funguje to dobře.
  • Pokud spustím systém Windows, žádný problém, systém Windows funguje dobře.
  • Pokud zavádím Linux po Windows, mám chybu superblock a přepadnu do busyboxu.

Pokud obnovím superblok pomocí

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

Mohu zavést Linux, ale po dalším spuštění systému Windows se stejné problémy znovu objeví.

Samozřejmě jsem zkoušel nalezená řešení:

  • chkdsk a testdisk při používání oken.
  • Odstraním rozšířený oddíl a nechám instalační program Linuxu, aby je znovu vytvořil.
  • Vytvořte pomocí a, rozšířený oddíl + ext4 a během procesu instalace tyto oddíly zaměňte a vyberte.

Tabulka oddílů (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

Udělal jsem několik dalších testů bez úspěchu:

  • Odstranil jsem rozšířený oddíl Linux
  • Rozšířil jsem oddíl systému Windows na celý disk
  • Spustil jsem chkdsk /F /R na tomto novém oddílu Windows → po několika hodinách je vše v pořádku
  • Přeinstaloval jsem Ubuntu 16.10 a nechal instalační program změnit velikost disku a vytvořit část ext4 a swap.
  • Spouštím Linux → žádný problém
  • Zavádím systém Windows → žádný problém (dostanu se do nabídky systému Windows, která mi umožňuje vybrat si mezi Windows a Linux, zvolím Windows)
  • Spouštím Linux:znovu stejný problém (chyba superbloku)

Aktualizace:
přesná chyba superbloku:

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

Chcete-li to opravit:

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

funguje dobře, ale po spuštění systému Windows se problém znovu objevil ...

Aktualizace 2:
Od W10 mohu připojit oddíl linux ext4 pomocí W10 ext2 nářadí. Funguje to dobře, soubory vidím. Ale poté stejný problém, když nastartuji Linux:chyby superbloku.

Samozřejmě, že když nabootuji W10 (bez přihlášení) a restartuji linux, problém je tam také.

Problém byl u W10 1511, upgradoval jsem na W10 1607:stejný problém

Související:Jak zkontrolovat chyby v RAM přes linux?

Viděl jsem, že s tímto problémem nejsem na zemi sám, ale neviděl jsem žádné řešení.

update2 :
Odstranil jsem linuxový a swapovací oddíl a vytvořil jsem nový oddíl z windows.
Poté jsem přeinstaloval Ubuntu 16.10 => opět stejný problém

aktualizace 3:Začátek řešení
Možná jsem našel řešení.
Při přihlášení do systému Windows :
Příkazem diskpart , když je hlasitost linuxu nastavena na offline
při bootování linuxu již není žádný problém.

Nyní musím najít, jak nastavit hlasitost offline automaticky (regedit?)

Nejlepší odpověď

Udělal jsem nějaký průzkum a zdá se, že od ext2fsprogs 1.43 (Ubuntu 16.10), 64bit a metadata_csum funkce jsou povoleny při vytvoření nového souborového systému ext4. Provedl jsem novou instalaci Ubuntu 16.10, ale před instalací jsem zahájil živou relaci USB a odstranil jsem 64bit a metadata_csum funkce pro ext4 z /etc/mke2fs.conf . Poté jsem spustil instalační program z této živé relace a nyní mohu spustit Windows 10, aniž bych poškodil své oddíly ext4 (při instalaci Ubuntu 16.10 musíte přeformátovat oddíly ext4).

Problém souvisí s ext2fsd, který zjevně nepodporuje funkci 64bit a/nebo funkci metadata_csum. K poškození oddílů ext4 stačí mít nainstalovaný ext2fsd. Není nutné, aby byly připojeny ve Windows.

Zda jsou tyto funkce povoleny, můžete zkontrolovat pomocí následujícího příkazu:

sudo tune2fs -l /dev/[sdXX]

kde [sdXX] znamená příslušný oddíl ext4.


Ubuntu
  1. Jak synchronizovat datum a čas z příkazového řádku v Ubuntu

  2. Jak vyhledávat na webu z terminálu v systému Linux

  3. Linux – Jak spustit oddíl Windows z příkazového řádku Grub?

  1. Jak zakázat klíč Windows při otevření Přehledu aktivit?

  2. Jak zabránit uživatelům v přístupu ke kořenovému adresáři?

  3. Jak nastavit IP adresu z C v linuxu

  1. Jak se připojit ke vzdálenému počítači Windows z Lubuntu linux pomocí Remmina

  2. Jak sledovat čas z příkazového řádku?

  3. Jak získat přístup k oddílům Windows z terminálu Linux?