Partitions

From PS4 Developer wiki
Jump to navigation Jump to search

Table[edit | edit source]

Hard drive is identified by the device id “da0”.

Device name Partition name Filesystem Encryption Type Permissions Notes
da0x0 preinst msdosfs SAMU HDD Key
da0x1 preinst2 msdosfs SAMU HDD Key
da0x2 eap_kern raw EAP Kernel Key from EAP KBL (not per-console, in sflash or PUP) Raw partition decrypted and uncompressed by EAP KBL to EAP DDR3.
da0x3 eap_vsh msdosfs EAP HDD Key (per-console, in sflash)
da0x4 system msdosfs/exfat SAMU HDD Key
da0x4b system(b) msdosfs/exfat SAMU HDD Key
da0x5 system_ex msdosfs/exfat SAMU HDD Key
da0x5b system_ex(b) msdosfs/exfat SAMU HDD Key
da0x6 old swap swapfs versioned_key (not per-console, in AMD x86 kernel) + OpenPsId (per-console, encrypted in sflash)
da0x6x0 new swap swapfs ?same as old swap?
da0x6x1 kernel log ?raw or swapfs? ?same as old swap?
da0x6x2 user log ?raw or swapfs? ?same as old swap?
da0x7 hiber ? ?
da0x8 app_tmp ufs SAMU HDD Key
da0x9 system_data ufs SAMU HDD Key
da0x10 rec_game ? ?
da0x11 rec_share ? ?
da0x12 update msdosfs EAP HDD Key (per-console, in sflash) RW
da0x13 user ufs EAP HDD Key (per-console, in sflash) RW
da0x14 eap_user ufs EAP HDD Key (per-console, in sflash) RW
da0x15 app_reserved ufs SAMU HDD Key ?dmem swap?
es0.crypt ext_hdd ? ? Only present since about FW 4.50. Used for external HDD content management.

HDD Partitions[edit | edit source]

Linux Disk Information[edit | edit source]

PS4 500GB HDD as seen with "GPT Protective Partition" in Windows XP/embedded/2003 32bit/x86

PS4 partitions as seen in Windows Vista/2008/7/8/10 and 64-bit version of Windows XP/2003
Part device file Z5K500
size
ST500LM012
size
in bytes type remarks
1 10 /dev/sdc17 1 GiB 1 GiB 1,073,741,824 80dd49e3-a985-4887-81de-1daca47aed90 app_tmp
2 15 /dev/sdc31 16 GiB 16 GiB 17,179,869,184 3ef7290a-de81-4887-a11f-46fba765c71c app_reserved
3 13 /dev/sdc27 420.12 GiB 420.120117188 GiB 451,100,540,928 c638477a-e002-4b57-a454-a27fb63a33a8 user
4 9 /dev/sdc13 8 GiB 8 GiB 8,589,934,592 76a9a5b4-44b0-472a-bde3-3107472adee2 old swap
5 5 /dev/sdc9 1 GiB 1 GiB 1,073,741,824 757a614b-6179-5361-6b61-6b6968617261 system
6 6 /dev/sdc10 1 GiB 1 GiB 1,073,741,824 757a614b-6179-5361-6b61-6b6968617261 system(b)
7 7 /dev/sdc11 1 GiB 1 GiB 1,073,741,824 dc85025f-a694-4109-be44-fa0c063e8b81 system_ex
8 8 /dev/sdc12 1 GiB 1 GiB 1,073,741,824 dc85025f-a694-4109-be44-fa0c063e8b81 system_ex(b)
9 11 /dev/sdc19 8 GiB 8 GiB 8,589,934,592 a71ff62d-1421-4dd9-935d-25dabd81bec5 system_data
A 1 /dev/sdc1 512 MiB 512 MiB 536,870,912 17800f17-b9e1-425d-b937-0119a0813172 preinst
B 2 /dev/sdc3 1 GiB 1 GiB 1,073,741,824 ccb52e94-ebef-48c4-a195-9e2da5b0292c preinst2
C 3 /dev/sdc5 16 MiB 16 MiB 16,777,216 145268bf-63ad-47c1-9378-9aacd9beed7c eap_kern
D 4 /dev/sdc7 128 MiB 128 MiB 134,217,728 6e0c5310-8445-4066-b571-9b65fdb75935 eap_vsh
E 14 /dev/sdc29 1 GiB 1 GiB 1,073,741,824 21e4dfb4-0040-4934-a037-ea9dc058eea6 eap_user
F 12 /dev/sdc25 6 GiB 6 GiB 6,442,450,944 fdb5ede1-73c3-4c43-8c5b-2d3dcfcddff8 update

Note: A raw dump of a HDD from a never booted PS4 would take 500,1 GiB (500,107,861,504 bytes), which would 7z compress nicely to around 1,2 GB (1,168,407,328 bytes)

Cygwin Disk Information[edit | edit source]

Device Size Remarks Crypto
/dev/sdb1 512MiB preinst samu
/dev/sdb2 1GiB preinst2 samu
/dev/sdb3 16MiB eap_kern static
/dev/sdb4 128MiB eap_vsh eap
/dev/sdb5 1GiB system b samu
/dev/sdb6 1GiB system samu
/dev/sdb7 1GiB system_ex b samu
/dev/sdb8 1GiB system_ex samu
/dev/sdb9 8 GiB old swap static + psid
/dev/sdb10 1 GiB app_tmp samu
/dev/sdb11 8 GiB system_data samu
/dev/sdb12 6 GiB update eap
/dev/sdb13 remaining GiB user eap
/dev/sdb14 1 GiB eap_user eap
/dev/sdb15 16 GiB app samu

PS4 HDD partitions check logs[edit | edit source]

From logs of a 5.05 PS4 testkit CUH-12xx when suspending, with stock 500GB HDD:

[SceShellCore][StorageStatsReport] HDD partition [WRITE] :
da0x4           (system      ): bytes:           0B, transfer:            0
da0x4b          (system(b)   ): bytes:      1.11GiB, transfer:         9068
da0x5           (system_ex   ): bytes:           0B, transfer:            0
da0x5b          (system_ex(b)): bytes:      1.04GiB, transfer:         8543
da0x6           (old swap    ): bytes:    705.43MiB, transfer:        17749
da0x8           (app_tmp     ): bytes:     35.26MiB, transfer:          880
da0x9           (system_data ): bytes:     41.48GiB, transfer:      1741368
da0x12          (update      ): bytes:      6.83GiB, transfer:        58112
da0x13          (user        ): bytes:     68.33GiB, transfer:      2180231
da0x14          (eap_user    ): bytes:      6.79MiB, transfer:         1403
da0x6x0         (new swap    ): bytes:    703.02MiB, transfer:        12979
da0x6x1         (kernel log  ): bytes:    654.00KiB, transfer:         1264
da0x6x2         (user log    ): bytes:      1.77MiB, transfer:         3506
es0.crypt       (ext_hdd     ): bytes:     50.37MiB, transfer:         1022

From logs of a 5.05 PS4 testkit CUH-12xx when suspending, after swapping HDD to a 512GB SSD, reinstalling firmware and reinitializing.

[SceShellCore][StorageStatsReport] HDD partition [WRITE] :
da0x4           (system      ): bytes:           0B, transfer:            0
da0x4b          (system(b)   ): bytes:           0B, transfer:            0
da0x5           (system_ex   ): bytes:           0B, transfer:            0
da0x5b          (system_ex(b)): bytes:           0B, transfer:            0
da0x6           (old swap    ): bytes:    182.00KiB, transfer:          352
da0x8           (app_tmp     ): bytes:           0B, transfer:            0
da0x9           (system_data ): bytes:      2.04GiB, transfer:        85198
da0x12          (update      ): bytes:           0B, transfer:            0
da0x13          (user        ): bytes:    233.85MiB, transfer:         8575
da0x14          (eap_user    ): bytes:    544.00KiB, transfer:          129
da0x6x0         (new swap    ): bytes:     16.00KiB, transfer:           32
da0x6x1         (kernel log  ): bytes:           0B, transfer:            0
da0x6x2         (user log    ): bytes:    166.00KiB, transfer:          320
  • These displayed sizes are the written sizes.
  • (b) stands for "backup" which is an inactive partition used when firmware update fails.

Mountpoints[edit | edit source]

Host devices
  • APP_HOME (DATA)
  • APP_HOME (HOST)

SceSysCore nmount / nmount_ufs[edit | edit source]

module type source destination
SceSysCore mini nmount /dev/da0x4.crypt /system
SceSysCore mini nmount /dev/da0x5.crypt /system_ex
SceSysCore mini nmount_ufs /dev/da0x9.crypt /system_data
SceSysCore mini nmount_ufs /dev/da0x13.crypt /user
SceSysCore mini nmount_ufs /dev/da0x14.crypt /eap_user
SceSysCore mini mount /dev/da0x12.crypt /update
SceSysCore mini nmount /dev/da0x0.crypt /preinst
SceSysCore mini nmount /dev/da0x1.crypt /preinst2
SceSysCore nmount /data /user/data
/dev/da1s1 /mnt/usb0

SceSysCore scheduler device[edit | edit source]

module scheduler source destination
SceSysCore GEOM I/O scheduler is da0 / da0.sched
SceSysCore BD scheduler bd_sched cd0 / cd0.sched (/mnt/disc0)

Partitions mounted on boot[edit | edit source]

From logs of a 5.05 PS4 TestKit CUH-12xx during boot:

[SceSysCore mini] nmount /dev/da0x4.crypt to /system
[SceSysCore mini] nmount /dev/da0x5.crypt to /system_ex
[SceSysCore mini] nmount_ufs /dev/da0x9.crypt to /system_data
[SceSysCore mini] nmount_ufs /dev/da0x14.crypt to /eap_user
[SceSysCore mini] nmount /dev/da0x12.crypt to /update
[SceSysCore mini] nmount /dev/da0x0.crypt to /preinst
[SceSysCore mini] nmount /dev/da0x1.crypt to /preinst2
[SceSysCore] nmount /data to /user/data

Files on the PS4[edit | edit source]

Main article: Files on the PS4