我读到过,XBox One 会将外部硬盘格式化为 NTFS 格式。我的理解来自阅读以下网页:这个NTFS 支持应该“开箱即用”。但是,当我将驱动器插入 Linux 机器时,什么都没有挂载。在 dmesg 中,我看到设备已被识别,但 fdisk 声称没有分区表。我读到过一个 Windows 实用程序,它需要(至少在 Windows 上)修改驱动器的 MBR 以在“XBox 模式”和“PC 模式”之间切换,所以我怀疑在 Linux 中也需要做类似的事情 - 但我找不到任何关于它到底在做什么的文档。或者,也许 NTFS 根本就不能开箱即用 - 例如,我在 /proc/filesystems 下看不到 ntfs,并且对“modprobe ntfs-3g”的简单尝试没有找到任何东西。
我正在运行 (L)Ubuntu 18.04.3 LTS。
答案1
我刚刚查看了驱动器上的字节,似乎微软故意删除了驱动器上的 MBR,以让我们的生活变得更加困难。
选项 1(首选):在 Linux 和 Xbox 之间共享驱动器
如果你不想修改 MBR,你可以直接访问分区。这需要一些技巧!
首先找到驱动器内 NTFS 分区的字节偏移量:
drive=your.drive.here
offset=`head -c 4k $drive | grep -aobuP '\x00\x00\x00NTFS' | sed 's/\:.*//'`
现在,假设您有一个像这样的挂载文件夹/mnt/xbox
,您可以像这样直接挂载分区:
mount $drive -o offset=$offset /mnt/xbox
或者尝试使用更好的 NTFS 性能选项:
mount $drive -t ntfs -o offset=$offset,windows_names,big_writes,streams_interface=windows,inherit /mnt/xbox
令人惊讶的是,这对我来说确实有效。继续安装它。请确保先完全关闭 Xbox,否则它会显示为不干净的文件系统,但 Linux 可以为您解决这个问题。
选项 2(有风险):修复 MBR 以使 Linux 可以读取该驱动器。
在我们开始之前,请备份 MBR,以便可以恢复:
dd if=your.drive.here bs=512 count=1 of=xbox.mbr.backup.bin
然后安装莉洛修复 MBR
sudo apt install lilo
lilo -M your.drive.here mbr
警告:除非您将 MBR 恢复到之前的状态,否则 Xbox 将无法读取该驱动器。(使用 dd 将备份文件复制到驱动器上)
据我所知,这与Windows 等效应用程序这样做(修改 MBR)似乎对他们有用,但是 YMMV。