Talk:Harddrive
Todo
Need help getting data for the different SKU models and the default harddrive they are equiped with.
There is still some conflicting data to be sorted out, e.g.:
maximum size internal drive
The maximum size of the internal harddrive that the PS3 supports is 1TB (TeraBytes) note: this seems untrue as there are several people posting pictures of their external to internal drive mod with a size of 2TB
Personal experience
Using Normal Mode and Recovery - when trying to install a 1.5TB 3.5" drive as internal (using an eSATA cradle)
- Using Recovery it is possible to finish the format of the harddrive until 100%. The system however fails to reboot automaticly after that and halts. When enforced to reboot, it errors out with "Wrong Harddrive".
- When trying all the other Recovery Menu options it errors out with "Harddrive Error 0x8002F281".
- When trying to boot to XMB it also errors out with "Harddrive Error 0x8002F281".
- When replacing the drive for the previous tested 1TB harddrive, it boots without errors to XMB and reports : 827GB free/931GB total
- Conclusion
- >1TB didn't not work.
Using Factory Service Mode - when trying to install a 1.5TB 3.5" drive as internal (using an eSATA cradle) FSM
- Second try, using Service Mode
- first replacing drive for original 120GB 2.5" and using Factory Service Mode to downgrade to lowest firmware the system can handle (2K slim -> FW 2.70)
- Result is fine. Log showed no errors : UPDATER_LOG.TXT
- Replaced for 1.5TB 3.5" drive and do exactly the same 2.70 again
- Result is fine. Log showed no errors : UPDATER_LOG.TXT
- Boot to XMB with Service Mode still activated
- No problems to get into XMB, but checking System Settings > System Information shows size detection issues:
System Software Version 2.70 IP Address xxx.xxx.x.xxx MAX Address xx:xx:xx:xx:xx:xx Free Space 30 G
- Exit Factory Service Mode
- Blank screen freeze when trying to boot to XMB in normal mode
- Power off and try again gives "system software was not installed correct" error
- inserted USB with 2.70 on normal location and START+SELECT button to let it reinstall
- Preparing Update counts to 100% and then halts (does not reboot), just like in first trial.
- Manual poweroff and reboot just results in blank screen with no harddrive activity
- Conclusion
- >1TB didn't not work in normal or recovery mode only with FSM enabled.
Going back to the 1TB and crosschecking
- Replacing drive back to the working 1TB (has 3.55 on it) gives prompt to reinstall 2.70, doing so errors out with "Harddrive Error 0x8002F281".
- Entering Factory Service Mode with 1TB and let it reinstall via lv2diag results fine without errors: UPDATER_LOG.TXT
- Boot to XMB with Service Mode still activated
- No problems to get into XMB, but checking System Settings > System Information shows size detection issues (the '30 G' seems to be FSM related):
System Software Version 2.70 IP Address xxx.xxx.x.xxx MAX Address xx:xx:xx:xx:xx:xx Free Space 30 G
- Exit Factory Service Mode
- No problems to get into XMB, and checking System Settings > System Information shows no size detection issues:
System Software Version 2.70 IP Address xxx.xxx.x.xxx MAX Address xx:xx:xx:xx:xx:xx Free Space 827GB / 931GB
- Conclusion
- <=1TB works fine in all modi.
maximum size external drive
External HDD : You can format it to any size up to 8TB note: this seems untrue, because when >2TB drives have hit the market, no screenshots of >2TB external storage are known
- sources used: source: http://www.edepot.com/playstation3.html#PS3_Harddrive and euss temp blog
- todo: flush out errors, merging in a readable format
Footnote: maximum supported drive space correlates to support of 512sector (either native, or emulated), see: http://en.wikipedia.org/wiki/Advanced_Format
AES-256-CBC versus AES-256-XTS
There is conflicting mention of sources for the algo/mode used for GameOS encryption.
Fact:
- Sony/IBM loves AES
- 256bit based
- sectorsize 512 bytes (4096 bits)
- blockcipher
- recurring patterns are seen
Reference:
Experimental Tables
HDD partitions
- Notes:
- The thin horizontal grey lines without text are areas betwen regions with a size of 0 bytes (doesnt exists), are used in the table as a note to remember there is no "partition structure data" out of the regions in this position
Storage Region | File System | Size | Usage | Notes | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
OtherOS | GameOS | Official | Unnofficial | Official | Unnofficial |
Official |
Unnofficial | ||||||||||
Encryption | Type | Type | Decimal | Hexadecimal | |||||||||||||
Bytes | Sectors | Bytes | Sectors | ||||||||||||||
(3) | ps3d | No ? | No | All available | Physical Device | Internall hard drive | |||||||||||
(3.0) | ps3da | No ? | No | Any | Physical partition | Entire HDD | |||||||||||
4096 (4 KB) | 8 | 0x1000 | 0x8 | Same | Partition Table | ||||||||||||
(3.1) | ps3vflash | No ? | No | All available | Virtual Device | Only in PS3's with NOR flash | |||||||||||
(3.1(1.0)) | ps3vflasha | No ? | No | 268435456 (256 MB) | 524288 | 0x10000000 | 0x80000 | Any | Physical partition | Entire VFLASH | |||||||
4096 (4 KB) | 8 | 0x1000 | 0x8 | Same | Partition structure data ? | ||||||||||||
(3.1(1.1)) | ps3vflashb | ? | ? | Raw access ? | 15724544 (15 MB) ? | 30712 ? | 0xEFF000 ? | 0x77F8 ? | Same | "mirror" of real NOR second region: "ps3nflashb" ? | size adjusted to the previous 0x1000 | ||||||
262144 (256 KB) | 512 | 0x40000 | 0x200 | Same | Partition structure data ? | ||||||||||||
(3.1(1.2)) | ps3vflashc | dev_flash | Yes | FAT16 ? | 209453056 (199,75 MB) | 409088 | 0xC7C0000 | 0x63E00 | Same | Firmware files | |||||||
(3.1(1.3)) | ps3vflashd | dev_flash2 | ? | FAT16 ? | 16777216 (16 MB) | 32768 | 0x1000000 | 0x8000 | Same | XRegistry | Console/User settings | ||||||
(3.1(1.4)) | ps3vflashe | dev_flash3 | ? | FAT12 ? | 524288 (512 KB) | 1024 | 0x80000 | 0x400 | Same | CRL/DRL | Bluray revocation lists | ||||||
(3.1(1.5)) | ps3vflashf | ? | ? | Raw access ? | 4194304 (4 MB) | 8192 | 0x400000 | 0x2000 | Any | OtherOS bootloader | OtherOS++ bootloader | Linux/FreeBSD bootloader (otheros.bld) | |||||
(3.1(1.6)) | ps3vflashg | ? | ? | Raw access ? | 262144 (256 KB) | 512 | 0x40000 | 0x200 | Same | ? | |||||||
? | ? | ? | ? | ? | ? | ||||||||||||
(3.1(1.7)) | ps3vflashh | ? | No | Not used |
All supported by linux kernel |
0 | 0 | 0x0 | 0x0 | Any | Not used | Linux/FreeBSD for NOR models Based on graf drivers (deprecated) |
Firmware installers doesnt creates this region | ||||
4096 (4 KB) | 8 | 0x1000 | 0x8 | Same | Partition structure data ? | ||||||||||||
(3.2) | ps3db | dev_hdd0 | NAND:aes-cbc-192 NOR:aes-xts-128 |
UFS2 | Any | GameOS | NAND: region starts at sector 32 | ||||||||||
4096 (4 KB) | 8 | 0x1000 | 0x8 | Same | Partition structure data ? | ||||||||||||
(3.3) | ps3dc | dev_hdd1 | ? | FAT16 | 2147479552 (2 GB) | 4194296 | 0x7FFFF000 | 0x3FFFF8 | Same | GameOS Cache | size adjusted to the next 0x1000 | ||||||
4096 (4 KB) | 8 | 0x1000 | 0x8 | Same | Partition structure data ? | ||||||||||||
(3.4) | ps3dd | dev_hdd2 ? | No | All supported by linux kernel |
10GB All HDD except 10GB |
Any | OtherOS (disabled in firmware 3.21) |
Linux/FreeBSD for NAND/NOR models Based on glevand drivers |
- This table (pretends to) show all the posible partition layouts in all PS3 models, even when there are 2 big differences that changes partition positions (and consequently region names in Otheros/linux)
- Flash type
- NAND flash 256mb - All firmware is stored in real NAND flash
- NOR flash 16mb - A small part of the firmware is stored in real NOR flash, and most of the firmware is stored in the first "virtual flash" (ps3vflash) partition in HDD (his position makes the other partitions to be displaced)
- OtherOS bootloader installation (petitboot)
- OtherOS bootloader official - petitboot is installed in region (1.5), his size is smaller than the region so no need to resize
- OtherOS++ bootloader unofficial - petitboot is installed in region (1.5), his size is bigger than the region so the region is resized conveniently (usually up to 8MB = 16384 sectors)
- OtherOS installation
- OtherOS official for NAND models - Linux/FreeBSD installed at region (3.4), last region of the HDD
- OtherOS++ unofficial for NOR models - Linux/FreeBSD installed at region (1.7), last region of vflash is created and resized conveniently
- OtherOS/OtherOS++ unofficial for NOR/NAND models - Linux/FreeBSD installed at region (3.4), last region of the HDD
- Flash type
- Devices contains a single physical partition
- Physical partitions contains one or more logicall partitions
Partition formatting in a service mode firmware installation for NOR flash. Google it: http://lmgtfy.com/?q=site%3Ahttp%3A%2F%2Fpastebin.com%2F+%22vflash+is+enabled...%22
manufacturing updating start PackageName = /dev_usb000/PS3UPDAT.PUP settle polling interval success vflash is enabled... creating system regions... create storage region: (region id = 1) create storage region: (region id = 2) format partition: (region_id = 2, CELL_FS_UTILITY:HDD0, CELL_FS_UFS) create storage region: (region id = 3) format partition: (region_id = 3, CELL_FS_UTILITY:HDD1, CELL_FS_FAT) creating system regions done. boot from nor flash... creating nor flash regions... create storage region: (region id = 2) create storage region: (region id = 3) creating flash regions... create storage region: (region id = 1) create storage region: (region id = 2) format partition: (region_id = 2, CELL_FS_IOS:BUILTIN_FLSH1, CELL_FS_FAT) create storage region: (region id = 3) format partition: (region_id = 3, CELL_FS_IOS:BUILTIN_FLSH2, CELL_FS_FAT) create storage region: (region id = 4) format partition: (region_id = 4, CELL_FS_IOS:BUILTIN_FLSH3, CELL_FS_FAT) create storage region: (region id = 5) create storage region: (region id = 6)
Partition formatting in a service mode firmware installation for NAND flash. Google it: http://lmgtfy.com/?q=site%3Ahttp%3A%2F%2Fpastebin.com%2F+%22vflash+is+disabled...%22
manufacturing updating start PackageName = /dev_usb000/PS3UPDAT.PUP settle polling interval success vflash is disabled... boot from nand flash... creating flash regions... create storage region: (region id = 2) format partition: (region_id = 2, CELL_FS_IOS:BUILTIN_FLSH1, CELL_FS_FAT) create storage region: (region id = 3) format partition: (region_id = 3, CELL_FS_IOS:BUILTIN_FLSH2, CELL_FS_FAT) create storage region: (region id = 4) format partition: (region_id = 4, CELL_FS_IOS:BUILTIN_FLSH3, CELL_FS_FAT) create storage region: (region id = 5) create storage region: (region id = 6)
Other flash/hdd regions. Google it: http://lmgtfy.com/?q=site%3Ahttp%3A%2F%2Fpastebin.com%2F+%22CELL_FS_UTILITY%3AHDD2%22 and Mountpoints
CELL_FS_IOS:BUILTIN_FLSH1 CELL_FS_IOS:BUILTIN_FLSH2 CELL_FS_IOS:BUILTIN_FLSH3 CELL_FS_IOS:BUILTIN_FLSH4 CELL_FS_UTILITY:HDD0 CELL_FS_UTILITY:HDD1 CELL_FS_UTILITY:HDD2
Speed tests running in PS3 nativelly
Brand | Series | Model | Linux | GameOs | ||
---|---|---|---|---|---|---|
[hdparm -Tt] | N/A | |||||
Cache read (MB/s) |
Disk read (MB/s) |
Link | ||||
Fujitsu | MHW | MHW2040BH | N/A | |||
MHZ | MHZ2080BH | N/A | ||||
MHZ2160BH | N/A | |||||
Hitachi | Travelstar 5K160 | HTS541640J9SA00 | N/A | |||
Travelstar 5K250 | HTS542580K9SA00 | N/A | ||||
Travelstar 5K500 | HTS545012B9SA00 | N/A | ||||
Travelstar Z5K500 | HTS545050A7E380 | N/A | ||||
Seagate | Momentus 5400.2 | ST96812AS | N/A | |||
Momentus 5400.3 | ST980811AS | N/A | ||||
LD25 SATA | ST920217AS | N/A | ||||
ST9402115AS | N/A | |||||
LD25 5400.2 | ST940210AS | N/A | ||||
Toshiba | MKxx52GSX | MK8052GSX | N/A | |||
MK1652GSX | N/A | |||||
MKxx55GSX | MK1255GSX | N/A | ||||
MK2555GSX | N/A | |||||
MKxx65GSX | MK1665GSX | N/A | ||||
MK3265GSX | N/A | |||||
MKxx76GSX | MK1676GSX | N/A | ||||
MK3276GSX | N/A | |||||
Phat NAND HDD Entropy Table (After zerofill,no vflash)
Start Offset | End Offset | Size | Description |
---|---|---|---|
0x0000 | 0x1000 | 0x1000 | Header |
0x4000 | 0x16000 | 0x12000 | unknown |
0x18000 | 0x28000 | 0x10000 | unknown |
Slim NOR HDD Data Table (After zerofill,vflash)
Start Offset | End Offset | Size | Description |
---|---|---|---|
0x0 | 0x2000 | 0x2000 | Header |
0x4400 | 0x8118240 | please fill | unk |
0x8119000 | 0x8149960 | please fill | unk |
0x814B000 | 0x8152CB0 | please fill | unk |
0x8153000 | 0x81530C0 | please fill | unk |
0x8155000 | 0x8159B10 | please fill | unk |
0x815B000 | 0x815E3D0 | please fill | unk |
0x815F000 | 0x8166190 | please fill | unk |
0x8167000 | 0x817B750 | please fill | unk |
0x817D000 | 0x817D5C0 | please fill | unk |
0x817F000 | 0x818A500 | please fill | unk |
0x818B000 | 0x818CDC0 | please fill | unk |
0x818D000 | 0x81C9F10 | please fill | unk |
0x81CB000 | 0x81D1FD0 | please fill | unk |
0x81D3000 | 0x81D9E20 | please fill | unk |
0x81DB000 | 0x81DB1B0 | please fill | unk |
0x81DD000 | 0x81DD0A0 | please fill | unk |
0x81DF000 | 0x81DF090 | please fill | unk |
0x81E1000 | 0x81E1080 | please fill | unk |
0x81E3000 | 0x81E3090 | please fill | unk |
0x81E5000 | 0x81E50A0 | please fill | unk |
0x81E7000 | 0x81E70A0 | please fill | unk |
0x81E9000 | 0x81E9090 | please fill | unk |
0x81EB000 | 0x81F4CD0 | please fill | unk |
- There is actual readable data near the end of the disk, so this has been renamed to Data Table instead of Entropy Table
- The table is incomplete, please help filling it.
- the dump and key
GameOS fsck
code uses memory container ( there is also fsck without ) - does fsck on hdd0:
LOAD:0000000000030270 .set var_3C, -0x3C LOAD:0000000000030270 .set var_38, -0x38 LOAD:0000000000030270 .set var_34, -0x34 LOAD:0000000000030270 .set var_30, -0x30 LOAD:0000000000030270 .set var_20, -0x20 LOAD:0000000000030270 .set var_18, -0x18 LOAD:0000000000030270 .set arg_10, 0x10 LOAD:0000000000030270 LOAD:0000000000030270 lis r9, aFsck_cfs@h # "fsck_cfs" LOAD:0000000000030274 mflr r0 LOAD:0000000000030278 lis r11, aY@h # "-y" LOAD:000000000003027C lis r10, aHdd0@h # "hdd0" LOAD:0000000000030280 stdu r1, -0xB0(r1) LOAD:0000000000030284 addi r9, r9, aFsck_cfs@l # "fsck_cfs" LOAD:0000000000030288 addi r11, r11, aY@l # "-y" LOAD:000000000003028C addi r10, r10, aHdd0@l # "hdd0" LOAD:0000000000030290 std r28, 0xB0+var_20(r1) LOAD:0000000000030294 li r3, 1 = "App" LOAD:0000000000030298 li r28, 0 LOAD:000000000003029C stw r11, 0xB0+var_38(r1) LOAD:00000000000302A0 std r0, 0xB0+arg_10(r1) LOAD:00000000000302A4 stw r9, 0xB0+var_3C(r1) LOAD:00000000000302A8 stw r10, 0xB0+var_34(r1) LOAD:00000000000302AC std r29, 0xB0+var_18(r1) LOAD:00000000000302B0 stw r28, 0xB0+var_30(r1) LOAD:00000000000302B4 bl _vsh_E7C34044_getMemoryContainerId LOAD:00000000000302B8 clrldi r4, r3, 32 LOAD:00000000000302BC addi r6, r1, 0xB0+var_40 LOAD:00000000000302C0 li r5, 0x200 LOAD:00000000000302C4 lis r3, 0x200 LOAD:00000000000302C8 stw r28, 0xB0+var_40(r1) LOAD:00000000000302CC bl sys_memory_allocate_from_container LOAD:00000000000302D0 lis r7, stru_1429E8@h LOAD:00000000000302D4 lwz r5, 0xB0+var_40(r1) LOAD:00000000000302D8 addi r4, r1, 0xB0+var_3C LOAD:00000000000302DC addi r7, r7, stru_1429E8@l LOAD:00000000000302E0 lis r6, 0x200 LOAD:00000000000302E4 li r8, 0 LOAD:00000000000302E8 li r3, 3 LOAD:00000000000302EC bl _fs_utility_init_1F3CD9F1 LOAD:00000000000302F0 li r11, 0x15D # sys_memory_free LOAD:00000000000302F4 mr r29, r3 LOAD:00000000000302F8 lwz r3, 0xB0+var_40(r1) LOAD:00000000000302FC sc LOAD:0000000000030300 clrldi r3, r29, 32 LOAD:0000000000030304 bl _sysPrxForUser_sys_ppu_thread_exit LOAD:0000000000030308 lis r9, dword_146D74@h LOAD:000000000003030C ld r0, 0xB0+arg_10(r1) LOAD:0000000000030310 ld r29, 0xB0+var_18(r1) LOAD:0000000000030314 mtlr r0 LOAD:0000000000030318 stw r28, dword_146D74@l(r9) LOAD:000000000003031C ld r28, 0xB0+var_20(r1) LOAD:0000000000030320 addi r1, r1, 0xB0 LOAD:0000000000030324 blr LOAD:0000000000030324 # End of function fsck_cfs_main