使用 Minitool 分区向导或 Linux 创建的分区无法被 Windows 7 识别,反之亦然

使用 Minitool 分区向导或 Linux 创建的分区无法被 Windows 7 识别,反之亦然

我遇到了一个大问题。简而言之,我正在尝试设置一个双启动系统,其中有一个共享的 TrueCrypt/NTFS 分区用于工作文件。计算机详细信息:

  • HP ZBook 15
  • 256G m.2 SATA SanDisk SD6PP4M 固态硬盘
  • BIOS 设置为传统模式
  • MBR,不是GPT(谷歌搜索此类问题通常与 GPT 有关。但事实并非如此)。
  • SATA 模式设置为 AHCI

计算机从以下分区启动:

  • 系统
  • C:
  • HP_恢复
  • HP 工具

我备份了后两个,并且扩展了C:

开始

接下来,我将 Windows 缩小到~80G:

收缩

接下来我安装了Minitool 分区向导因为 Windows 不会更改分区 ID(据我所知),我需要类型 83 来安装 Linux。我/boot/需要 TrueCrypt/NTFS 的共享分区,因此我利用可用空间创建了以下内容:

  • 主要:100G 用于 TrueCrypt NTFS,格式化为 NTFS(临时),ID 7
  • 逻辑:512M /boot,未格式化,ID 83
  • 逻辑:50G /,未格式化,ID 83

我将缩短故事的中间部分,因为它涉及到无法获得易BCD链式加载到我的逻辑/boot分区。Minitool 涉及大量卷的创建/删除/格式化,但没有什么否则(例如,不写入MBR)。

在此过程中的某个时候,我无法在 Minitool 中创建逻辑分区。我可以将它们添加到操作队列,单击应用,它会显示“操作成功”,但空间会重新显示为未分配。像这样:

已排队并准备采取行动: minitool-排队

单击“应用”后(请注意,我刚刚得到最后一块未分配的空间,并且没有分区): minitool-后

别那么快...Windows 磁盘实用程序似乎认为操作顺利! 磁盘实用程序

我甚至可以格式化它们: 格式化后.png

现在,启动 Arch Linux 安装 USB,看看会发生什么想:

### sometimes booting to USB reverses the normal /dev/sda for the SDD
### with /dev/sdb. This reboot happened to be one of those times...

# fdisk -l /dev/sdb

Invalid flag 0xefdb of EBR (for partition 5) will be corrected by w(rite).
Disk /dev/sdb: 238.5 GiB, 256060514304 bytes, 500118192 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: 0x1e6513b3

Device     Boot      Start        End    Sectors   Size Id Type
/dev/sdb1  *          2048    2101247    2099200     1G  7 HPFS/NTFS/exFAT
/dev/sdb2          2101248  172433407  170332160  81.2G  7 HPFS/NTFS/exFAT
/dev/sdb3        172435393  500103167  327667775 156.3G  f W95 Ext'd (LBA)
/dev/sdb5       3629746069 6108529054 2478782986   1.2T 74 unknown

因此,显然扩展/逻辑分区出现了一些问题(错误来自fdisk256G != 1.2T...)。

fdisk让它做这项工作怎么样?

# fdisk /dev/sdb
### delete partitions 3 and 5
### new primary, default start, +50G, change type from 83 -> 7
### new extended, default start, default end
### new logical, default start, default end
### w to write

# mkfs.ntfs -f /dev/sdb3
# mkdir ./ntfs
# mount /dev/sdb3 ./ntfs
# touch ./ntfs/test.txxt
# umount /dev/sdb3

# mkfs.ext4 /dev/sdb5
# mkdir ./ext4
# mount /dev/sdb5 ./ext4
# touch ./ext4/test.txt
# umount /dev/sdb5

回到 Windows,如果我单击 D:,系统会提示我格式化它,并告知它不是可识别的格式。Minitool 怎么样?看起来不错,它甚至可以看到内容(右键单击 D: -> 浏览)! 迷你工具-fdisk

Windows 磁盘实用程序讲述了一个不同的故事: windows-fdisk

我已经为此努力了很多很多个小时。我尝试过以下方法(均未成功):

  • 使用 FAT32 而不是 NTFS 格式化
  • 单主控 vs. 双主控 vs. 单主控 + 逻辑
  • 从 Linux 格式化、从 Win 磁盘实用程序格式化、从 Minitool 格式化
  • chkdsk /f c:(检查重启标志,重启后未发现问题)
  • 启动时按下Esc,进入硬件诊断程序,运行简短测试,未发现任何问题
  • chkdisk /f d:(如果由 Minitool 创建,它会发现$MFT错误,修复它,然后 Minitool 不再识别它已被格式化)
  • 碎片整理
  • 删除非 Windows 分区,将 Windows 重新扩展到完整磁盘,然后从头开始分区过程
  • 如果我尝试在 Windows 磁盘实用程序中格式化分区并将其挂载在 Linux 中,我会收到错误“缺少 NTFS 签名”。
  • 我注意到,如果我删除 Windows 磁盘实用程序中的第 3 个分区并在原地重新创建它,结束扇区会略有变化(从 382146607 变为 382146559)。我想这可能是问题所在,所以我在 Windows 中创建了分区(额外的主分区 + 2 个逻辑分区),注意了/dev/sda3扩展容器的起始/结束扇区,并使用相同的值重新创建了分区表。没有运气。

到目前为止,我还没有发现任何 Windows 磁盘实用程序和 Minitool 都一致的场景。我做过拥有成功的双启动系统。如果我使用 创建分区表fdisk,则 Windows 似乎很乐意启动到C:,而 Arch Linux 也很乐意启动到/dev/sda5(对于 来说合乎逻辑/boot)。只是它们两个似乎无法同时将分区识别为有效。

这个问题的一个复杂之处在于,这台笔记本电脑是一台工作电脑,附带McAfee 端点加密 (EEPC)。没有预启动身份验证,但我相信 MBR 的某些部分可能仍是加密的。分区表显然不是,因为它fdisk没有阻止我启动(顺便说一句,在尝试之前,我备份了 512MB 的/dev/sda已使用dd数据)。我添加这个,因为我确实遇到了一些 McAfee 文档,指出fixmbr不应使用它(目前无法重新找到它)。

这种行为是否让你想到了问题可能是什么?鉴于 Minitool用过的同意磁盘实用程序的说法,我认为有些事情无意中出了差错。

我正在尝试确定是否可以修复此问题,或者我是否应该要求重新创建驱动器映像。我大约一周前才收到它,但尚未恢复所有文件(因为我无法创建带或不带加密的共享分区),所以这是咬紧牙关提交工单的理想时机。

为了避免半天放弃笔记本电脑并重新开始,我不喜欢的解决方法是买一个64G微型闪存盘并将其永久保留在端口中。我会将其用于加密的 TrueCrypt/NTFS 存储或 Arch。

感谢您的任何建议,如需任何其他信息,请随时询问。

答案1

加密工具有时会将数据存储在与引导加载程序冲突或可能导致分区工具出现故障的位置。我的直觉是这就是导致您出现问题的原因,但我不能确定。

我的第一个建议是考虑使用虚拟化而不是双启动设置。如果你可以在 Windows 中运行 Linux 或反之亦然,那就意味着你只需要让一个操作系统(及其加密工具)与你的设置相匹配,而不是两个。这也意味着你不需要寻找跨平台加密工具,这可能会扩大你考虑的范围。

我的第二个建议是继续尝试其他分区工具。您可以parted在 Linux 端尝试或 GParted(均基于 libparted);在 Windows 端还有其他第三方分区工具。可以想象,其中一种工具会让其他一切都顺利。

答案2

Rod 的回答让我开始怀疑非系统分区是否可能被加密了。好吧,看看(McAfee Endpoint Encryption 状态):

端点状态

D:F:是使用 Windows 创建的分区,因此看起来它们会自动加密。我正在考虑的一种解决方法是使用 进行格式化Ext4,如果它们不是 Windows 原生的,McAfee 可能不会管它们。

这确实解释了为什么我无法在 Linux 中挂载它们。我仍然有点困惑为什么第三方分区工具不一定能识别它们。也许 Windows/McAfee 使用了一些辅助数据/信息/分区表来了解文件系统的“真实”格式。Minitool 显然无法访问它,或者没有正确执行,因为它没有将它们视为格式化。

另外,我在想,如果它们是用 Minitool 创建的,那么有些东西没有更新,因此 Windows 不会将它们视为格式化,也许是因为它正在寻找要解密的驱动器而它没有加密?

无论如何,也许我不应该猜测具体原因为什么;重点是确认这几乎肯定与加密有关。我以前的笔记本电脑有相同的设置,所以也许端点加密已更新或其策略已更改为加密非系统分区。以前情况并非如此。

相关内容