PFS Shell

PS2 PFS Shell - manage APA partitions and PFS filesystems on the command line v1.1.1

The same for me.

Try older version (1.1.0 works for sure, at least for me on Windows 7 SP1 64bit and direct connection to IDE on MOBO).
 
  • Like
Reactions: TnA
It took me 3 years, but never late than never…

I implemented a FUSE driver. It is currently in the repository, and I will release a Win32 version once I figure out how to make it build on that platform.

Only tested on macOS 10.14 at the moment.

Compile the project with -Denable_pfsfuse=true on the configure line.

For now, basic usage:
usage: /path/to/pfsfuse [options] <disk> <mountpoint>
File-system specific options:
--partition=<s> PFS partition in APA to mount
(default "__common")
--maxopen=<d> Maximum number of files that can be opened at one time
(default "32", max "32")
--numbuffers=<d> Maximum number of buffers
(default "127", max "127")

Known limitations:
gid/uid cannot be set
setting mode rwx mode for user, group, or other will set it for all user/group/other
Access/modification time cannot be set

Better documentation will be added later…
 
It took me 3 years, but never late than never…

I implemented a FUSE driver. It is currently in the repository, and I will release a Win32 version once I figure out how to make it build on that platform.

Only tested on macOS 10.14 at the moment.

Compile the project with -Denable_pfsfuse=true on the configure line.

For now, basic usage:


Known limitations:
gid/uid cannot be set
setting mode rwx mode for user, group, or other will set it for all user/group/other
Access/modification time cannot be set

Better documentation will be added later…
Can confirm that pfsfuse is working on wsl2:
Code:
sudo sed -i 's/#user_allow_other/user_allow_other/g' /etc/fuse.conf
mkdir -p pfs
./pfsfuse -o allow_other --partition=+OPL ps2/nbd pfs/
explorer.exe pfs
here ps2/nbd - location of disc image or mounted nbd server
unknown.png


Code:
sudo apt-get install nbdfuse
sudo sed -i 's/#user_allow_other/user_allow_other/g' /etc/fuse.conf
mkdir -p ps2
nbdfuse -o allow_other ps2/ nbd://192.168.1.22 & explorer.exe ps2

BTW I am browsing PS3 BC virtual HDD on the screen (Image.dat)
 
dont forget to unmount everything before closing disks:
Code:
umount ps2
umount nbd
@Berion it might be interesting for you - access to ps2 partitions like normal folders over the network and from the image as well.
 
Oh, I understood that is already deployed.

BTW: Would I be able to point disk image or /dev/loop* with PS2 HDD, but without NBD Server/Client?

Thanks but I'll wait for stable release. ^^
 
BTW: Would I be able to point disk image or /dev/loop* with PS2 HDD, but without NBD Server/Client?
only if you attach it directly, nbd server is just for network stuff. For example crypted stuff like PSX DESR and PS3 BC crypted image can only be accessed over network (that means over NBD only).
BTW the latest opl beta supports window client, you (and everyone) can test it:
https://cloudbase.it/ceph-for-windows/
for me, it works just fine. In the picture, NBD HDD is mounted via a network.
unknown.png

command for mounting the hdd (run through powershell as admin)
Code:
wnbd-client.exe map hdd0 192.168.1.22 --export-name hdd0
you can now edit it with hex editor, or use hdl-dump. It is like local disk.

pfsfuse doesn't currently work with windows
 
Last edited:
implemented free size calculation in PFSfuse:
Code:
df -h
Filesystem         Size   Used  Avail Capacity iused ifree %iused  Mounted on
pfsfuse@macfuse0  3.0Gi  4.3Mi  3.0Gi     1%       0     0  100%
edit:
fixed chmod method - there was a typo that posix stat was applied without conversion into iomanx style)
added ftruncate method - now you can edit files directly on the mounted partition
added fsync method - to prevent corruption if something crash
 
Last edited:
New pfsshell beta can be downloaded from github.
- fixed initialize command on disks (and images) less than 40Gb
- now mkpart and initialize will create PFS filesystems on partitions automatically
- mkfs option was removed cause included in mkpart now
- mkpart now will be able to create a proper partition of any size. Size should be specified in Megabytes or Gigabytes.
- mkpart will not remove existing partitions anymore
- ls command now has -l optional argument which will show more information about listed devices. Now partition modification time is shown. At the end of each record, will be special symbols that will allow easily recognize type of file (HDL game, subpartition, folder, PFS partition, symlink).

pfsfuse for Linux and macOS added to the downloads. This app will allow mount ps2 partition as a folder on your pc.
- fixed chmod command
- Added ftruncate method. Now you can edit files directly in the mount point
- improved corruption prevention
- added support for df command (shows partition size and free space)

pfsshel and pfsfuse support directly attached HDD, hdd images as files and NBD mounted HDDs (via Open-PS2-Loader NBD server).
 
These are the binaries of pfsfuse.exe compiled along with Dokany. Sources can be found at https://github.com/parrado/pfsshell/tree/pfsfuse-dokany.

To test you need to make the following:
  1. Install latest Dokany version (https://github.com/dokan-dev/dokany/releases/tag/v1.5.1.1000)
  2. Connect the disk to your PC with the USB adapter.
  3. Find the disk ID with this command from the terminal:
    Code:
    wmic diskdrive get Caption,DeviceID
    . This is explained here https://github.com/ps2homebrew/pfsshell as well. In my case the ID is
    Code:
    \\.\PHYSICALDRIVE2
    .
  4. Then you must open a terminal (cmd.exe) as administrator.
  5. In the terminal you must head to the directory where you unzipped pfsfuse.exe using the cd command and then execute:
    Code:
    pfsfuse.exe --partition=+OPL \\.\PHYSICALDRIVE2 m -o volname=+OPL
    to mount the +OPL partition, which must include a PFS file system.
  6. At this point you should get a drive M: with label +OPL which you can explore and manipulate (create directories, copy, paste, delete, etc.)
  7. When you are done and you want to unmount the unit, you must open another terminal as administrator and head to
    Code:
    c:\Program Files\Dokan\DokanLibrary-1.5.1>
    and then execute command
    Code:
    dokanctl.exe /u M
    . Then, you can unplug the disk.
  8. Alternatively, you can use batch file mount.bat which is easier to use (
    Code:
    mount.bat +OPL \\.\PHYSICALDRIVE2 m
    ) and then you just need to hit Intro key to unmount partition.
 

Attachments

So i'm trying to use this tool to format (what's going to be) my ps2's internal HD. I've gotten it to identify a drive using a screenshot Berion posted using the command, "device \\.\PhysicalDrive2", with "Drive2" representing what windows labels as "Disk 2" when looking in my disk management console.

I think i'll be okay by proceeding with the initialize option, but is there any way to 100% ID the drive it is about to format? I reaaaallly don't want to accidentally format either of my other 2 pc's system drives.

Any advice is much appreciated.
 
You can recognize it by size or model using i.e diskpart, diskmgmt.msc or via wmic query. Or by IsoBuster which should enumerate it in the same order number ("0" be 1, "1" be 2, "2" be 3 etc.). ;)

The best method IMO:
Code:
wmic diskdrive get Caption,DeviceID,InterfaceType
 

Similar threads

Back
Top