启动 Windows 后 Linux 启动失败:根分区正在使用中。如何解决?

启动 Windows 后 Linux 启动失败:根分区正在使用中。如何解决?

我尝试设置 Linux Mint 19 和 Windows 10 双启动。(均处于 BIOS 模式)

Windows 安装在 /dev/sdc 上,Linux 安装在 /dev/sdb 上。除了 Linux 之外,/dev/sdb 上还有一个 NTFS 分区。查看 fdisk -l 输出:

Disk /dev/sdb: 1.8 TiB, 2000397852160 bytes, 3907027055 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: 0xe70e336d

Device     Boot      Start        End    Sectors   Size Id Type
/dev/sdb2          2002942 3907024064 3905021123   1.8T  5 Extended
/dev/sdb5       1034216568 3907024064 2872807497   1.3T  7 HPFS/NTFS/exFAT
/dev/sdb6  *     517107712 1034215423  517107712 246.6G 83 Linux
/dev/sdb7        515155968  517105663    1949696   952M 82 Linux swap / Solaris
/dev/sdb8          2002944  515153919  513150976 244.7G 83 Linux

Partition table entries are not in disk order.

现在,在安装后设置 Linux Mint 时,一切都运行良好。我可以毫无问题地重新启动。但是,一旦我启动到 Windows,它完全阻止 /dev/sdb并且我再也无法启动 Linux。启动结束时出现内核恐慌,让我忙碌盒子

启动 USB 拇指驱动器后检查驱动器时,fsck /dev/sdb 显示:

root@mint:~# fsck /dev/sdb
fsck from util-linux 2.31.1
e2fsck 1.44.1 (24-Mar-2018)
/dev/sdb is in use.
e2fsck: Cannot continue, aborting.

请注意:此时 /dev/sdb 尚未安装。

哦,Windows 中的“fastboot”已关闭。重启后和关机后都会发生这种情况。不知何故,Windows 让驱动器保持繁忙状态,即使在重启后也是如此。:-/

关于如何防止这种情况有什么想法吗?

更新

所以我使用了错误的 fsck 命令。我使用正确的命令再次执行了该操作,并得到以下结果:

root@mint:~# fsck /dev/sdb1

fsck from util-linux 2.31.1 e2fsck 1.44.1 (24-Mar-2018) 
ext2fs_open2: Superblock checksum does not match superblock 
fsck.ext4: Superblock invalid, trying backup blocks... 
/dev/sdb1 was not cleanly unmounted, check forced. 
Pass 1: Checking inodes, blocks, and sizes

之后,我得到了大约一千个无效块,这些块都可以通过 fsck 进行纠正。之后,我可以再次启动 Linux。但前提是我不启动 Windows。一旦我这样做,一切都会再次崩溃。

我也重新排列了该硬盘上的分区,但没有成功。

Disk /dev/sdb: 1.8 TiB, 2000397852160 bytes, 3907027055 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: 0xe70e336d

Device     Boot      Start        End    Sectors   Size Id Type
/dev/sdb1  *          2048  515104767  515102720 245.6G 83 Linux
/dev/sdb2        515106814 3907024064 3391917251   1.6T  5 Extended
/dev/sdb5       1034216568 3907024064 2872807497   1.3T  7 HPFS/NTFS/exFAT
/dev/sdb6        515106816 1032214527  517107712 246.6G 83 Linux
/dev/sdb7       1032216576 1034215423    1998848   976M 82 Linux swap / Solaris

Partition table entries are not in disk order

哦,Smarty 说硬盘很健康,很好。Windows 以这种方式弄乱分区表肯定是有原因的……

答案1

好的,显然这与 ex2fsd 有关,后者是用于访问 ext2、3、4 格式硬盘的 Windows 工具。它无法64bit处理metadata_csum feature.

这对我有帮助: Windows-10-损坏-ext4-超级块

如果您遇到同样的问题:

  1. 启动实时 Linux(例如 Ubuntu 16.04 或更高版本)
  2. sudo fsck /dev/sdXX用(XX 是分区号)更正 ext4 超级块。
  3. 删除64bitmetadata_csumsudo tune2fs -O ^metadata_csum,^64bit /dev/sdXX

这应该能帮到你。

答案2

您可以从 /etc/fstab 中注释掉 /dev/sdb5 的安装。完成此操作后,它不会引发内核恐慌,因为存在问题的分区不会尝试启动。我发现此链接这应该有助于在 Windows 10 中重启或关机之前卸载特定驱动器。您可以编写一个新的关机脚本,或者根据 Windows 10 的版本,您可以使用以下命令将脚本设置为在关机时运行邮政总局或者注册表

相关内容