Resource icon

Xbox One Windows and Linux Internal Hard Drive Partitioning Script 9.0

Creates a properly partitioned Xbox One hard drive. You'll want to source the entire original drive files or use the latest OSU1 files.

Detailed tutorial: Xbox One Internal Hard Drive Upgrade or Repair: Build any size drive that works on any console

Features:
  1. Create a Standard Xbox One 500GB, 1TB, or 2TB internal hard drive
  2. Upgrade a Standard Xbox One drive to non-standard sizes including as small as 138GB, as large as 1947GB, and other non-standard sizes
  3. Set Standard Xbox One GUID values w/o formatting the drive
  4. Backup "System Update" to current directory System_Update and more
  5. Restore "System Update" from current directory System_Update and more
  6. Check all partitions for file system errors using chkdsk
  7. Wipe drive of all partitions and GUID values
I've created a detailed walk through found within the xboxonehdd-master-9.zip file:
xboxonehdd-master\win\readme_windows.txt
xboxonehdd-master/linux/readme_linux.txt

md5sums:
31f7d6a28726aa8efae2f6cbeaabe4a9 xboxonehdd-master-5.zip
1941641c18cfdf694d7141af2bf05f18 xboxonehdd-master-7.zip
52e5e05c9950501dddd7ef2dd5c00bf1 xboxonehdd-master-8.zip
9a14223238a8cb25e0f952f17fca0d08 xboxonehdd-master-9.zip

Please Note:
  1. Script versions 1.0 - 4.0 are not available since they lack proper support for standard 1TB and 2TB drives
  2. Script versions 6.0 - 6.1 are not available since it added non-standard larger than 2TB drive support which the Xbox One does not and will not properly support
Change log
Windows: create_xbox_drive.bat
2016/06/30 - Initial Release (2.0) - XFiX
2016/07/20 - Added Partition Size Selection (3.0) - XFiX
2016/08/10 - Use devcon to reset USB drives (4.0 Redacted 5.0) - XFiX
2016/10/18 - List Partition Sizes (4.0) - XFiX
2017/05/12 - Added Englishize Cmd v1.7a Support (5.0) - XFiX
2017/05/24 - Official 1TB and 2TB GUID Support (5.0) - XFiX
2017/12/11 - Added "Run as administrator" check (6.0) - XFiX
2017/12/11 - Non-Standard larger than 2TB Support (6.0) - XFiX
2017/12/11 - Robocopy Standard to Non-Standard (6.0) - XFiX
2018/01/03 - Added \Windows\System32\en-US check (6.0) - XFiX
2018/01/31 - Allow selection of disk 0 (6.1) - XFiX
2018/01/31 - Only Backup "System Update" (6.1) - XFiX
2018/02/01 - Added :ChkForC to avoid destroying C: (6.1) - JCRocky5, XFiX
2018/03/12 - Better check for drive letter availability (7.0) - XFiX
2018/03/12 - Copy data to a local drive when only one SATA adapter is available (7.0) - XFiX
2018/04/26 - Find and log the current system language code (7.0) - XFiX
2018/04/26 - Warn drive size limitations and limit to 2TB "User Content" (7.0) - XFiX
2018/05/29 - Logging and path improvements (7.0) - XFiX
2018/06/19 - Preserve ACLs with robocopy /COPYALL (7.0 Removed 8.0) - XFiX
2018/11/13 - Removed Englishize Cmd v1.7a Usage (8.0) - XFiX
2018/11/13 - Support systems with 10 or more attached drives (8.0) - XFiX
2019/10/22 - Renamed to create_xbox_drive_old.bat (8.1) - XFiX
2019/10/22 - create_xbox_drive.bat now calls create_xbox_drive.ps1 (8.1) - XFiX
2019/10/22 - Formatting and code cleanup (8.1) - XFiX
2019/10/08 - PowerShell replacement and feature equivalent to create_xbox_drive.bat 8.0 with improved multilingual support, removed dependence on external executables, cleaner code structure, improved logging, and drive size checks (8.1) - XFiX
2019/10/24 - Added GUI form support (9.0) - XFiX

Linux: create_xbox_drive.sh
2014/07/09 - Initial Release - Ludvik Jerabek
2016/01/07 - Removed MBR Patching and added --stage 0 (1.0) - XFiX
2016/05/13 - Added Original Xbox User Content size --mirror option (3.0) - Ludvik Jerabek
2016/05/17 - Fixed disk size calculation physical vs logical blocks (3.0) - Ludvik Jerabek
2017/05/24 - Original 1TB and 2TB GUID Support with --disktype [0|1|2] (5.0) - XFiX
2017/05/31 - Improved list_part_info.sh to help find the proper disk (5.0) - XFiX
2018/01/10 - Non-Standard larger than 2TB Support (6.0) - XFiX
2018/01/10 - Added Source drive for data copy --source option (6.0) - XFiX
2018/01/10 - Copy source data to target drive with --stage 2 (6.0) - XFiX
2018/04/26 - Warn drive size limitations and limit to 2TB "User Content" (7.0) - XFiX
2018/06/19 - Preserve ACLs with rsync -A (7.0) - XFiX
Author
tai1976
Downloads
202,221
Views
202,221
First release
Last update
Rating
4.14 star(s) 7 ratings

Latest updates

  1. Final iteration of version 9.0

    Improvements over 8.0: PowerShell replacement and feature equivalent to create_xbox_drive.bat...
  2. Final iteration of version 8.0

    Improvements over 7.0: Supports systems with 10 or more attached drives Improved non-English...
  3. Final iteration of version 7.0

    Improvements over 5.0: Added "Run as administrator" check "Direct Copy Upgrade" support "Backup...

Latest reviews

@Pro3641 - THANK YOU for publishing your findings on increasing the ‘System Update’ partition to 13GB.

As of 13 November 2022, the size of the OSU1.zip update is 6,787,990,793 bytes (6.8 GB)

These are the lines that should be changed (or commented out and added)

Files in Win directory:

create_xbox_drive.ps1
create_xbox_drive_gui.ps1

Either comment out and add below or change the following:
# Xbox update partition size (12G)
$XBOX_UPDATE_SIZE_IN_BYTES = 12884901888

Change to:
# Xbox update partition size (13G)
$XBOX_UPDATE_SIZE_IN_BYTES = 13958643712

If you want to use the old script:

file:
create_xbox_drive_old.bat

Change from:
:: Xbox update partition size (12G)
set XBOX_UPDATE_SIZE_IN_BYTES=12884901888

Change to:
:: Xbox update partition size (13G)
set XBOX_UPDATE_SIZE_IN_BYTES=13958643712

Files in Linux directory:

file:
create_xbox_drive.sh

Change from:
# Xbox update partition size (12G)
XBOX_UPDATE_SIZE_IN_BYTES=12884901888

Change to:
# Xbox update partition size (13G)
XBOX_UPDATE_SIZE_IN_BYTES=13958643712
There is a problem with your HDD partitioning with OSU1 newer versions from Sept 2022 and up (OS 22621.2216 or newer). The size of OSU1 will not fit on the System Update partition when attempting to copy into folder A and B. When you put OSU1 into folder A, you get an error saying not enough room is available when you try to copy OSU1 into folder B. I tried removing a couple language files from A folder before copying into B folder. I would only get E101 errors when putting the drive back into the Xbox original. After 3 painful days of retrying your directions, I finally increased the partition size of System Update to 13GB. I copied the OSU1 into A and B without removing any files and everything worked perfect. The new OSU1 needs about 800MB more space than the original 12GB size of the System Update partition.
Awesome stuff, per usual. Do you think the Linux installs will work with a Mac, directly, or would a Linux OS be required?
tai1976
tai1976
Thank you for your review!
The Linux shell script relies on a couple command line tools not present by default under macOS. Particularly sgdisk and mkntfs.
macOS does not natively support creating NTFS files systems and is the biggest hurdle preventing a native script.
That said, you can get sgdisk running on macOS:
https://sourceforge.net/projects/gptfdisk/files/gptfdisk/1.0.4/gdisk-binaries/
mkntfs isn't as easy:
https://www.tuxera.com/community/open-source-ntfs-3g/
Works fine, thank you for your support !! Great discription and version history :-)
no good on 4tb drives or above. You do not get correct amount of space. on a 4 tb you only get 2tb usage.
tai1976
tai1976
This is on purpose, I'm adding a warning to script version 8.0.
Xbox One internal drives have a 2TB limit that you cannot get around.
This is a bug or feature by Microsoft's design.
This is the video I made trying to fill a 5TB internal drive.
https://www.youtube.com/watch?v=tcoa8Xx_6oU
Script version 7.0 and above max out at 1947GB for the "User Content" partition.
Theoretically you can created a larger partition than this but you cannot use the additional space.
General chit-chat
Help Users
    K3Nv2 @ K3Nv2: https://youtube.com/shorts/OtUo9eLLolc?si=w9nyDGX8lthDnZIG