I have read that the XBox One formats external hard drives in NTFS format. My understanding from reading pages such as this one is that NTFS support should work "out of the box". However, when I plug the drive into my Linux machine, nothing gets mounted. In dmesg I see that the device was recognized, but fdisk claims there is no partition table. I have read about a Windows utility that is needed (on Windows, at least) to modify the MBR of the drive to switch it between "XBox Mode" and "PC Mode" so my suspicion is that a similar thing needs to be done in Linux - but I can't find any documentation on exactly what it is doing. Alternately, maybe NTFS simply isn't working out of the box - I don't see ntfs under /proc/filesystems, for instance, and a naive attempt to "modprobe ntfs-3g" failed to find anything.
I'm running (L)Ubuntu 18.04.3 LTS.
I just looked at the bytes on the drive and it seems like Microsoft has deliberately erased the MBR on the drive to make our lives harder.
Option 1 (preferred): Sharing the drive between Linux and Xbox
If you don't want to modify the MBR, you can access the partition directly instead. This requires some trickery!
First find the byte offset of the NTFS partition within the drive:
Now, assuming you have a mount folder like
/mnt/xbox
, you can mount the partition directly like so:or get fancy with better options for NTFS performance:
Amazingly this actually worked for me. Go ahead and mount it. Make sure you do a full shutdown of the Xbox first or it will show up as an unclean filesystem, but linux can fix that for you.
Option 2 (risky): Fix the MBR to make the drive readable by Linux.
Before we begin, backup the MBR so it can restored:
Then install lilo to fix the MBR
Warning: The drive will remain unreadable by the Xbox until you restore the MBR back to its previous state. (Use dd to copy the backup file onto the drive)
As far as I can tell, this is the same thing that the Windows Equivalent app of this is doing (modifying the MBR) and it seems to work for them, but YMMV.