Be Careful using Ext2Fsd
https://askubuntu.com/questions/849872/how-can-i-prevent-windows-10-from-corrupting-the-ext4-superblock-every-time
Windows を再起動した後にUbuntu 16.10 やUbuntu 17.04 が起動しなくなってしまいました。Ubuntu 16.04 は問題無かったので不思議に思っていたところ原因がわかりました。
事象
Ext2Fsd はWindows からExt4 パーティションにアクセスできるようになるとても便利なドライバです。私はExt2Fsd をWindows10 に入れていましたが、Windows を再起動した後にext4パーティションが壊れる場合があることに気が付きました。
対象 | 結果 |
---|---|
昔作ったデータ用のext4 パーティション群 | 問題なし |
Ubuntu 16.04 のext4 パーティション | 問題なし |
Ubuntu 16.10 のext4 パーティション | 壊れた |
Ubuntu 17.04 のext4 パーティション | 壊れた |
原因
以下の条件からUbuntu 16.10 以降で作成したext4 パーティションのスーパーブロックが破壊されたようです。
- Ubuntu 16.10 以降ではext4 パーティションを作成する際のデフォルトに
metadata_csum
オプションと64bit
オプションが追加されました。metadata_csum
オプションはCRCを付けるようです。64bit
オプションは16TB以上のパーティションの作成が可能になるようです。 - Ext2Fsd は
metadata_csum
オプションと64bit
オプションに対応していません。対象のext4パーティションを明示的にマウントしていなくても破壊してしまうようです。
対策
以下のいずれかで暫定対策できそうです。
- 対策方法A
Ext4Fsd をアンインストールします。 - 対策方法B
パーティションを作成する前に/etc/mke2fs.conf
を編集し、metadata_csum
オプションと64bit
オプションを無効にするために、以下のファイルからmetadata_csum
と64bit
の指定を削除します。/etc/mke2fs.conf 9
10
11
12
13
14
15
16
17
18
19
20
21[fs_types]
ext3 = {
features = has_journal
}
ext4 = {
features = has_journal,extent,huge_file,flex_bg,metadata_csum,64bit,dir_nlink,extra_isize
inode_size = 256
}
ext4dev = {
features = has_journal,extent,huge_file,flex_bg,metadata_csum,inline_data,64bit,dir_nlink,extra_isize
inode_size = 256
options = test_fs=1
} - 対策方法C (試してませんが・・・)
パーティション作成後、metadata_csum
オプションと64bit
オプションを無効にする。$ sudo tune2fs -l /dev/sda7
$ sudo tune2fs -O ^metadata_csum,^64bit /dev/sda7
$ sudo tune2fs -l /dev/sda7
Comment