@andshrew That's sound strange even more. :/ But why do You calculating GB/GiB in the first place? I believe all tools which using M, G, T etc. counts by 1024, not 1000. Even if displaying eg. GB, because in IT, we always using SI description of 1024 counting. And because it was misleading, new units has been introduced but still not many projects using it. Counts by 1000 however using damn media producers but this can be bypassed by checking block size and multiplying it by 512 which results in bytes. This is far less cancerous than 1000 stuff "converting" to 1024.![]()
Yes, I was just getting confused as I've not really had to think too much about this for a while.

I tried changing the script so that the partition table would match what my PS3 is generating when it formats the drive, but that doesn't seem to have made any difference. To do that I had to offset LBA_CACHE_START by a further -24, and change LBA_USERDATA_LENGTH to use -524320Positions will be different because script don't using any padding (empty spaces between partitions and tables). I don't know why Sony using it and why they have different size on different consoles and/or HDD. Maybe that is the key here? But I completely have no idea how to deal with that because I don't know from what depends size and their existence in the first place. In addition, we still have flags which we don't know what means in PS3PT. I leaving them intact but maybe they are somehow related to that problem?
Code:
LBA_CACHE_START=$(echo "$((${LBA_MAX}-4194296-24))")
LBA_USERDATA_LENGTH=$(echo "$((${LBA_CACHE_START}-524320))")
But despite now having an identical PS3PT I still cannot use growfs to use the maximum size of the partition.
What I had noticed is that if I incrementally grew the size of the file system I could break it (ie. get 0KB free on PS3) with one size, and then increase the size again to fix it and it would work fine again on the PS3.
The only thing I knew for certain was that increasing the size by whole GiB worked every time, so I did some testing to try and figure out what's causing it to go wrong.
| Size (bytes) | Size (GiB) | PS3 State |
| 80888192800 | 75.333 | Working |
| 82558720400 | 76.8888 | 0KB Free |
| 83631603200 | 77.888 | 0KB Free |
| 84109418300 | 78.333 | Working |
| 85039278700 | 79.199 | Working |
| 86614458000 | 80.666 | 0KB Free |
| 88036092100 | 81.99 | 0KB Free |
| 89013197200 | 82.9 | 0KB Free |
| 89657442300 | 83.5 | Working |
| 90838558300 | 84.6 | 0KB Free |
| 91901562700 | 85.59 | 0KB Free |
| 92878560400 | 86.4999 | Working |
| 316753838080 | 295 | Working |
| 317022273536 | 295.25 | Working |
| 317290709000 | 295.5 | 0KB Free |
| 317656989696 | 295.841125 | 0KB Free |
The safest course of action is probably to grow to 1GiB below the maximum that growfs says it will expand to:
Code:
root@:~ # growfs /dev/vtbd1
It's strongly recommended to make a backup before growing the file system.
OK to grow filesystem on /dev/vtbd1 from 54GB to 296GB? [yes/no] no
In this case it would automatically expand to 296GiB, so instead expand to 295GiB
Code:
root@:~ # growfs -s 295g /dev/vtbd1
It's strongly recommended to make a backup before growing the file system.
OK to grow filesystem on /dev/vtbd1 from 54GB to 295GB? [yes/no] yes
Otherwise convert the size in bytes of your partition to GiB and work out the highest number you can use without it rounding up. Then run growfs using the exact number of bytes you calculate as the size. In my case the partition is 317656989696 bytes which is 295.841125 GiB, and the largest I successfully grew it to was 295.25 GiB or 317022273536 bytes (I could probably have gone higher than this but I messed it up by going to 295.5 expecting that to work, when it didn't and I don't want to re-image the drive any more today
).
Code:
root@:~ # growfs -s 317022273536b /dev/vtbd1
It's strongly recommended to make a backup before growing the file system.
OK to grow filesystem on /dev/vtbd1 from 295GB to 295GB? [yes/no] yes
Edit: Just to add I'm doing this testing on OFW, so perhaps CFW can work around this limitation on the PS3 side.
Alternatively maybe some logic could be added to the extender script such that it calculates the p2 length in such a way that takes account for this, so then you could just run growfs without having to worry about what size to use.
Last edited:



