GNU/Linux >> Linux の 問題 >  >> Ubuntu

Windows 10がExt4スーパーブロックを毎回破壊するのを防ぐ方法は?

私は5年以上前からデュアルブートのUbuntu/Windowsを搭載したPCを持っています。
最後に機能した構成はWindows10とUbuntu16.04LTSでした。

LinuxパーティションにUbuntu16.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から、Linuxext4パーティションをW10ext2でマウントできます。 道具。それはうまくいきます、私はファイルを見ることができます。しかしその後、Linuxで起動したときの同じ問題:スーパーブロックエラー。

もちろん、W10(ログインなし)を起動してLinuxを再起動するだけの場合、問題もあります。

問題はW101511にありましたが、W10 1607にアップグレードしました:同じ問題

関連:Linux経由でRAMのエラーをチェックする方法は?

この問題を抱えているのは私だけではないことはわかりましたが、解決策は見当たりませんでした。

update2:
Linuxとスワップパーティションを削除し、Windowsから新しいパーティションを作成しました。
次に、Ubuntu16.10=>同じ問題を再度再インストールしました

更新3:解決策の始まり
おそらく解決策を見つけました。
Windowsにログインした場合:
コマンドdiskpart 、Linuxボリュームがofflineに設定されている場合
Linuxを起動しても問題はありません。

音量を自動的にオフラインに設定する方法を見つける必要があります(regedit?)

ベストアンサー

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

この問題は、明らかに64ビット機能やmetadata_csum機能をサポートしていないext2fsdに関連しています。 ext4パーティションを破壊するには、ext2fsdをインストールするだけで十分です。それらをWindowsにマウントする必要はありません。

これらの機能が有効になっているかどうかは、次のコマンドで確認できます。

sudo tune2fs -l /dev/[sdXX]

ここで、[sdXX]は問題のext4パーティションを表します。


Ubuntu
  1. LinuxでターミナルからWebを検索する方法

  2. Linux – GrubコマンドラインからWindowsパーティションを起動する方法は?

  3. Windowsキーがアクティビティの概要を開かないようにする方法は?

  1. LinuxターミナルからWindowsパーティションにアクセスする方法は?

  2. ユーザーがルートディレクトリにアクセスできないようにする方法は?

  3. LinuxでCからIPアドレスを設定する方法

  1. Remminaを使用してLubuntulinuxからリモートWindowsマシンに接続する方法

  2. コマンドラインから時間を追跡する方法は?

  3. 新しい WoeUSB を使用して Linux で起動可能な Windows 10 USB を作成する方法