[RELEASE] wfs-fuse - Mount Wii U USB drives on Linux (and MLC dumps)

Discussion in 'Wii U - Hacking & Backup Loaders' started by EyeKey, Jul 26, 2017.

  1. EyeKey
    OP

    EyeKey GBAtemp Regular

    Member
    221
    444
    Feb 10, 2017
    Israel
    In continue to my last tool, wfsdump, I wrapped wfslib with fuse. Now you can mount WFS USB and MLC dumps on linux, (currently in read only mode)

    Source code

    Build:
    Install the requirements
    Code:
    sudo apt-get install git g++ make libfuse-dev libboost-dev libboost-system-dev libboost-filesystem-dev libboost-program-options-dev libcrypto++-dev
    Clone the repository:
    Code:
    git clone https://github.com/koolkdev/wfslib.git
    Enter the directory and run the Makefile:
    Code:
    cd wfslib
    make

    Usage:
    Code:
    usage: wfs-fuse <device_file> <mountpoint> --otp OTP_PATH [--seeprom SEEPROM_PATH] [--usb] [--mlc]
    
    options:
       --help|-h             print this help message
       --otp|-o PATH         otp file
       --seeprom|-s PATHH    seeprom file (required if usb)
       --usb|-u              device is usb (default)
       --mlc|-m              device is mlc
       -d   -o debug         enable debug output (implies -f)
       -f                    foreground operation
       -s                    disable multi-threaded operation
    Example:
    Code:
    sudo wfs-fuse /dev/sdb /mnt --otp otp.bin --seeprom seeprom.bin

    upload_2017-7-27_1-17-58.png
     
    Last edited by EyeKey, Jul 27, 2017
  2. mariogamer

    mariogamer GBAtemp Advanced Fan

    Member
    848
    232
    Aug 12, 2015
    Canada
    When writting into an archive will be implemented, it would be good to possibly convert to FAT32.... But useless for now since mocha doesn't handle well FAT32 (HUUU in fact it's nintendo FAT32 driver who is shitty :P)

    Great job anyway :)
     
  3. Kafluke

    Kafluke GBAtemp Psycho!

    Member
    4,410
    2,202
    May 6, 2006
    United States
  4. nolimits59

    nolimits59 GBAtemp Advanced Fan

    Member
    505
    218
    Apr 25, 2008
    France
    IIRC, a effective WiiU-FS access (with read) mean a Browser-less haxchi :D No ? :)
     
  5. mariogamer

    mariogamer GBAtemp Advanced Fan

    Member
    848
    232
    Aug 12, 2015
    Canada
    Well U either need a dump of your wiiu and/or a hardmode to access the files of your wiiu :P
     
  6. lexarvn

    lexarvn GBAtemp Regular

    Member
    111
    69
    Nov 15, 2010
    United States
    Wow! This is kinda amazing! Since the wii u formatted hard drives can be read now, any possibility of being able to partition a hard drive for wii u/vwii simultaneous use? Don't know the details of why it was said that it couldn't be done beyond not knowing how to even read wii u formatted hard drives.

    I guess the other question would be if write access is achieved, might it be possible to put other files on it and have homebrew apps in vwii read the wii u formatted hard drive?
     
  7. nolimits59

    nolimits59 GBAtemp Advanced Fan

    Member
    505
    218
    Apr 25, 2008
    France
    With a USB drive with a DS gaùe on it, nope, u can put haxchi.
     
  8. mariogamer

    mariogamer GBAtemp Advanced Fan

    Member
    848
    232
    Aug 12, 2015
    Canada
    DS what? Never heard about that.

    BTW I think USB to write into the wiiu will break it (full dump). So only hadmode
     
  9. nolimits59

    nolimits59 GBAtemp Advanced Fan

    Member
    505
    218
    Apr 25, 2008
    France
    sry didnt paid attention, DS Game,
    And im talking aobut writing into the USB formated WiiU drive, put your legit DS game on it, edit it with haxchi on PC with a WiiU-FS, you're done.
     
  10. mariogamer

    mariogamer GBAtemp Advanced Fan

    Member
    848
    232
    Aug 12, 2015
    Canada
    :P

    Anyway it's impossible you still need an entrypoint to dump your seeprom and otp.
     
  11. nolimits59

    nolimits59 GBAtemp Advanced Fan

    Member
    505
    218
    Apr 25, 2008
    France
    Yeah but maybe in a near future, we can figure out a way to get rid of that barrier :), would be cool for 5.5.2s without haxchi installed before, not my case but it would be neat ! ^^
     
  12. Kafluke

    Kafluke GBAtemp Psycho!

    Member
    4,410
    2,202
    May 6, 2006
    United States
    Maybe we do some comparisons for testing? Read the DS game with HaxChi installed from a system with HaxChi working and compare it with the same DS game on a 5.5.2. I don't know if this would work since there are signatures and whatnot but wouldn't hurt to try
     
  13. Nigleet

    Nigleet Advanced Member

    Newcomer
    80
    24
    Mar 19, 2017
    Canada
    Aidsville, Cancerland
    This is would be literally the perfect setup. Make a Wii U Partition alongside an NTFS for Wii and a FAT32 for Nintendont. I'll keep my fingers crossed. Eye have faith in you @EyeKey .
     
  14. Billy Acuña

    Billy Acuña GBAtemp Addict

    Member
    2,523
    1,613
    Oct 10, 2015
    Mexico
    I'm surprised that nobody tried this with Mocha's FAT32 feature, since the only way to move WFS formated drive titles to a FAT32 drive was with ftpiiu everywhere.
     
    KiiWii likes this.
  15. Samwix

    Samwix GBAtemp Advanced Fan

    Member
    657
    80
    Dec 25, 2014
    France
    Hi

    Could I recover my save files with this tool?

    Thanks
     
  16. 2rl

    2rl Newbie

    Newcomer
    1
    0
    Jan 3, 2018
    United States
    Hi! I'm on Linux Mint 18.2 and your instructions are not working for me, I've installed the requirements without errors, cloned the repo, and executed make, this is its output:

    make -C wfslib
    make[1]: Entering directory '/home/ruben2rl/wfsfuse/wfslib/wfslib/wfslib'
    Makefile:21: .depend: No such file or directory
    rm -f .depend
    g++ -c -Wall -Werror -std=c++14 -MM Area.cpp Block.cpp DataBlock.cpp DeviceEncryption.cpp Directory.cpp File.cpp FileDevice.cpp KeyFile.cpp MetadataBlock.cpp Structs.cpp SubBlockAllocator.cpp Wfs.cpp WfsItem.cpp > .depend
    g++ -c -Wall -Werror -std=c++14 Area.cpp -o Area.o
    g++ -c -Wall -Werror -std=c++14 Block.cpp -o Block.o
    g++ -c -Wall -Werror -std=c++14 DataBlock.cpp -o DataBlock.o
    g++ -c -Wall -Werror -std=c++14 DeviceEncryption.cpp -o DeviceEncryption.o
    g++ -c -Wall -Werror -std=c++14 Directory.cpp -o Directory.o
    g++ -c -Wall -Werror -std=c++14 File.cpp -o File.o
    g++ -c -Wall -Werror -std=c++14 FileDevice.cpp -o FileDevice.o
    g++ -c -Wall -Werror -std=c++14 KeyFile.cpp -o KeyFile.o
    g++ -c -Wall -Werror -std=c++14 MetadataBlock.cpp -o MetadataBlock.o
    g++ -c -Wall -Werror -std=c++14 Structs.cpp -o Structs.o
    g++ -c -Wall -Werror -std=c++14 SubBlockAllocator.cpp -o SubBlockAllocator.o
    g++ -c -Wall -Werror -std=c++14 Wfs.cpp -o Wfs.o
    g++ -c -Wall -Werror -std=c++14 WfsItem.cpp -o WfsItem.o
    ar rcs ../libwfs.a Area.o Block.o DataBlock.o DeviceEncryption.o Directory.o File.o FileDevice.o KeyFile.o MetadataBlock.o Structs.o SubBlockAllocator.o Wfs.o WfsItem.o
    make[1]: Leaving directory '/home/ruben2rl/wfsfuse/wfslib/wfslib/wfslib'
    make -C wfs-extract
    make[1]: Entering directory '/home/ruben2rl/wfsfuse/wfslib/wfslib/wfs-extract'
    Makefile:23: .depend: No such file or directory
    rm -f .depend
    g++ -I../ -c -Wall -Werror -std=c++14 -MM main.cpp > .depend
    g++ -I../ -c -Wall -Werror -std=c++14 main.cpp -o main.o
    g++ main.o -L../ -lwfs -lboost_system -lboost_filesystem -lboost_program_options -lcryptopp -lstdc++ -o wfs-extract
    make[1]: Leaving directory '/home/ruben2rl/wfsfuse/wfslib/wfslib/wfs-extract'
    make -C wfs-fuse
    make[1]: Entering directory '/home/ruben2rl/wfsfuse/wfslib/wfslib/wfs-fuse'
    Makefile:23: .depend: No such file or directory
    rm -f .depend
    g++ -I../ -c -Wall -Werror -std=c++14 -D_FILE_OFFSET_BITS=64 -MM wfs-fuse.cpp > .depend
    g++ -I../ -c -Wall -Werror -std=c++14 -D_FILE_OFFSET_BITS=64 wfs-fuse.cpp -o wfs-fuse.o
    g++ wfs-fuse.o -L../ -lfuse -lwfs -lboost_system -lboost_filesystem -lboost_program_options -lcryptopp -lstdc++ -o wfs-fuse
    make[1]: Leaving directory '/home/ruben2rl/wfsfuse/wfslib/wfslib/wfs-fuse'
    make -C wfs-file-injector
    make[1]: Entering directory '/home/ruben2rl/wfsfuse/wfslib/wfslib/wfs-file-injector'
    Makefile:23: .depend: No such file or directory
    rm -f .depend
    g++ -I../ -c -Wall -Werror -std=c++14 -MM main.cpp > .depend
    g++ -I../ -c -Wall -Werror -std=c++14 main.cpp -o main.o
    g++ main.o -L../ -lwfs -lboost_system -lboost_filesystem -lboost_program_options -lcryptopp -lstdc++ -o wfs-file-injector
    make[1]: Leaving directory '/home/ruben2rl/wfsfuse/wfslib/wfslib/wfs-file-injector'



    Then I execute sudo wfs-fuse and it says command not found...

    I really need to use this software to recover the save files from my wii u usb stick. I need to mount it in my computer and copy the save files of some games at least. The console tells me there is a problem with the usb device and forces me to restart the system. Can anyone give me a hand please?
     
    Last edited by 2rl, Jan 3, 2018
  17. EyeKey
    OP

    EyeKey GBAtemp Regular

    Member
    221
    444
    Feb 10, 2017
    Israel
    The makefile doesn't install the binaries, so you probably need to run sudo ./wfs-fuse/wfs-fuse [arguments..].
     
Loading...