Editing Resizing VFLASH Storage Device

Jump to navigation Jump to search
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.

Latest revision Your text
Line 1: Line 1:
[[Category:OtherOS]]
= Introduction =
= Introduction =


Line 8: Line 7:
HV hides VFLASH HDD region from LPAR 2 and it doesn't see it.
HV hides VFLASH HDD region from LPAR 2 and it doesn't see it.


First, i resized the VFLASH. '''By doing this, you will lose your data on HDD but NOT on VFLASH !!!
First, i resized the VFLASH. '''By doing this, you will loose your data on HDD but NOT on VFLASH !!!
VFLASH data remains untouched. Resizing VFLASH doesn't cause corruption of data already installed there !!!
VFLASH data remains untouched. Resizing VFLASH doesn't cause corruption of data already installed there !!!
So backup your GameOS data from UFS2 partition before you will do it.'''
So backup your GameOS data from UFS2 partition before you will do it.'''
Line 26: Line 25:
* VFLASH is HDD, so you won't loose any performance compared with HDD
* VFLASH is HDD, so you won't loose any performance compared with HDD
* You won't loose your Linux if GameOS reformats your HDD
* You won't loose your Linux if GameOS reformats your HDD
* By upgrading/downgrading PS3's firmware you won't loose your Linux region. The only problem is how to boot Linux  again :-)
* But now that SONY knows how we can install Linux on the HDD of a PS3 slim they could of course make it harder for us in the future firmwares.


= Dumping HDD Partition Table =
= Dumping HDD Partition Table =
Line 38: Line 35:
# dd if=/dev/ps3da of=partition_table_old.bin bs=512 count=2
# dd if=/dev/ps3da of=partition_table_old.bin bs=512 count=2
</pre>
</pre>
== Example Of An Unmodified HDD Partition Table ==
<pre>
alex@gentoo ~ $ hexdump -C partition_table_old.bin
00000000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000010  00 00 00 00 0f ac e0 ff  00 00 00 00 de ad fa ce  |................|
00000020  00 00 00 00 00 00 00 03  00 00 00 00 00 00 00 02  |................|
00000030  00 00 00 00 00 00 00 08  00 00 00 00 00 08 00 00  |................|
00000040  10 70 00 00 01 00 00 01  00 00 00 00 00 00 00 0b  |.p..............|
00000050  10 70 00 00 02 00 00 01  00 00 00 00 00 00 00 03  |.p..............|
00000060  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
000000c0  00 00 00 00 00 08 00 10  00 00 00 00 17 01 f1 a0  |................|
000000d0  10 70 00 00 01 00 00 01  00 00 00 00 00 00 00 03  |.p..............|
000000e0  10 70 00 00 02 00 00 01  00 00 00 00 00 00 00 03  |.p..............|
000000f0  10 20 00 00 03 00 00 01  00 00 00 00 00 00 00 03  |. ..............|
00000100  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00000150  00 00 00 00 17 09 f1 b8  00 00 00 00 00 3f ff f8  |.............?..|
00000160  10 70 00 00 01 00 00 01  00 00 00 00 00 00 00 03  |.p..............|
00000170  10 70 00 00 02 00 00 01  00 00 00 00 00 00 00 03  |.p..............|
00000180  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00000400
</pre>
Here you can see a HDD partition table from the HDD of a PS3 slim. It has 3 regions: VFLASH and 2 GameOS regions.
The VFLASH region starts at sector '''0x8''' and is of size '''0x80000''' sectors. Each sector is 512 bytes.
So, VFLASH is 256 MB large.
You can also see the ACL list of every HDD region.
E.g. VFLASH can be accessed by LPAR auth id '''0x1070000001000001 (LPAR 1 or HV processes)''' and '''0x1070000002000001 (LPAR 2 or GameOS)'''. This list can be manipulated by HV calls 252 and 253 or with my ps3stor-utils and ps3stormgr Linux kernel module.


= Removing GameOS Partitions From HDD =
= Removing GameOS Partitions From HDD =


There are actually 2 methods i used to do these. First method is to modify the HDD partition table directly. The second method is to use my PS3 Linux kernel and '''ps3stormgr''' kernel module. Actually this step can be skipped.
There are actually 2 methods i used to do these. First method is to modify the HDD partition table directly. The second method is to use my PS3 Linux kernel and '''ps3stormgr''' kernel module.


== 1. Method ==
== 1. Method ==
On Linux/Windows/Mac (from a PC), create a new partition table. No partitions need be created.


== 2. Method ==
== 2. Method ==
Line 97: Line 58:


= Patching HDD Partition Table =
= Patching HDD Partition Table =
== Example Of A Patched HDD Partition Table With Resized VFLASH Region ==
<pre>
alex@gentoo ~ $ hexdump -C part_table_patched.bin
00000000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000010  00 00 00 00 0f ac e0 ff  00 00 00 00 de ad fa ce  |................|
00000020  00 00 00 00 00 00 00 03  00 00 00 00 00 00 00 02  |................|
00000030  00 00 00 00 00 00 00 08  00 00 00 00 04 08 00 00  |................|
00000040  10 70 00 00 01 00 00 01  00 00 00 00 00 00 00 0b  |.p..............|
00000050  10 70 00 00 02 00 00 01  00 00 00 00 00 00 00 03  |.p..............|
00000060  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00000400
</pre>
Here you can see an example of a patched HDD partition table with resized VFLASH region and removed GameOS regions.
I set sector count of VFLASH region to '''0x4080000''' sectors.
Of course you shouldn't use here sector count larger than your HDD allows :-)
== Writing Patched HDD Partition Table to HDD ==
<pre>
# dd if=part_table_patched.bin of=/dev/ps3da bs=512 count=2
# sync
</pre>
Now reboot to GameOS and it should start formatting your HDD again. But now it won't use the space we reserved for VFLASH :-)


= Adding New VFLASH Region =
= Adding New VFLASH Region =


* Now the last step is adding new VFLASH region where we can install our beloved Linux :-)
* '''VFLASH storage device has one unused region - region #7 - which we can use !!!'''
* To complete this step you will need my '''ps3stor-utils''' and my Linux kernel driver '''ps3stormgr'''
* Make sure you reboot after patching HDD partition table
<pre>
# ps3stor_region /dev/ps3stormgr create 4 0x80000 0x4000000 0x1070000002000001
</pre>
* The above command creates a new VFLASH region which starts at sector '''0x80000''' and has '''0x4000000''' sectors.
You can of course use another value for sector count. But it shouldn't be larger than the free space you added to VFLASH of course :-)
* The command should return '''0x7'''. It means the new region has index 7.
* Now reboot your Linux and if you are using my VFLASH Linux driver then you should see now a new VFLASH device '''/dev/ps3vflashh'''.
* Now you can partition it with '''fdisk''' e.g. and install Linux there :-) Have fun.
* If you have any problems then contact me and i will try to help you.






{{Linux}}<noinclude>[[Category:Main]]</noinclude>
'''TO BE CONTINUED !!!'''
Please note that all contributions to PS3 Developer wiki are considered to be released under the GNU Free Documentation License 1.2 (see PS3 Developer wiki:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!

To protect the wiki against automated edit spam, we kindly ask you to solve the following hCaptcha:

Cancel Editing help (opens in new window)