我已经使用 mdadm 在 Ubuntu 下创建了一个 RAID 1 阵列。我使用了以下链接中的手册:https://www.digitalocean.com/community/tutorials/how-to-create-raid-arrays-with-mdadm-on-ubuntu-16-04
我使用两个分区(位于不同的硬盘上)创建了一个 RAID 1 阵列。我选择了 NTFS 文件系统,以便稍后在 Windows 下读取数据。因此,在创建 RAID 1 阵列后,我在 md0 设备上写入了一个文件,并加载了 Windows XP,以检查该文件是否位于两个分区上。但我无法在 Windows XP 下打开分区。Windows XP 为两个分区分配了一个驱动器号,但当我尝试打开它们时,它显示:
file system is not available.
是否可以在 Ubuntu 上的 RAID 1 中拥有两个 NTFS 分区,以便可以从 Windows 访问它们?
[更新] 抱歉没有提供详细信息。我有两个驱动器。我在两个驱动器上都创建了 ntfs 分区。然后在 Ubuntu 下,我使用 mdadm 将它们合并到 raid 1 阵列中。我将一个文件写入 md0。然后我从第三个驱动器启动了 Windows XP。不是 VM。我看到两个分区都有一个驱动器号。每个分区一个。但我在其中看不到我的文件。我希望它在两个分区上。第一个分区不是空的(我从磁盘属性中看到它),但当我打开它时没有文件。另一个分区显示为空,无法打开。
我期望 linux mdadm 的工作方式是将文件写入镜像到两个分区,以便以后可以从任何其他操作系统读取它们。
[quote] Windows 本身并不理解 mdadm(吹毛求疵:Linux 也不理解,因为必须安装 mdadm),因此 Windows 将 2 个驱动器(和分区)视为独立的,所以它赋予“字母”,但显然无法读取内容。[/quote]
长安汽车为什么无法从 raid 1 阵列中的任何分区单独读取文件?[/UPDATE]
答案1
是否可以在 Ubuntu 上的 RAID 1 中拥有两个 NTFS 分区,以便可以从 Windows 访问它们?
是的,通过将它们作为网络共享提供,可以实现这一点。这是一种文件级别的访问,允许您创建和删除文件和文件夹。它不是允许您通过网络读取和写入特定扇区的裸机访问。通过使用网络共享,对于您的 XP 客户端来说,您的 Linux 主机在哪种类型的文件系统上管理您的文件并不重要。
正如长安汽车在其评论中强调的那样,这种解决方案在双启动环境中是不可行的,因为您需要运行两个操作系统。也许将两个磁盘分配给在 Windows 主机上的虚拟机中运行的 Linux 可以解决这个问题。
我期望 linux mdadm 的工作方式是将文件写入镜像到两个分区,以便以后可以从任何其他操作系统读取它们。
这是错误的。mdadm 可能(我从未使用过)使用 mdadm 特定的标头初始化了您的分区,该标头覆盖了您的文件系统元数据(例如引导扇区和其他元数据)。该初始化删除了 NTFS 引导扇区。mdadm 可能在 linux 目录树中的某个位置编写了一个描述您的 mdadm 设置的摘要文件。
由于 XP 不理解 mdadm 标头,因此无法识别 mdadm 结构。此外,当它仅驻留在 Linux 操作系统分区目录树的某个地方时,XP 应该从哪里获取该摘要信息/配置文件?
您没有指定使用的是 32 位还是 64 位 XP。假设界面上的典型扇区大小为 512 字节,则 32 位 XP 只能使用过时的 MBR 分区表格式(而不是现代的 GPT 分区表格式)寻址最大 2 TB 的空间。
如果您使用的磁盘大于 2 TB,那么您将会遇到问题,因为您需要在 Linux 上使用 GPT 对它们进行分区,而 XP 32 位无法识别。