Як я можу запобігти Windows 10 щоразу пошкоджувати суперблок ext4?


21

У мене є ПК з двома завантажувальними Ubuntu / Windows з більш ніж 5 років. Останньою робочою конфігурацією були: Windows 10 та Ubuntu 16.04 LTS.

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

  • Якщо я завантажуюся тільки на Linux, проблем немає, це працює чудово.
  • Якщо я завантажую Windows, немає проблем, Windows працює чудово.
  • Якщо я завантажую Linux після Windows, у мене з’являється помилка у суперблоку та переход на зайняту скриньку.

Якщо я відновлю суперблок за допомогою

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

Я можу завантажувати Linux, але після іншої завантаження в Windows такі ж проблеми виникають знову.

Звичайно, я спробував знайдені рішення:

  • chkdskі testdiskперебуваючи на вікнах.
  • Я видаляю розширений розділ і дозволяю інсталятору Linux відтворити їх.
  • Створіть і, розширений розділ + 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 та поміняв розділ та створив новий розділ з Windows. Потім я знову встановив Ubuntu 16.10 => та сама проблема

оновлення 3: Початок рішення Я, можливо, знайшов рішення. Коли ви входите в Windows: З командою diskpart, коли встановлено об'єм linux, offline немає більше проблем, коли я завантажую Linux.

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


Чи встановлені Windows та Linux в UEFI BIOS або застарілому режимі BIOS? Ви змінюєте будь-які параметри BIOS під час переходу між Windows та Ubuntu? Чи використовуєте ви якийсь RAID для налаштування пам’яті? Ви зверталися до файлової системи ext з Windows з таким драйвером файлової системи, як Ext2fsd?
Девід Фоерстер

Біографія UEFI: ні, зміна в BIOS: ні, RAID ні (це MSI u270), доступ до Linux-розділу до Windows: ні. Просто завантаження Windows (без входу в систему) та перезавантаження з ubuntu зроблять проблему появою. Дякую, що звернули увагу на мою проблему
f35

Яка суперблокова помилка? Це не проблема годинника? Якщо час, що зберігається в суперблоці, менше часу, ніж повідомлення про годинник hardawre, у вас може виникнути ця проблема. Спробуйте зберігати час у UTC в апаратних годинниках як на Linux, так і на Windows.
solsTiCe

@solsTiCe: Перевірте моє оновлення в початковій публікації на точну помилку суперблоку. Годинник у біосах - UTC, годинник у Windows - UTC за місцевим часом, годинник в Ubuntu: sudo dpkg-переналаштування 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 і видалив 64-бітний і metadata_csumфункції для ext4 з /etc/mke2fs.conf. Після цього я запустив інсталятора з цього прямого сеансу, і тепер я можу запустити Windows 10, не пошкоджуючи розділи ext4 (вам доведеться переформатувати розділи ext4 під час встановлення Ubuntu 16.10).

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

Ви можете перевірити, чи активовано ці функції за допомогою наступної команди:

sudo tune2fs -l /dev/[sdXX]

де [sdXX] позначає відповідний розділ ext4.


4
Дякую, це теж прокидається, і я думаю, що це краще рішення. Ми можемо це зробити без перевстановлення системи Linux: з живого CD: sudo tune2fs -O ^ metadata_csum, ^ 64bit / dev / sdXX
f35

@ f35: зауважте, що живий CD / USB повинен бути Ubuntu 16.10, оскільки попередні версії Ubuntu нічого не знають про контрольну суму метаданих.
krumpelstiltskin

Ви можете використовувати більш ранні LiveCD / DVD-диски / що завгодно, якщо у вас є інший USB-накопичувач з розділом fat32, і ви покладете на нього пакети e2fslibs 1.43 та e2fsprogs 1.43 і встановіть їх через dpkgабо udpkgзанадто.
Wyatt8740

яка жахлива програма.
максимальний прихильник

"Не потрібно встановлювати їх у Windows." Чому ця проблема виникає щоразу при завантаженні Windows?
тихий конкурс

10

У мене така ж проблема, і мені здається, це драйвер файлової системи Windows 10 ext2fsd. Може, і для вас? Коли я видаляю ext2fsd (версія 0.68), я можу запустити Windows 10 так часто, як мені хочеться, і розділи ext4 залишаються чистими. Якщо встановлено ext2fsd, всі розділи ext4 пошкоджуються незалежно від того, встановлені вони чи ні.


2
Спасибі! Видалення ext2fsd з Windows вирішило мою проблему
Yohanes Gultom

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) створити скрипт на диску-диску з блокнотом, створити файл volume3offline.txt

select volume 3
offline volume
exit

3) створити bat-файл з блокнотом, створити файл govolume3offline.bat у тій самій директорії

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

4) створення запланованого завдання Відкрийте програму планування Windows tash Програму, яка запускає 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)

1
Мій Linux-кореневий розділ не відображається на диску-диску. Будь-яка ідея чому?
Дарксворм

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

Це вирішило питання про суперблок, і я повернувся до нормального стану.


1
Ubuntu 16.10 не підтримується, тому вам слід оновити!
Занна

Той же досвід з 0,69 з Ubuntu 18.04. У ext2fs явно все ще є проблеми з поточними випусками Ubuntu.
Йонас

-1

Суперблок на Ubuntu Partition пошкоджується службою резервного копіювання рівня Windows 10 Block. Відключити через панель управління.


Це не вийшло
samleighton87

Я можу підтвердити: з вимкненим wbengine у ​​мене все ще є проблема
f35
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.