All devices on the Vita are partitioned the same way. Logical block size is 512 bytes and the first logical block is the master block which defines the partition table along with other information. Because of block level encryption, the master block is also encrypted along with everything else and cannot be seen if the device is dumped from an external dumper.
The first block (512 bytes) provides a partition table as well as auxiliary information to the block management drivers.
|0x0||0x20||Magic string "|
|0x20||0x4||Version ? (0x3)|
|0x24||0x4||Size of device in blocks|
|0x50||0x11 - 0x110||Partition entries (there are 0x10 partitions at most (derived from code and data structure of SdStor driver))|
|0x1BE||0x10||unknown (may contain some data) (In standard MBR this area corresponds to Partition Entry)|
|0x1CE||0x10||unknown (must contain zeros) (In standard MBR this area corresponds to Partition Entry)|
|0x1DE||0x10||unknown (must contain zeros) (In standard MBR this area corresponds to Partition Entry)|
|0x1EE||0x10||unknown (must contain zeros) (In standard MBR this area corresponds to Partition Entry)|
Each partition entry is 17 bytes long. Offset 0x0 means end of table.
|0x0||0x4||Partition offset (blocks)|
|0x4||0x4||Partition size (blocks)|
|0xB||0x4||Flags ? seen: |
The partition code uniquely identifies the partition to its function. It is related to SceKernelModulemgr#Partition Code but the meaning of the code is still unknown.
|0x1||Internal||first eMMC partition, some data, IdStorage?|
|0x2||Internal||SLB2 Boot loaders|
|0x3||os0||Internal||Main OS partition, contains kernel libraries|
|0x4||vs0||Internal||Contains system applications & libraries|
|0x5||vd0||Internal||Registry and error history|
|0x6||tm0||Internal||Unknown, has an empty folder |
|0x7||ur0||Internal||User resources, LiveArea cache, database, & other stuff|
|0x8||ux0||Memory Card||Memory Card|
|0x9||gro0||Game Card||Game Card|
|0xA||grw0||Game Card||Game Card writable area|
|0xB||ud0||Internal||Updater copied here before reboot|
|0xC||sa0||Internal||Dictionary and font data|
|0xD||External||Some data on Memory Card & Game Card|
|0xE||pd0||Internal||Welcome Park and welcome video|
The partition type code indicates the file system used or if there is no file system (for example, in the case of a SLB2 archive).
Some partitions (specifically
os0 and the boot loaders) have a shadow redundant copy. On update, only the inactive partition is written to and finally the active partition is swapped. For partitions that do not use this feature, this value is ignored.