Windows 10が毎回ext4スーパーブロックを破損しないようにするにはどうすればよいですか?


21

私は5年以上前からUbuntu / Windowsのデュアルブートを搭載したPCを持っています。最後に機能した構成は、Windows 10およびUbuntu 16.04 LTSです。

LinuxパーティションにUbuntu 16.10をインストールすると、いくつかの問題があります。

  • Linuxでのみ起動しても問題ない場合は、問題なく動作します。
  • Windowsを起動しても問題ありませんが、Windowsは正常に動作します。
  • Windowsの後にLinuxを起動すると、スーパーブロックエラーが発生し、busyboxにドロップします。

スーパーブロックを復元する場合

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とスワップパーツを作成しました。
  • Linuxを起動します→問題ありません
  • Windowsを起動します→問題ありません(WindowsとLinuxのどちらかを選択できるWindowsメニューにアクセスし、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パーティションをW10 ext2ツールでマウントできます。うまく動作し、ファイルを見ることができます。しかし、その後、同じ問題、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モードでインストールされていますか?WindowsとUbuntuを切り替えるときにBIOS設定を変更しますか?ストレージのセットアップに何らかのRAIDを使用していますか?Ext2fsdのようなファイルシステムドライバーを使用して、Windowsからextファイルシステムにアクセスしましたか?
デビッドフォースター

UEFI BIOS:いいえ、BIOSの変更:いいえ、RAIDいいえ(MSI u270です)、WindowsからLinuxパーティションにアクセスします:いいえ。ログインせずにWindowsを起動し、ubuntuで再起動するだけで問題が発生します。おかげで私の問題に注意を取る
F35

どのようなスーパーブロックエラーですか?タイムクロックの問題ではありませんか?スーパーブロックに保存されている時間が、hardawreクロックによって報告された時間よりも短い場合、その問題が発生している可能性があります。LinuxとWindowsの両方で、ハードウェアクロックにUTCで時刻を保存してください。
solsTiCe

@solsTiCe:正確なスーパーブロックエラーについては、最初の投稿で更新を確認してください。biosの時計はUTC、Windowsの時計は現地時間のUTC、Ubuntuの時計は:sudo dpkg-reconfigure tzdata現在のデフォルトのタイムゾーン: 'ヨーロッパ/パリ'現地時間は:Sun Nov 20 21:55:16 CET 2016年世界時は今です:日11月20日午後8時55分16秒UTC 2016
F35

@ f35同じ問題があります。SSDドライブを搭載したDell XPS 13 9350によるデュアルブート。fsckでスーパーブロックを復元した後、Ubuntu 16.10を起動します。Ubuntuからの再起動は問題ありません。UbuntuからWindows 10を起動し、問題なく再起動します。ただし、Ubuntuを再起動すると、上記と同じ修正が必要な同じスーパーブロックエラーが発生します。以下の回答を試みました(ブロックレベルのバックアップサービスを無効にします)が、修正しませんでした。また、時計が上記のコメントと同じであることを確認します。なぜこれが起こっているのか誰でも知っていますか?
samleighton87 16

回答:


12

私はいくつかの調査を行いましたが、ext2fsprogs 1.43(Ubuntu 16.10)以降metadata_csum、新しいext4ファイルシステムが作成されたときに64ビットと機能が有効になっているようです。Ubuntu 16.10を新規インストールしましたが、インストールする前にUSBライブセッションを開始し、64ビットとmetadata_csumext4の機能をから削除しました/etc/mke2fs.conf。この後、このライブセッションからインストーラーを実行し、ext4パーティションを破損せずにWindows 10を起動できるようになりました(Ubuntu 16.10のインストール中にext4パーティションを再フォーマットする必要があります)。

この問題はext2fsdに関連しており、ext2fsdは明らかに64ビット機能やmetadata_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の以前のバージョンはメタデータチェックサムについて何も知らないためです。
クルンペルシュティルツキン16

fat32パーティションを備えた別のUSBドライブがあり、e2fslibs 1.43およびe2fsprogs 1.43 debianパッケージをその上に配置し、いずれdpkgかを介してインストールする場合は、以前のliveCD / DVD / whateverを使用できますudpkg
Wyatt8740

なんて恐ろしいプログラムでしょう。
マックスプレナー

「Windowsにマウントする必要はありません。」Windowsを起動するたびにこの問題が発生するのはなぜですか?
quietContest

10

私は同じ問題を抱えており、私にとってはWindows 10 ext2fsdファイルシステムドライバーのようです。たぶんあなたも?ext2fsd(バージョン0.68)をアンインストールすると、Windows 10を何度でも起動でき、ext4パーティションはクリーンなままです。ext2fsdをインストールすると、マウントされているかどうかに関係なく、すべてのext4パーティションが破損します。


2
ありがとう!Windowsからext2fsdをアンインストールすると問題が解決しました
Yohanes Gultom

2

私に合った解決策があります(diskpartは私の友人です)

1)cmd管理ウィンドウでLinuxパーティションを識別します:

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 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のルートパーティションが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

これによりスーパーブロックの問題が解決し、正常に戻りました。


1
Ubuntu 16.10はサポートされていないため、アップグレードする必要があります!
ザンナ

Ubuntu 18.04で0.69と同じ経験。ext2fsには、明らかに現在のUbuntuのリリースにまだ問題があります。
ジョナス

-1

Ubuntuパーティションのスーパーブロックは、Windows 10 Block Level Backupサービスによって破損しています。コントロールパネルから無効にします。


これがない作品でした
samleighton87

私が確認することができます。wbengineを無効にして、私はまだあまりにも問題を抱えている
F35
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.