Monday, March 12, 2012

How To: Restore a corrupted PS3 hard drive: Part 2

Last time I detailed my experiences dealing with a corrupted hard drive on my PS3.  Now I'll run through, step by step, the process on how to do it yourself.

Now for the 1, 2, 3s.

What you will need:

  1. Bad PS3 hard drive
  2. New hard drive of equal or larger size
  3. SATA to USB cable or a spare USB enclosure
  4. Copy of 'dd' for the OS of your choice 
    • (Linux and OS X users should have it by default, Windows users can get it here)
  5. Time, patience, and a desire to recover your data

The process:
  1. Remove bad drive from the PS3
  2. Connect bad drive to a computer that has enough free space as the size of your drive
  3. Make a backup image using 'dd'
    • WARNING! You should be able to do this without having administrator/root/superuser rights.  However, if for some reason you have to do this with admin/root/su rights, PLEASE, quadruple check what you type and make sure you have the correct paths.  It is entirely possible to completely ruin a system install if you overwrite your computer's main hard drive and 'dd' will do this without blinking an eye if you tell it to.

    • The command I used was
      • dd bs=10M if=*path_to_your_ps3_hdd* of=*path_to_ps3_save*ps3_save.dd
    • Where *path_to_your_ps3_hdd* is the full path to the bad drive and *path_to_ps3_save* is the full path to where you want the backup image to be stored.

    • For example, I would've used
      • dd bs=10M if=/dev/sdb of=~/OMGPLZWORK/ps3_save.dd
    • As a Linux user "/dev/sdb" was the path to the bad drive when connected via the USB adapter and "~/OMGPLZWORK/" was the path to where I wanted to save the image.
    • Note that you DO NOT want to specify a partition number (/dev/sdb1) as you want to image the whole drive.  There probably won't be a partition number, but just in case.

    • If you are a Windows user the command would look something like this
      • dd bs=10M if=\\.\e: of=c:\OMGPLZWORK\ps3_save.dd
    • Note that dd for windows requires "\\.\" before the drive letter.
    • Please read the "dd for windows" website if you are at all confused.

    • And for OS X users it would be something like this
      • dd bs=10M if=/dev/disk2 of=~/OMGPLZWORK/ps3_save.dd
    • As with Linux, you DO NOT want to specify a partition number (/dev/disk2s1) if there is one.
    • Note: '~' is a shortcut to your home directory.

    • Linux and OS X users (and I suppose Windows users too, if you wanted to install gzip, but I won't cover that) can use a variant of that command that will compress the image as it's created
      • dd bs=10M if=*path_to_your_ps3_hdd* | gzip -9 > *path_to_ps3_save*ps3_save.gz
    • This will not compress the image much, as it will only compress free space on the drive, but it took my 320 gigabyte drive to around 260 gigabytes.
  4. Connect new drive to the same computer
  5. Restore image using 'dd'
    • The command to use is
      • dd bs=10M of=*path_to_your_ps3_hdd* if=*path_to_ps3_save*ps3_save.dd
    • or if you chose to compress the image
      • gunzip -c *path_to_ps3_save*ps3_save.gz | dd bs=10M of=*path_to_your_ps3_hdd*
  6. Install new drive into the PS3
  7. Boot up the PS3 and let it attempt to restore
Note: If you have the available hardware, there's no reason you couldn't just 'dd' the data from the bad drive directly to the new drive.If you wanted to do that the command would be
  • dd bs=10M if=*path_to_your_bad_ps3_hdd* of=*path_to_your_good_ps3_hdd*
For example
  • dd bs=10M if=/dev/sdb of=/dev/sdc
If you choose to do this, you run the risk of writing the new drive over your bad drive if you have a typo (even if you're not running with admin/root/su rights!), so quadruple check the command and paths before executing.

If all goes well your PS3 should be back up and running with little data loss.  However there is NO guarantee that this will work for you.  If you're like me, though, it's worth a shot and you never know, it just might work.


  1. Hey there!
    Nearly a year later and I have the same problem. Your post seems to be the only way to get the data fixed so I'll try and report back, when my replacement HDD arrived and I created and cloned my old HDD. Thanks for the guide! I would be loosing all my data since 2006, when I let the PS3 format the HDD, so a pray to god, that it will work for me!
    Only thing it, my HDD never tried to restore, it hang before, but every smart tool (seatool and WDs disgnostic) said the HDD is fine. Wish me luck, will report back!

    1. First try didn't worked. :(
      New dd'ed HDD in PS3 (old worked again after formating it) and straight to the recovery mode and tried 3., but error code 8001002B...
      So I decided, to try again without recovery mode, started it up and it wanted to have a update on a USB medium. Inserted + Start & Select and the PS3 is formatting the "new" system drive. -.-"
      Okay, new try later this day. It's rebuilding again. :(

  2. how can I get the drive of my bad ps3 hdd? it's not showing in the windows explorer

    1. Of course it is not showing, would it be showing, it would have a mbr and couldn't be read from the PS3 never ever again.
      dd --list will show you all available drives. Search for the right size (e.g. "size is 750156374016 bytes" for 750GB) and copy the first part ( e.g. "\\?\Device\Harddisk8\Partition0")...
      If you really want to try such deeper stuff, you should probably read the readme. ;)

  3. This comment has been removed by the author.

  4. ok so i was able to image the file onto an exFat formatted external, but now i'm having difficulty restoring the image file on the newer drive. I keep getting the message "87 The parameter is incorrect". Now I want to know if i should format my new HDD(were i'm going to put the image) should I format it to Fat32 or exFAT or NTFS?

    1. could you post the exact command you're trying to execute?
      it doesn't matter which format the new drive has. the entire drive is being overwritten by the backup image as soon as you execute the corresponding dd command.

  5. Thanks, this is a great how to document. My 60GB fat PS3 suffered from a corrupted hard drive and it was not backed up. Using a Fedora 19 system, I was able to backup and restore the drive image to a new drive by taking the following steps:
    1. Removed the corrupted hard drive from my PS3.
    2. Connected the corrupted hard drive to a Fedora 19 system using a USB-SATA dock.
    3. Launched the Disks (gnome-disks) utility.
    4. Created a backup image by selecting the corrupted hard drive, clicked on the "more actions" button and selected "create disk image" from the pulldown menu.
    5. Disconnected the corrupted hard drive and connected a new hard drive.
    5. Restored the image by selecting the new hard drive, clicked on the "more actions" button and selected "restore disk image" from the pulldown menu.

    After the image was restored, I disconnected the new hard drive and re-installed it in my PS3. It started up correctly and I immediately used the PS3 Backup Utility to copy all the game related data. Again, thanks!

  6. This comment has been removed by the author.

  7. Eh, so I came across this great blog post after hitting 'Restore PS3 System' and now everything is as if it left the factory.

    My question being, does the PS3 execute an rm -rf (nuke) command on its root directory when you select 'PS3 System Restore'? Hence making previous files untraceable to see any left over data, or is it still possible to perform a dd extract and pull some previous data (before the System Restore) from that? (I know it sounds a bit deep, and probably not worth all the hassle, but I just thought I'd pose the question :) ). Thanks!

    PS: It's a shame, I tried every step in Safe Mode, except manual update, and now I'm kicking myself if that would have done it... (I doubt it).

  8. This comment has been removed by the author.

  9. Hi,
    I know next to nil when it comes to reading/writing in Windows. So please bear with me. I have a 120gb hard drive and I am hoping to recover as much data as possible. I did read the "dd for windows" as you suggested and I tried to understand it as best I can. Where I am stumped is the block size. Do I input "120G" for block size in place of "10M" in your example? "120G" because that is the size of my fard drive. Or would it be better if I input "--size" since I don't know the actual size of the hard drive. So the command is:

    dd bs=--size if=\\.\e: of=c:\OMGPLZWORK\ps3_save.dd

    Can I assume that "ps3_save.dd" is the filename and "OMGPLZWORK" is the folder it is stored in?


  10. My drive doesn't show up when I do dd --list
    I went to disk management and it said you must initialize a disk before disk manager can access it, and it had a checklist with 'disk 3' selected. I clicked cancel because I didn't know if that would ruin the disk somehow.
    What should I do?