Partitions: Difference between revisions

From PS4 Developer wiki
Jump to navigation Jump to search
No edit summary
 
(5 intermediate revisions by the same user not shown)
Line 1: Line 1:
See also [[Files on the PS4]] and [https://www.psdevwiki.com/ps5/Partitions PS5 Partitions].
See also [[Devices#Disk_Device_Listing|Disk Devices]], [[Files on the PS4]] and [https://www.psdevwiki.com/ps5/Partitions PS5 Partitions].


== Table ==
== Table ==


Hard drive is identified by the device id “da0”.
* Internal HDD is identified by the device id “da0”.
* USB Storage is identified by the device id “da1”.
* USB Extended Storage is identified by the device id “es0”.


{| class="wikitable"
{| class="wikitable"
Line 13: Line 15:
| da0x1 || preinst2 || 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.
| 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 RAM.
|-
|-
| da0x3 || eap_vsh || msdosfs || EAP HDD Key (per-console, in sflash) || ||
| da0x3 || eap_vsh || msdosfs || EAP HDD Key (per-console, in sflash) || ||
Line 33: Line 35:
| da0x6x2 || user log || ?raw or swapfs? || ?same as old swap? || ||
| da0x6x2 || user log || ?raw or swapfs? || ?same as old swap? || ||
|-
|-
| da0x7 || hiber || ? || ? || ||
| da0x7 || hiber || ? || ? || || May stand for hibernation so probably used for suspend mode.
|-
|-
| da0x8 || app_tmp || ufs || SAMU HDD Key || ||
| da0x8 || app_tmp || ufs || SAMU HDD Key || ||
Line 51: Line 53:
| da0x15 || app_reserved || ufs || SAMU HDD Key || || ?dmem swap?
| 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.
| da1 || ? || ?raw? || Plaintext || RW || USB Storage. There can be up to 8 USB storage devices simultaneously mounted to /mnt/usb0, ..., /mnt/usb7 so maybe da1 is not the only device for USB. See https://docs.freebsd.org/en/books/handbook/disks/#usb-disks.
|-
| da1s?0? || ? || msdosfs/exfat || Plaintext || RW || USB Storage first partition. There can be up to 8 USB storage devices simultaneously mounted to /mnt/usb0, ..., /mnt/usb7 so maybe da1 is not the only device for USB. See https://docs.freebsd.org/en/books/handbook/disks/#usb-disks.
|-
| es0 || ext_hdd || ?ufs? || PS4-PS5 USB Extended Storage Key (not per-console) + per-HDD seed (not per-console) || RW || [[USB Extended Storage]]. Only present since System Software 4.50.
|}
|}


Line 58: Line 64:
=== Linux Disk Information ===
=== Linux Disk Information ===


<div style="float:right">[[File:PS4 500GB HDD as seen in Windows XP.png|200px|thumb|left|PS4 500GB HDD as seen with "GPT Protective Partition" in Windows XP/embedded/2003 32bit/x86]]<br />[[File:Partitions.png|200px|thumb|left|[http://pastie.org/9300133 PS4 partitions as seen in Windows Vista/2008/7/8/10] and 64-bit version of Windows XP/2003]]</div>
<div style="float:right">[[File:PS4 500GB HDD as seen in Windows XP.png|200px|thumb|left|PS4 500GB HDD as seen with "GPT Protective Partition" in Windows XP/embedded/2003 32bit/x86]]<br />[[File:Partitions.png|200px|thumb|left|PS4 partitions as seen in 64-bit version of Windows XP/2003/Vista/2008/7/8/10]]</div>
{| class="wikitable sortable"
{| class="wikitable sortable"
|-
|-
Line 95: Line 101:
|}
|}


'''Note:''' A raw dump of a HDD from a never booted PS4 would take 500,1 GiB ({{nts|500107861504}} bytes), which would 7z compress nicely to around 1,2 GB ({{nts|1168407328}} bytes)
'''Note:''' A raw dump of a 500 GB HDD from a never booted PS4 would take 500 GB ({{nts|500107861504}} bytes), which can be compressed to around 1.17 GB ({{nts|1168407328}} bytes) using the 7z algorithm. See [[ST500LM012]].


=== Cygwin Disk Information ===
=== Cygwin Disk Information ===
Line 134: Line 140:
|}
|}


=== PS4 HDD partitions check logs ===
=== PS4 HDD partitions statistics logs ===


From logs of a 5.05 PS4 testkit CUH-12xx when suspending, with stock 500GB HDD:
From SceShellCore logs of a 5.05 PS4 TestKit DUH-T1200 when suspending, with stock 500GB HDD and USB Extended Storage:
<pre>
<pre>
[SceShellCore][StorageStatsReport] HDD partition [WRITE] :
[SceShellCore][StorageStatsReport] HDD partition [WRITE] :
Line 155: Line 161:
</pre>
</pre>


From logs of a 5.05 PS4 testkit CUH-12xx when suspending, after swapping HDD to a 512GB SSD, reinstalling firmware and reinitializing.
From SceShellCore logs of a 5.05 PS4 TestKit DUH-T1200 when suspending, after swapping HDD to a 512GB SSD, reinstalling firmware and reinitializing.
<pre>
<pre>
[SceShellCore][StorageStatsReport] HDD partition [WRITE] :
[SceShellCore][StorageStatsReport] HDD partition [WRITE] :
Line 173: Line 179:
</pre>
</pre>


* These displayed sizes are the written sizes.
* These displayed sizes are the written sizes since the last time the storage statistics were reset.
* (b) stands for "backup" which is an inactive partition used when firmware update fails.
* Storage statistics are apparently reset during a System Software update.
* Storage statistics are maybe stored in a file on the internal HDD.
* (b) stands for "backup" which is an inactive partition used when System Software update fails.


== Mountpoints ==
== Mountpoints ==
Line 206: Line 214:
| SceSysCore || nmount || /data || /user/data
| SceSysCore || nmount || /data || /user/data
|-
|-
|   ||   || /dev/da1s1 || /mnt/usb0
| || ?nmount_ufs? || /dev/es0.crypt || ?/ext_hdd?
|-
|  || ?nmount? || /dev/da1s1 || /mnt/usb0
|}
|}



Latest revision as of 03:48, 5 January 2025

See also Disk Devices, Files on the PS4 and PS5 Partitions.

Table[edit | edit source]

  • Internal HDD is identified by the device id “da0”.
  • USB Storage is identified by the device id “da1”.
  • USB Extended Storage is identified by the device id “es0”.
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 RAM.
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 ? ? May stand for hibernation so probably used for suspend mode.
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?
da1 ? ?raw? Plaintext RW USB Storage. There can be up to 8 USB storage devices simultaneously mounted to /mnt/usb0, ..., /mnt/usb7 so maybe da1 is not the only device for USB. See https://docs.freebsd.org/en/books/handbook/disks/#usb-disks.
da1s?0? ? msdosfs/exfat Plaintext RW USB Storage first partition. There can be up to 8 USB storage devices simultaneously mounted to /mnt/usb0, ..., /mnt/usb7 so maybe da1 is not the only device for USB. See https://docs.freebsd.org/en/books/handbook/disks/#usb-disks.
es0 ext_hdd ?ufs? PS4-PS5 USB Extended Storage Key (not per-console) + per-HDD seed (not per-console) RW USB Extended Storage. Only present since System Software 4.50.

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 64-bit version of Windows XP/2003/Vista/2008/7/8/10
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 500 GB HDD from a never booted PS4 would take 500 GB (500,107,861,504 bytes), which can be compressed to around 1.17 GB (1,168,407,328 bytes) using the 7z algorithm. See ST500LM012.

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 statistics logs[edit | edit source]

From SceShellCore logs of a 5.05 PS4 TestKit DUH-T1200 when suspending, with stock 500GB HDD and USB Extended Storage:

[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 SceShellCore logs of a 5.05 PS4 TestKit DUH-T1200 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 since the last time the storage statistics were reset.
  • Storage statistics are apparently reset during a System Software update.
  • Storage statistics are maybe stored in a file on the internal HDD.
  • (b) stands for "backup" which is an inactive partition used when System Software 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
?nmount_ufs? /dev/es0.crypt ?/ext_hdd?
?nmount? /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