If you have a Playstation4, you’ll eventually run out of drive space. You’ll want to use an external USB drive. And then that will eventually run out of space. You’ll want to get a larger one, and then you’ll be stuck with the question of how to copy the data from the old one to the new, larger one.
While the official answer is “no, you can’t do that”, here’s how you actually do it. (Yes, amazingly, this is actually not something you can do with any on-board tools. You will find many wrong answers from well-meaning people online.)
-
Find your geeky friend who runs Linux. Bribe them with pizza.
-
Run `
df -h
` to list what drives are already connected. -
Plug in old drive, and run `
df -h
` again to see where it attached. This will probably be `/dev/sdb
` unless there were already additional drives. Trust your Linux geek friend. -
Plug in new drive. It will probably land at `
/dev/sdc
‘ -
`
sudo dd status=progress if=/dev/sdb of=/dev/sdc
` (Replace sdb and sdc with wherever those drives landed, if they are somewhere else.) -
Wait for ages while the copy completes. This will make an exact bit-for-bit copy of the old drive onto the new drive. As it copies it will show you how much data has been copied, so that you can get a general idea of how long it will take. I get about 40 to 50 MB/s across a USB connection, so do the math. It’ll take a few hours.
-
When you plug the new drive into your PS4, it will probably complain and say that it needs to repair it. Don’t panic. Let it do its thing. All will be well.
-
I am reasonably sure that this process will also work for the PS5 filesystem. Would be happy for someone to buy me a PS5 so I can test.
Since PS4 uses a custom filesystem, you can’t just mount the drive on Windows or Mac and copy, but `dd` doesn’t care about filesystem format, it’s just a low-level data copy, and will gladly copy whatever is there. As long as the target drive is as large, or larger, than the source, it’ll Just Work.
And that’s why everyone needs a geeky friend who runs Linux.