PS3 [TUTORIAL] Unlock up to 8% extra total space on the PS3 internal hard drive

Update: picard (a.k.a. 3141card) has released a homebrew app (available here) that changes the reserved space from 8% to 1% automatically. Running the app again will revert the changes.

https://mega.nz/file/zdk1lKqZ#aj4WFdOeosH_ncIB5flNtUxPs341PSYaXdLF2DdA45A

PS3 Unlock HDD Space by picard (aka 3141card)
All credits to einsteinx2 on psx-place.com for his great tutorial:
https://www.psx-place.com/threads/t...l-space-on-the-ps3-internal-hard-drive.20773/

HOWTO:
  • Install the package on your custom firmware PS3 and run it. It finds the active superblock of the gameOS partition and do the necessary patches. Usually 8 percent of the memory is reserved, the app sets this value to 1 percent.
  • The optimization value is set to 1, for minimize disk fragmentation.
  • The changes are permanent. The changed active superblock is written to the HDD with the system fs umount of the gameOS partition.
  • Running the app again restores the original values, if desired.

You use this app at your own risk! I am not responsible for any damage caused to your PS3 system!​

If my PS3 app was useful to you, I would be very happy about a donation :)
https://www.paypal.com/paypalme/3141card

picard (aka 3141card)

-- (Original Post Continued Below) --

Need some extra space on your internal PS3 HDD, if so then perhaps @einsteinx2 may have a genius method for unlocking upto 8% of space on your Internal HDD, while the space is more then likely allocated for performance reasons by Sony (use this guide at your own risk), some of this saved space could be considered overkill, as the creator of this method makes a valid point that some of this saved space on larger HDDs is more then some of the early model PS3 complete HDD size, so its likely some of that space allocation is a bit overkill on the part of Sony. einsteinx21 has provided a great tutorial found below explaining in detail about this recent discovery

-STLcardsWS


depositphotos_10075144-stock-photo-protected-hdd-chain-and-lock.jpg

Unlock up to 8% extra total space on the PS3 internal hard drive


  • The What

    By default, even on custom firmware, the PS3 reserves 8% of your total internal hard drive space. From my searching online, I don't believe anyone has ever successfully unlocked that wasted space, so I decided to give it a shot. Turns out not only is it possible, but it's relatively easy thanks to some existing tools created by the community. This guide will explain how to reclaim that wasted space by manually modifying the metadata of the UFS2 formatted GameOS partition using Linux, as well as the potential cons (primarily performance, though I haven't experienced any performance issues yet myself).

    I believe the pros outweigh the cons though, and have been using this now without issue on my personal PS3 with a 1.5TB drive for a few days now, installing tons of games without a hitch.

    The Why


    While external drives used with the PS3 are all FAT32 formatted (or NTFS if you have CFW), the GameOS partition on the internal hard drive is formatted using the UFS2 filesystem with a layer of encryption on top.

    Like other *nix file systems such as Ext2/3/4, UFS2 can reserve part of the drive's space to only be used by the system or the root user. This is to reduce fragmentation and also prevent the drive from completely filling up, possibly freezing the computer.

    By default, UFS2 reserves 8% of any drive's free space, in this case meaning it can't be used by the PS3 for installing games. This is why when you first install that shiny new 1.5TB hard drive you will see that not only is it only actually 1.36 TB because hard drive manufacturers really love counting in base 10, but you also lose another 111.4 GB.

    Now generally having this reserved space is not a bad thing, however the problem is that as drives grow larger, the amount of wasted space becomes larger than some of the smaller PS3's entire hard drives! Clearly that much isn't needed to prevent fragmentation.

    The tunefs documentation mentions that "the file system's ability to avoid fragmentation will be reduced when the total free space, including the reserve, drops below 15%. As free space approaches zero, throughput can degrade by up to a factor of three over the performance obtained at a 10% threshold." Note that these numbers are already higher than the 8% default that all UFS tools as well as Sony use. Also note that it says as free space drops to 0%, performance may be up to 3 times slower than normal. However, it's unclear whether that only affects newly written--presumably more fragmented files--or all files. It seems like this is a worthy tradeoff, especially since if you do notice any performance issues you can simply delete some games or other data to free up the space. By changing the minimum free space, performance is not changed at all unless you choose to fill the drive completely...but at least you can now make that choice.

    UFS2 supports two write optimization modes: time and space. Time optimization is the default--and is used by the PS3--and allows for faster writes at the expense of potentially higher fragmentation (though generally only as the drive reaches capacity). Since we're allowing ourselves to fill almost the entire drive, these instructions also change the optimization mode to space. That means that the filesystem will spend more time during writes to ensure the files are less fragmented, insinuating that it will shuffle blocks around to make contiguous space.

    The tunefs documentation says that "the file system can either try to minimize the time spent allocating blocks, or it can attempt to minimize the space fragmentation on the disk. Optimization for space has much higher overhead for file writes. The kernel normally changes the preference automatically as the percent fragmentation changes on the filesystem." However, since the PS3 uses a custom operating system and this documentation is from FreeBSD, I think it's best to manually set the space option anyway. I have not noticed any performance degradation so far since making this change, though I still have plenty of free space on my drive at the moment.

    Photos
    Here are the before and after photos. They were taken immediately before removing the drives and immediately after reinserting them.
    BEFORE
    160GB_drive_before.jpg
    AFTER
    160GB_drive_after.jpg
    BEFORE
    1.5TB_drive_before.jpg
    AFTER
    1.5TB_drive_after.jpg


  • The How

    While it's possible to mount a PS3 hard drive in Linux and view its decrypted partitions, unfortunately the tunefs.ufs tool doesn't appear to work. It always complains that it can't find the superblock. However, the file command does work fine to show the UFS2 filesystem info when tested on a dump of the start of the partition.

    So instead of using the tunefs utility to change the minimum free space and optimization type, I wrote a script to manually scan and test single byte changes to a dump of the partition's superblock using the file command until I found the correct locations to change.

    I tested this on 2 hard drives of vastly different sizes: 160 GB and 1.5 TB. On both drives, I found that the superblock was located in the same location--the standard 128 block aka 65,536 byte offset. I also found that the locations to set the minimum free space percentage and optimization type were in the same place on both drives--byte 65,599 and 65,667 respectively. However, I highly recommend running the find_ps3_ufs2_byte_locations script anyway just to confirm before making any changes to your drive.

    Once you know the correct offsets, changing the values is simple. To adjust the minimum free space, simply write the percent in hex to byte 65,599--e.g. for 1% free space write 0x01 or for the default 8% write 0x08. To change the optimization type, write a hex 0x01 to byte 65,667--the default is 0x00 for time optimization.

    I think this should be possible to do as a PS3 homebrew app so that it can just be done directly on the device without even removing the drive. Unfortunately I have zero experience with writing PS3 homebrew, but maybe someone else with more experience can use this information to do it. I'd love to see this as an option in the REBUG custom firmware settings.

    Instructions

    1. Dump your eid root key using IrisMan/MultiMan/etc
    2. Setup a computer or virtual machine with Ubuntu 16.04. The rest of these steps are done on that machine. I tested using Parallels on a MacBook Pro, but it should work on just about anything as well as other distros.
    3. Clone my repository: git clone https://github.com/einsteinx2/PS3-Reclaim-HDD-Space.git
    4. Change to the new directory as we'll do all of the work there: cd PS3-Reclaim-HDD-Space
    5. Rename your eid root key file to eid_root_key.bin and place it in the PS3-Reclaim-HDD-Space directory
    6. Generate your hdd keys: ./ps3hdd_keygen.sh
    7. Become root since most of this requires it: sudo -s
    8. Find the device name: fdisk -l (In my case, using an external USB enclosure, it was /dev/sdb)
    9. Make virtual byte swapped encrypted device
      1. If you have a drive 1TB or less (not confirmed the exact limit): ./makedev bswap16.512 /dev/sdb
      2. If you have a drive larger than 1TB (or maybe it's 1TB and larger, I don't have a 1TB drive to test): ./makedev bswap16.1024 /dev/sdb
    10. Create decrypted device: cryptsetup create -c aes-xts-plain64 -d ./hdd_key.bin -s 256 ps3hdd_crypt /dev/nbd0
    11. Map decrypted partitions: ./kpartx -a /dev/mapper/ps3hdd_crypt
    12. View decrypted partitions (ps3hdd_crypt2 is the UFS2 GameOS partition): ls -la /dev/mapper/
    13. View current free space: [ -d /mnt/PS3GameOS ] || mkdir /mnt/PS3GameOS && mount -t ufs -o ufstype=ufs2,ro /dev/mapper/ps3hdd_crypt2 /mnt/PS3GameOS && df -h | grep "Avail\|ps3hdd_crypt2" && umount /mnt/PS3GameOS
    14. Dump the superblock of the GameOS partition: dd if=/dev/mapper/ps3hdd_crypt2 bs=512 count=256 of=GameOS_superblock.img
    15. Confirm the seek values for the next 2 commands: ./find_ps3_ufs2_byte_locations GameOS_superblock.img
    16. Set minimum free space to 1%: printf '\x01' | dd of=/dev/mapper/ps3hdd_crypt2 bs=1 seek=65599 count=1 conv=notrunc
    17. Set optimization type to "space": printf '\x01' | dd of=/dev/mapper/ps3hdd_crypt2 bs=1 seek=65667 count=1 conv=notrunc
    18. View the now larger free space: mount -t ufs -o ufstype=ufs2,ro /dev/mapper/ps3hdd_crypt2 /mnt/PS3GameOS && df -h | grep "Avail\|ps3hdd_crypt2 && umount /mnt/PS3GameOS
    19. Disconnect device: kpartx -d /dev/mapper/ps3hdd_crypt && cryptsetup remove ps3hdd_crypt && ./stop-nbd0
    20. Pop the drive back in your PS3 and enjoy the extra space! Note that I left 1% reserved space rather than going all the way to 0% to ensure that the drive never completely fills up, as I'm unsure what problems that would cause for the PS3's operating system.

  • Source code

    For ease of use, this repo contains precompiled binaries for Ubuntu 16.04 64bit. If you need or prefer to compile yourself, here are the tools used:

    bswap16: https://github.com/sguerrini97/nbdcpp (note that for >1TB drives you must change <unsigned BS=512> to <unsigned BS=1024>)

    kpartx: https://git.opensvc.com/multipath-tools/.git/

    ps3hdd_keygen.sh: http://www.psx-place.com/threads/hdd-keys-generating-scripts.10610/page-2#post-125197


  • Credits

    I would never have figured this out if it weren't for others' hard work.

    Huge thanks to Berion at PSX-Place for the hdd key generation script as well as pointing me to the information on mounting a PS3 HDD in Linux. His post here contains the script and the link: http://www.psx-place.com/threads/hdd-keys-generating-scripts.10610/page-2#post-125197

    Huge thanks to sguerrini97 at Playstation Hax for implemnenting PS3 hard drive mounting support for modern Linux kernels. Here's the post about it: https://playstationhax.xyz/forums/topic/4671-mounting-ps3-hdd-on-newer-linux-kernels and the GitHub repo: https://github.com/sguerrini97/nbdcpp.

    Thanks to dsroche for writing the original nbdcpp implementation that sguerrini97 forked, and thanks to Glevand for the original work on mounting the PS3 hard drive in OtherOS and for the great information here on the PS3 dev wiki: http://www.psdevwiki.com/ps3/Mounting_HDD_on_PC. Also thanks to anyone else that worked on PS3 hard drive mounting or anything else I'm not aware of.

 
Last edited by a moderator:
so i have Cobra Ferrox 4.87 as well as this homebrew app installed. when the 4.88 cfw comes out can i safely update or do i need to take an extra step?
 
A 4TB EXTERNAL (@ about 3.64 TB) and a 2TB INTERNAL (1732GB @ 1659GB available)

This is how I achieved it!


INTERNAL For a 2TB Firecuda SSHD or even 2TB SSD in your PS3 and to get the MAX size!!


ON a PC
  • Create bootable HDAT2 media
  • Boot into HDAT2 from media.
  • Plug in HDD.
  • Have HDAT2 search for hardware.
A 2TB disk has 3907029168 sectors.
Reducing this by 7% to 3633537126 sectors will allow a PS3 running 4.46 firmware to format and successfully boot using such a disk.

  • Open HPA and insert allocated memory amount above, then set it. 273,492,042 hidden
  • On your PS3 (updated to Evilnats 4.88CFW Then it allows downgrade to 4.46 to format HDD)
  • Downgrade your PS3 to 4.46. = Rebug 4.46.1_LE]_PS3UPDAT Works!
  • Jam in the new HDD and format.

  • Then upgrade back to REBUG_4.84.2_REX_PS3UPDAT and install toolkit etc...
  • You'll need petitboot files in the root of your (fat32) USB = place dtbImage.ps3.bin.minimal NAND (or dtbImage.ps3.bin for Nor chip) into root of usb drive.
  • Plug into the last port on PS3.
  • ON PS3 start up REBUG toolkit
  • REBUG toolkit LAST column "Resize VFLASH/NAND Regions" and reboot
  • REBUG toolkit LAST column "Install petitboot" and go to FIRST column
  • REBUG toolkit FIRST column "Boot OtherOS" = "Boot (LV1 patches: Use Current)
  • Make sure a Keyboard is plugged in usb!
  • Arrow down to EXIT TO SHELL hit enter

Code: = tunefs.ufs -m 1% /dev/ps3db (can go 0% But I used 1% for safety)
Code: = tunefs.ufs -p /dev/ps3db (to check for 1% now NOT 8%)
Code:= reboot

  • Now update to EVILNAT 4.88 CFW (and delete REBUG toolkit - no longer needed and limited, if any, functionality)
NOW YOU HAVE THE MAXIMUM INTERNAL HDD SPACE ON A PS3!!! (unless you set to 0%)
1659GB / 1732 GB out of a 2TB HDD



NOW a 4TB EXTERNAL??
  • Get yourself any older "Seagate GoFlex" drive (you want the SATA -USB interface card)
  • Grab a 2.5" seagate 4TB Barracuda drive (I know these work)

  • With a "NORMAL" SATA -USB adapter (not the GoFlex one just yet) format a BLANK MBR primary patition I use "MiniTool Partition Wizard Professional Edition"

  • Jump onto a Windows XP machine (My solution was to use a PC older than GPT partitions)
  • Plug the 4TB drive into the XP machine with the GoFlex SATA-USB adapter and format the blank partition to NTFS

  • You'll now have a MBR - NTFS Drvie of 3.63TB or a bit more recognised in Windows and your PS3
  • You can place all your PS3 ISOs into a PS3ISO folder on this drive in Windows 10 etc. no problems

WARNING DO NOT use any other interface than the GoFlex OR Use Windows 10 software to format it now as you will corrupt it!!
 
Last edited:
  • You'll need petitboot files in the root of your (fat32) USB = place dtbImage.ps3.bin.minimal NAND (or dtbImage.ps3.bin for Nor chip) into root of usb drive.
  • Plug into the last port on PS3.
  • ON PS3 start up REBUG toolkit
  • REBUG toolkit LAST column "Resize VFLASH/NAND Regions" and reboot
  • REBUG toolkit LAST column "Install petitboot" and go to FIRST column
  • REBUG toolkit FIRST column "Boot OtherOS" = "Boot (LV1 patches: Use Current)
  • Make sure a Keyboard is plugged in usb!
  • Arrow down to EXIT TO SHELL hit enter
Code: = tunefs.ufs -m 1% /dev/ps3db (can go 0% But I used 1% for safety)
Code: = tunefs.ufs -p /dev/ps3db (to check for 1% now NOT 8%)
Code:= reboot
there is a homebrew app HERE that will change it to 1% without resizing vflash or installing petitboot. webman can also do it by typing a command in the browser and lets you pick % and optimization type.
 
You have missed some nice app type "run and forget" written by @3141card. Tunefs is obsolete now.

Also You don't need ancient Windows. Run any Linux or on modern Windows use diskpart, and it will not force You to use GPT. ;]

But thanks for the info, time and effort to write of course.
 
Could this app be causing random errors where PS3 goes into recovery mode asking to connect controller with cable ? Had this error on two 4.88 consoles with HEN 3.0.3 . Both HDDs are good . I also used this app on both .
 
Could this app be causing random errors where PS3 goes into recovery mode asking to connect controller with cable ? Had this error on two 4.88 consoles with HEN 3.0.3 . Both HDDs are good . I also used this app on both .
I have the same symptoms probably after applying this modification, but maybe someone else will confirm it?
 
Could this app be causing random errors where PS3 goes into recovery mode asking to connect controller with cable ? Had this error on two 4.88 consoles with HEN 3.0.3 . Both HDDs are good . I also used this app on both .
I have the same symptoms probably after applying this modification, but maybe someone else will confirm it?
i don't think anybody has reported any problems. you can have that type of thing happen with some SSD after a while.
 
i don't think anybody has reported any problems. you can have that type of thing happen with some SSD after a while.
I am not using an SSD. Otherwise. Is there anyone on the forum who happens to randomly enter recovery mode, but does not use the PS3 Unlock HDD Space v1.00 application?
 
I am not using an SSD. Otherwise. Is there anyone on the forum who happens to randomly enter recovery mode, but does not use the PS3 Unlock HDD Space v1.00 application?
Could this app be causing random errors where PS3 goes into recovery mode asking to connect controller with cable ? Had this error on two 4.88 consoles with HEN 3.0.3 . Both HDDs are good . I also used this app on both .
I have some feedback on this. I have been fighting an issue that sprung up on my slim 2501a model about a month ago that sounds exactly like what you both are experiencing. It initially occurred just like you said. I was actually trying to boot a psn game the first time it had happened. It then booted me into the recovery screen, told me to plug in a controller, then had me re-install FW. It quickly became very unstable after that, so I decided to go down the re-formatting train.

I've been trying to nail down the root cause. I was initially thinking it was an HDD failure on my side, had also considered it could be a bug with 4.88 Evilnat CFW, or potentially this app causing the issue. After doing several re-formats, and re-doing my full game load up each time, I've continually got the same results, usually once most of my games were completely setup again which became extremely frustrating.

I was originally going back and forth, trying two different 1 TB standard SATA HDD's thinking that had to be the issue. I was using this app at some point each time during my process though to regain that extra space. Usually once my system was fairly loaded up again, I would start to see very unstable XMB activity 9 times out of 10 resulting in freezing and having to do the scan file system option and sometimes i'd also rebuild the database to see if that would help. After doing this freeze-up 1 to 2 times, it would eventually become unusable as the XMB would always freeze after that almost immediately, and I'd have to start over. It also was immediately freezing when trying to rescan XML in webman.

I decided to purchase a SSD over the weekend, to rule out the possibility of it being one of my older HDD's I was trying to use. This round i'm going to avoid using this app, just to be on the safe side, plus I really don't wanna do the full setup a 7th time. If it occurs again though (which I REALLY hope it does not), I would have to lean towards their being some sort of stability issue in 4.88 Evilnat or even something to do with 4.88 FW itself.

I did use the app on 4.87 CFW for some time without seeing issues, so my other theory could be that maybe unlocking this space while on 4.88 could be presenting some issues. Again that's just a guess. I'm really not 100% what the issue is, but there is something going on. For me the issue was definitely more prominent once the 1 tb HD started to get filled up 80% or more.

EDIT * (Update) - I started over from scratch without using this app, on 4.88 Evilnat CFW and I did in fact get the error again forcing me to plugin a controller and re-install FW. I decided to revert back to 4.87 Evilnat CFW for the time being until I can pinpoint that it is either an issue with 4.88 Evilnat CFW or an issue with just 4.88 FW in general. It seems to only occur once I have my storage filled up quite a bit. Even though I still technically had 200 gb's to spare...Idk what the issue is but there's something going on somewhere. I've never experienced this on any CFW in over 12 years.
 
Last edited:
So it's been several months since this app has been released, just wondering if anybody has had any issues with it.
2xSlim 2504B and cfw 4.88.2 evilnat + irisman 4.88 = solved my problems. I think there is something wrong with the fan speed control in cfw evilnat and webman mod. I had frequent hardware freezes and returns to recovery mode. I'm not experimenting with mods
 
Last edited:
2xSlim 2504B and cfw 4.88.2 evilnat + irisman 4.88 = solved my problems. I think there is something wrong with the fan speed control in cfw evilnat and webman mod. I had frequent hardware freezes and returns to recovery mode

Hmm, I use webman mod fan control but on Rebug 4.86.1 Lite. Did your problems start after you installed Unlock HDD Space? Or maybe after upgrading to evilnat?
 
Back
Top