Как я могу предотвратить повреждение 10 суперблока ext4 в Windows 10 каждый раз?

21

У меня есть компьютер с двойной загрузкой Ubuntu / Windows более 5 лет. Последняя рабочая конфигурация была: Windows 10 и Ubuntu 16.04 LTS.

Я устанавливаю Ubuntu 16.10 на раздел Linux и у меня возникают некоторые проблемы:

  • Если я загружаюсь только на Linux, проблем нет, все работает нормально.
  • Если я загружаю Windows, нет проблем, Windows работает нормально.
  • Если я загружаю Linux после Windows, у меня появляется ошибка суперблока и я перехожу на busybox.

Если я восстановлю суперблок с

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

Я могу загрузить Linux, но после другой загрузки Windows повторяется та же проблема.

Конечно, я попробовал найденные решения:

  • chkdskи testdiskпока на окнах.
  • Я удаляю расширенный раздел и позволяю установщику Linux воссоздать их.
  • Создайте с помощью and, расширенный раздел + ext4, поменяйте местами и выберите эти разделы в процессе установки.

Таблица разделов ( 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

Я сделал еще несколько тестов без успеха:

  • Я удалил расширенный раздел Linux
  • Я расширил раздел Windows на полный диск
  • Я запустил chkdsk /F /Rна этом новом разделе Windows → через пару часов все хорошо
  • Я переустановил Ubuntu 16.10 и позволил программе установки изменить размер диска и создать раздел ext4 и swap.
  • Я загружаю Linux → нет проблем
  • Я загружаю Windows → нет проблем (я попадаю в меню Windows, которое позволяет мне выбирать между Windows и Linux, я выбираю Windows)
  • Я загружаю Linux: та же проблема снова (ошибка суперблока)

Обновление: точная ошибка суперблока:

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

Чтобы восстановить это:

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

работает нормально, но после загрузки Windows проблема снова возникает ...

Обновление 2: из W10 я могу смонтировать раздел linux ext4 с помощью ext2инструмента W10 . Работает нормально, я вижу файлы. Но после этого та же проблема, когда я загружаюсь на Linux: ошибки суперблока.

Конечно, если я просто загружаю W10 (без логина) и перезагружаюсь linux, проблема тоже есть.

Проблема была с W10 1511, я обновился до W10 1607: та же проблема

Я видел, что не был один на земле с этой проблемой, но я не видел никакого решения.

update2: я удалил раздел linux и swap и создал новый раздел из windows. Затем я переустановил Ubuntu 16.10 => та же проблема снова

обновление 3: начало решения Я, возможно, нашел решение. При входе в Windows: С помощью команды diskpart, когда установлен том Linux, offline больше не возникает проблем при загрузке Linux.

Теперь я должен найти, как автоматически отключить громкость (regedit?)

f35
источник
Установлены ли Windows и Linux в UEFI BIOS или в устаревшем режиме BIOS? Вы меняете какие-либо настройки BIOS при переключении между Windows и Ubuntu? Используете ли вы какой-то RAID для вашей системы хранения? Получили ли вы доступ к файловой системе ext из Windows с помощью драйвера файловой системы, например Ext2fsd?
Дэвид Фёрстер
UEFI bios: нет, изменение в BIOS: нет, RAID нет (это MSI u270), доступ к разделу Linux из Windows: нет. Просто загрузите Windows (без входа в систему) и перезапустите с Ubuntu, чтобы проблема появилась. Спасибо за внимание к моей проблеме
f35
Какая ошибка суперблока? Разве это не проблема с часами? Если время, сохраненное в суперблоке, меньше времени, указанного в жестких часах, у вас может быть эта проблема. Попробуйте хранить время в UTC в аппаратных часах как на Linux, так и на Windows.
SolsTiCe
@solsTiCe: Проверьте мое обновление в первоначальном посте на предмет точной ошибки суперблока. Часы в BIOS - это UTC, часы в Windows - это UTC с местным временем, часы в Ubuntu: sudo dpkg -configure tzdata Текущий часовой пояс по умолчанию: «Европа / Париж». Местное время сейчас: вс. 20 ноября 21:55:16 CET 2016. Всемирное время сейчас: вс 20 ноября 20:55:16 UTC 2016.
f35
@ f35 У меня та же проблема. Двойная загрузка с Dell XPS 13 9350 с SSD-накопителем. Загрузится в Ubuntu 16.10 после восстановления суперблока с помощью fsck и без проблем с перезагрузкой из Ubuntu. Загрузится в Windows 10 из Ubuntu и перезагрузится без проблем. Однако при перезагрузке в Ubuntu та же ошибка суперблока, требующая исправления, как описано выше. Попробовал ответ ниже (отключить службу резервного копирования на уровне блоков), но не исправил. Также подтвердите, что часы такие же, как в приведенном выше комментарии. Кто-нибудь знает, почему это происходит?
samleighton87

Ответы:

12

Я провел некоторые исследования, и кажется, что начиная с ext2fsprogs 1.43 (Ubuntu 16.10), 64-битная и ее metadata_csumфункции включаются при создании новой файловой системы ext4. Я сделал новую установку Ubuntu 16.10, но перед установкой я начал сеанс USB live и удалил 64-битную версию и metadata_csumфункции для ext4 из /etc/mke2fs.conf. После этого я запустил установщик из этого сеанса, и теперь я могу запустить Windows 10, не повреждая мои разделы ext4 (вы должны переформатировать разделы ext4 во время установки Ubuntu 16.10).

Проблема связана с ext2fsd, который явно не поддерживает 64-битную функцию и / или функцию metadata_csum. Достаточно установить ext2fsd, чтобы испортить разделы ext4. Нет необходимости их монтировать в Windows.

Вы можете проверить, включены ли эти функции с помощью следующей команды:

sudo tune2fs -l /dev/[sdXX]

где [sdXX] обозначает рассматриваемый раздел ext4.

Hempel
источник
4
Спасибо, это тоже просыпается, и это лучшее решение, я думаю. Мы можем сделать это без переустановки системы Linux: с живого CD: sudo tune2fs -O ^ metadata_csum, ^ 64bit / dev / sdXX
f35
@ f35: обратите внимание, что live CD / USB должен быть Ubuntu 16.10, так как более ранние версии Ubuntu ничего не знают о контрольной сумме метаданных.
krumpelstiltskin
Вы можете использовать более ранние liveCD's / DVD / что угодно, если у вас есть другой USB-накопитель с разделом fat32, и вы положили на него пакеты debian e2fslibs 1.43 и e2fsprogs 1.43 и устанавливаете их с помощью одной dpkgили нескольких udpkg.
Wyatt8740
какая ужасная программа.
Макс Плинер
«Не нужно их монтировать в Windows». Почему эта проблема возникает при каждой загрузке Windows?
quietContest
10

У меня та же проблема, и для меня это, кажется, драйвер файловой системы Windows 10 ext2fsd. Может для тебя тоже? Когда я удаляю ext2fsd (версия 0.68), я могу запускать Windows 10 так часто, как хочу, и разделы ext4 остаются чистыми. При установленном ext2fsd все разделы ext4 будут повреждены независимо от того, смонтированы они или нет.

Hempel
источник
2
Благодарность! Удаление ext2fsd из windows решило мою проблему
Йоханес Гултом
2

У меня есть решение, которое работает для меня (diskpart мой друг)

1) определить раздел linux в административных окнах cmd:

diskpart
list volume

вы можете увидеть свой раздел 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>

В моем случае: Том 3

2) создать скрипт diskpart с помощью блокнота, создать файл volume3offline.txt

select volume 3
offline volume
exit

3) создайте файл bat с помощью блокнота и создайте файл govolume3offline.bat в том же каталоге

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

4) создайте запланированное задание. Откройте планировщик Windows. Запрограммируйте задание, которое запускает govolume3offline.bat во время загрузки.

5) проверьте все ли нормально после перезагрузки в windows

diskpart
list volume

ваш том Linux должен быть отключен

Перезагрузка в 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)
f35
источник
1
Мой корневой раздел Linux не отображается в diskpart. Есть идеи почему?
Darksworm
2

На моем жестком диске GPT Ubuntu 16.10 работает параллельно с Windows 7.

Я столкнулся с проблемой порчи суперблока, задокументированной здесь, так как я забыл, что раньше устанавливал ext2fs, и он все еще работал в качестве службы Windows в фоновом режиме.

Новая версия ext2fs v0.69 говорит, что исправляет ошибку повреждения суперблока, и я установил ее с http://www.ext2fsd.com/ . Тем не менее, «менеджер ext2fs» показал мой отформатированный диск ext4 как ext3, и он не был доступен после монтирования под Windows.

Итак, я полностью удалил ext2fs и сделал

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

Это решило проблему с суперблоком, и я вернулся к нормальной жизни.

user774876
источник
1
Ubuntu 16.10 не поддерживается, поэтому вы должны обновить!
Занна
Тот же опыт с 0.69 с Ubuntu 18.04. У ext2fs явно есть проблемы с текущими выпусками Ubuntu.
Джонас
-1

Суперблок в разделе Ubuntu поврежден службой резервного копирования на уровне блоков Windows 10. Отключить через панель управления.

dave_melb
источник
Это не сработало
samleighton87
Я могу подтвердить: с отключенным wbengine, у меня все еще есть проблема
f35