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
atestdisk
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.