私は5年以上前からUbuntu/Windowsのデュアルブートを搭載したPCを持っています。最後に機能した構成は、Windows 10およびUbuntu 16.04 LTSです。
LinuxパーティションにUbuntu 16.10をインストールすると、いくつかの問題があります。
スーパーブロックを復元する場合
fsck.ext4 -p -b 884736 -B 4096 /dev/sda5
Linuxをブートできますが、Windowsをもう一度ブートした後、同じ問題が再発します。
もちろん、私は見つけた解決策を試しました:
chkdsk
およびtestdisk
は、ウィンドウ上にあります。パーティションテーブル(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
私は成功せずにいくつかのテストをしました:
chkdsk /F /R
を起動しました→数時間後にすべてがうまくいきました更新:正確なスーパーブロックエラー:
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から、W10 ext2
ツールを使用してLinux ext4パーティションをマウントできます。うまく動作し、ファイルを見ることができます。しかし、その後、同じ問題、Linuxで起動すると、スーパーブロックエラーが発生します。
もちろん、W10(ログインなし)を起動してlinuxを再起動するだけでも問題は発生します。
W10 1511には問題がありましたが、W10 1607にアップグレードしました:同じ問題
私はこの問題で地球上で一人ではないことがわかりましたが、解決策は見られませんでした。
update2:Linuxとスワップパーティションを削除し、Windowsから新しいパーティションを作成しました。その後、Ubuntu 16.10を再インストールしました=>同じ問題をもう一度
更新3:解決策の始まりおそらく解決策を見つけました。 Windowsでログ記録する場合:コマンドdiskpart
を使用すると、Linuxボリュームを設定するとoffline
になり、Linuxを起動しても問題はありません。
ボリュームを自動的にオフラインに設定する方法を見つける必要があります(regedit?)
私はいくつかの調査を行いましたが、ext2fsprogs 1.43(Ubuntu 16.10)以降、新しいext4ファイルシステムの作成時に64ビットおよびmetadata_csum
機能が有効になっているようです。 Ubuntu 16.10を新規インストールしましたが、インストールする前にUSBライブセッションを開始し、metadata_csum
からext4の64ビットおよび/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パーティションを表します。
私は同じ問題を抱えており、私にとってはWindows 10 ext2fsdファイルシステムドライバーのようです。たぶんあなたも? ext2fsd(バージョン0.68)をアンインストールすると、Windows 10を何度でも起動でき、ext4パーティションはクリーンなままです。 ext2fsdをインストールすると、マウントされているかどうかに関係なく、すべてのext4パーティションが破損します。
私に合った解決策があります(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)
私の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
これでスーパーブロックの問題が解決し、正常に戻りました。