如何防止Windows 10每次都破坏ext4超级块?

Modified on: Thu, 14 Jun 2018 03:38:23 +0800

我有一台带有双启动Ubuntu / Windows的电脑已有5年多了。
最后一个工作配置是: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之后,再次发生同样的问题。

当然我尝试过找到的解决方案:

    在Windows上
  • chkdsktestdisk
  • 我删除了扩展分区,让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分区扩展为完整磁盘
  • 我在这个新的Windows分区上启动了chkdsk /F /R→几个小时后一切都很好
  • 我重新安装了Ubuntu 16.10并让安装程序调整磁盘大小并创建ext4和交换部分。
  • 我启动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开始,我可以使用W10 ext2工具安装linux ext4分区。它工作正常,我可以看到文件。但在那之后,同样的问题,当我在Linux上启动时:超级块错误。

当然,如果我只是启动W10(没有登录)并重新启动linux,那么问题就在那里。

W10 1511存在问题,我升级到W10 1607:同样的问题

我看到我在这个问题上并不孤单,但我没有看到任何解决方案。

update2:
我删除了linux和swap分区并从windows创建了一个新分区。
然后我重新安装了Ubuntu 16.10 =>同样的问题再次出现

更新3:解决方案的开始
我也许找到了解决方案。
在Windows中进行loggued时:
使用命令diskpart,当linux卷设置为offline
启动linux时没有问题。

我现在必须找到如何自动设置音量离线(regedit?)

作者:,f35

最佳答案

我做了一些研究,似乎从ext2fsprogs 1.43(Ubuntu 16.10)开始,在创建新的ext4文件系统时启用了64位和metadata_csum功能。我重新安装了Ubuntu 16.10,但在安装之前,我开始进入USB实时会话并从metadata_csum中删除了ext4的64位和/etc/mke2fs.conf功能。 。在此之后,我将安装程序从此实时会话中运出,现在我可以启动Windows 10而不会破坏我的ext4分区(在安装Ubuntu 16.10期间必须重新格式化ext4分区)。

问题与ext2fsd有关,后者显然不支持64位功能和/或metadata_csum功能。安装ext2fsd就足以破坏你的ext4分区。无需将它们安装在Windows中。

您可以使用以下命令检查是否启用了这些功能:

sudo tune2fs -l /dev/[sdXX]

其中[sdXX]代表有问题的ext4分区。

作者:muru,hempel

相关问答

添加新评论