WBFUSE (WBFS para FUSE en Linux) v0.8.2b

Buenas de nuevo,
ya que nadie sacaba nada para integrar WBFS con el VFS de Linux y que me aburria (mucho), me he decidido a hacerlo; aunque me dio bastante trabajo ya que de FUSE no tenia ni pajolera idea, y hacer un modulo de kernel... como que no, por razones obvias.

Aqui os traigo la primera version publica del mismo, mas que nada porque me hacen falta betatesters, que esta muy poco probado.
Un ejemplo de como quedaria:
Imagen
Probablemente habreis notado algo raro, y es que permite escribir y leer no solo isos de wii, si no cualquier otro tipo de fichero; es lo que tiene haber tenido que reescribir media libreria (acceso (rw) raw, renombrado, etc).

Características:
- Integracion con todos los navegadores de linux y consola (ext VFS mediante FUSE).
- Poder usar la particion como almacenamiento generico.
- Poder renombrar tanto archivos como nombre e ID de las isos de Wii (para ello sera necesario renombrarlas como ID|Nombre, pj R64P01|Wii Musica).
- Poder conocer espacio total y libre mediante el navegador, asi como borrar archivos o isos de wii.
- Poder leer y escribir isos de wii a tamaño completo 4.4GB o 8,75GB o scrubeadas.
- Soporte nativo completo x86_64 (64 bits).

Desventajas:
- Escritura un poco lenta (Al tener que manejar isos a tamaño completo (4.4GB o 8,75GB)).

Compilacion:
1) Instalar el paquete libfuse-dev
2) Cambiar el define de FUSE_USE_VERSION en /usr/include/fuse/fuse.h de 21 a 26.
3) $ make

Uso:
$ ./wbfuse /dev/sdXy punto_montaje [opciones]
Opciones:
-g :Escrubear imagenes manteniendo solo la imagen de juego.
-n :No escrubear imagenes.
Por defecto escrubea imagenes manteniendo todas las particiones.

Comandos de renombrado:
Cambiar ID y nombre: renombrar a "ABCDEF|Nombre del juego" (sin comillas)
Scrubear una imagen ya copiada: renombrar a "scrub" (sin comillas)

NOTA: WBFS tiene un limite de archivos por particion, asi que el almacenamiento es mas limitado que el espacio libre. Aunque no es muy restrictivo: 215 archivos para una particion de 5GB, y soportara mas cuanto mayor sea la particion. (limitacion de FUSE).

Disfrutadlo, o algo ;)

Descarga 0.8.2b precompilado (32bits)
Descarga 0.8.2b precompilado (64bits)
Descarga 0.8.2b (codigo fuente)

Changelog:
version 0.8.2b:
* Corregido un bug de renombrado (por fin).
version 0.8.2:
* Corregido bug de renombrado cuando se cambiaba la ID.
* Incluidos parches de usb loader 1.5.
* Añadido scrubbing por defecto.
* Añadidas opciones para control de scrubbing.
version 0.8.1:
* Corregido bug de borrado que corrompia el sistema de ficheros WBFS.
version 0.8:
* Varios bugs menores corregidos.
* Añadida opcion de scrub de imagenes (opcion -s)
version 0.7:
* Varios bugs menores corregidos.
* Libreria limpia.
* Soporte completo 64 bits.
version 0.6:
* Primera version publicada
Gracias por el aporte, pero que hago con el archivo descargado, es que soy noob en ubuntu
Wow, si tuviera un disco y usara habitualmente linux ya tenias betatester, esto es impresionante, lastima que la mayoria usemos windows.
toniteis escribió:Gracias por el aporte, pero que hago con el archivo descargado, es que soy noob en ubuntu

Tienes que instalar el paquete libfuse-dev e ir por consola al directorio con el archivo descomprimido y ejecutar $ make para compilarlo, luego ya puedes usarlo como ./wbfuse /dev/particion punto_montaje

suloku escribió:Wow, si tuviera un disco y usara habitualmente linux ya tenias betatester, esto es impresionante, lastima que la mayoria usemos windows.


Al menos implemente todo lo necesario en libwbfs, asi que se podria portar con mucho menos trabajo a windows (los que sepan, que yo de windows no tengo ni pajolera idea, win32 es insufrible).

Saludos.
Esta era desde luego la solución ideal desde que se supo que el usb de waninkoko y kwiirk iba a usar un sistema de ficheros nativo.

Mañana sin falta lo pruebo a ver qué tal. Muchas gracias.
supongo que funciona, o funcionara con macfuse no? http://code.google.com/p/macfuse/
no compila en gentoo x64 con fuse instalado.
gcc -Wall -m32 -W  -ggdb -Ilibwbfs -I. -DLARGE_FILES -D_FILE_OFFSET_BITS=64 -c wbfuse.c -o wbfuse.o
wbfuse.c:233: aviso: parámetro 'data' sin uso
wbfuse.c:248: aviso: parámetro 'path' sin uso
wbfuse.c:307: aviso: parámetro 'offset' sin uso
wbfuse.c:307: aviso: parámetro 'fi' sin uso
wbfuse.c:333: aviso: parámetro 'fi' sin uso
wbfuse.c:358: aviso: parámetro 'mode' sin uso
wbfuse.c:358: aviso: parámetro 'dev' sin uso
wbfuse.c:398: aviso: parámetro 'fi' sin uso
wbfuse.c:426: aviso: parámetro 'fi' sin uso
wbfuse.c:495: aviso: parámetro 'path' sin uso
wbfuse.c:495: aviso: parámetro 'd' sin uso
wbfuse.c:495: aviso: parámetro 'fi' sin uso
wbfuse.c:503: aviso: parámetro 'fi' sin uso
wbfuse.c: En la función 'main':
wbfuse.c:693: error: 'struct fuse_operations_compat2' no tiene un miembro llamado 'readdir'
wbfuse.c:694: aviso: asignación desde un tipo de puntero incompatible
wbfuse.c:695: aviso: asignación desde un tipo de puntero incompatible
wbfuse.c:696: aviso: asignación desde un tipo de puntero incompatible
wbfuse.c:697: aviso: asignación desde un tipo de puntero incompatible
wbfuse.c:698: error: 'struct fuse_operations_compat2' no tiene un miembro llamado 'destroy'
wbfuse.c:700: aviso: asignación desde un tipo de puntero incompatible
wbfuse.c:701: aviso: asignación desde un tipo de puntero incompatible
wbfuse.c:705: error: demasiados argumentos para la función 'fuse_main_compat2'
make: *** [wbfuse.o] Error 1
Perdonad, van 2 sitios donde se me olvida.
Digo lo mismo que en gbatemp:
Cambiar FUSE_USE_VERSION por 26 en /usr/include/fuse/fuse.h
o añadir #define FUSE_USE_VERSION 26 en wbfuse.c

El tema esta en la version de la api de fuse, que no se por que, por defecto esta puesta la version mas vieja de la rama 2.

Y si, con un par de cambios deberia ser compatible con macfuse, aunque no lo probe ya que no tengo ningun mac.

Saludos.
Tu libreria modificada serviria para el usbloader? Lo digo por el mod este que ha salido de las caratulas, ya que con tu libreria se podrian meter al disco duro con el juego y que el loader las leyera de ahi.

pd: como puedes deducir ni he mirado la libreria xD
suloku escribió:Tu libreria modificada serviria para el usbloader? Lo digo por el mod este que ha salido de las caratulas, ya que con tu libreria se podrian meter al disco duro con el juego y que el loader las leyera de ahi.

pd: como puedes deducir ni he mirado la libreria xD


En principio si que se podria, solo habria que reimplementar 2 funciones (que son casi iguales a 2 que habia antes) y cambiar esas mismas funciones de libwbfs.c a libwbfs_linux.c, que las meti directamente en libwbfs.c por vagancia y por no cambiar las structs que traia definida la libreria.
Interesante aportación, en cuanto tenga un poco de tiempo lo compilo y pruebo.

Salu2.
Genial, supongo que de momento no se le pueden pasar opciones al montar la partición ¿no?, lo digo porque le e intentado pasar uid, gid y umask y no da error pero tampoco le hace ni caso XD.
De todos modos muy buen trabajo

Un saludo.
Justo era lo que estaba pidiendo en otro hilo hace un poco (este lo vi después :P). Por fin alguien se ha atrevido con el tema de verdad :).

Muchas felicidades, así si que sí XD. En cuanto a usarlo en 64 bits, no se si lo habrás probado, pero yo no lo haría a menos que se modificase media librería de Kwiirk, ya que los punteros y demás no están adaptados a 64 bits, y utiliza operadores de bit sin tener en cuenta los 64 bits en AMD64.

De nuevo, gran aporte [oki]
Dabore escribió:En cuanto a usarlo en 64 bits, no se si lo habrás probado, pero yo no lo haría a menos que se modificase media librería de Kwiirk, ya que los punteros y demás no están adaptados a 64 bits, y utiliza operadores de bit sin tener en cuenta los 64 bits en AMD64.


Pues no, no lo he probado en 64 bits, es mas, todo el desarrollo lo lleve a cabo en una maquina virtual de VirtualBox con 3 HDD virtuales. Creo que la razon es obvia, mas que nada para no andarme cargando discos usb cada 2x3, porque hasta que logré escribir de forma correcta y rápido hubo muchos formateos de por medio, que en la primera version leía a 2MBps y escribía a 400KBps XD actualmente, si no recuerdo mal, las velocidades andaban sobre 40MBps para lectura y 10MBps para escritura, eso en una maquina virtual, en una real deberia ir mucho mas rápido.

Y sobre las opciones, de momento no implemente nada, ya que WBFS por no permitir, no permite ni fechas ni permisos ni nada, asi que el uid y gid cojo los del usuario que monta la particion y los permisos los pongo a 0666 por defecto. Y las fechas, por si no os habeis fijado, son todas la fecha de salida de la Wii en europa XD

Saludos.
Hola!
He instalado la libfuse-dev tal y como indicas. He añadido el #define FUSE_USE_VERSION 26 en wbfuse.c y luego he hecho el make, pero me tira error:
gcc -Wall -m32 -W -ggdb -Ilibwbfs -I. -DLARGE_FILES -D_FILE_OFFSET_BITS=64 -c wbfuse.c -o wbfuse.o
wbfuse.c:19:1: aviso: se redefinió "FUSE_USE_VERSION"
En el archivo incluído de /usr/include/fuse.h:9,
from wbfuse.c:11:
/usr/include/fuse/fuse.h:23:1: aviso: esta es la ubicación de la definición previa
wbfuse.c:233: aviso: parámetro ‘data’ sin uso
wbfuse.c:248: aviso: parámetro ‘path’ sin uso
wbfuse.c:307: aviso: parámetro ‘offset’ sin uso
wbfuse.c:307: aviso: parámetro ‘fi’ sin uso
wbfuse.c:333: aviso: parámetro ‘fi’ sin uso
wbfuse.c:358: aviso: parámetro ‘mode’ sin uso
wbfuse.c:358: aviso: parámetro ‘dev’ sin uso
wbfuse.c:398: aviso: parámetro ‘fi’ sin uso
wbfuse.c:426: aviso: parámetro ‘fi’ sin uso
wbfuse.c:495: aviso: parámetro ‘path’ sin uso
wbfuse.c:495: aviso: parámetro ‘d’ sin uso
wbfuse.c:495: aviso: parámetro ‘fi’ sin uso
wbfuse.c:503: aviso: parámetro ‘fi’ sin uso
wbfuse.c: En la función ‘main’:
wbfuse.c:693: error: ‘struct fuse_operations_compat2’ no tiene un miembro llamado ‘readdir’
wbfuse.c:694: aviso: asignación desde un tipo de puntero incompatible
wbfuse.c:695: aviso: asignación desde un tipo de puntero incompatible
wbfuse.c:696: aviso: asignación desde un tipo de puntero incompatible
wbfuse.c:697: aviso: asignación desde un tipo de puntero incompatible
wbfuse.c:698: error: ‘struct fuse_operations_compat2’ no tiene un miembro llamado ‘destroy’
wbfuse.c:700: aviso: asignación desde un tipo de puntero incompatible
wbfuse.c:701: aviso: asignación desde un tipo de puntero incompatible
wbfuse.c:705: error: demasiados argumentos para la función ‘fuse_main_compat2’
make: *** [wbfuse.o] Error 1

Me echas un cable? Por cierto, te felicito por la currada :)
EDITO: He probado modificando el define en /usr/include/fuse/fuse.h y ahora si que ha compilado.
EDITO-2: Works like a charm!!! [oki] [oki] [oki]
Para la gente que tiene problemas con la compilacion, lo subo precompilado para 32bits.

Descarga
Es justo lo k estava esperando !!!

Me uno al post para estar informado.

gracias por el aporte torito , ya te contaré k tal me funciona.

salu2 radge
torito21 un aporte cojonudo. Si quieres puedo ayudarte en el desarrollo de esta aplicación.

Escribeme y estamos en contacto para lo que necesites.
alguna solucion para los que tenemos amd64??
Dav-ID escribió:alguna solucion para los que tenemos amd64??


Voy a mirarlo ahora en una maquina 64 bits nativa, a ver si se me ocurre algo. La parte que desarrollé funciona tanto en 32 como 64, el problema son las partes de la libreria que usé, que segun parece tiene problemas con los 64 bits, voy a echarle un ojo a ver si saco algo en claro.

Saludos.
Gran aporte, ahora si que es comodo.

gracias Torito por el aporte [oki]
lopst escribió:torito21 un aporte cojonudo. Si quieres puedo ayudarte en el desarrollo de esta aplicación.

Escribeme y estamos en contacto para lo que necesites.


La cuestion es la siguiente, la aplicacion tiene implementado casi todo lo que se le pide a un FS, solo faltaria implementar la funcion ftruncate para poder modificar archivos que no sean isos mientras esten en la particion WBFS, y corregir un bug, que de momento solo encontre 1 y no es muy relevante (no afecta a nada de lo escrito en disco).

Las prioridades en el desarrollo serian:
  • Portar la libreria a 64 bits, porque actualmente en un linux x86_64 no hay nada que hacer con las particiones WBFS. EDIT: Hecho
  • Limpiar la libreria actual que lleva esta app (mas que nada porque modifique una funcion de la original). EDIT: Hecho
  • Buscar un workaround para el scrub de imagenes, que es algo que FUSE no soporta de forma limpia, ya que es totalmente pasivo, para que los juegos ocupen menos de 4GB.
    En este apartado se me ocurre que, una vez copiada la iso completa de 4GB, liberar los bloques libres de igual forma que lo hace el programa wbfs original, solo que este ultimo filtra a priori, y no a posteriori. EDIT: Hecho
  • Portar la aplicacion a un driver WBFS para windows. Aqui no puedo hacer nada que yo no me llevo con win32, me desquicia.

En los proximos dias a ver si tengo tiempo y limpio la libreria y trato de buscar solucion a lo de los 64 bits.
Si alguien quiere colaborar, ya sabe por donde tirar, que yo no voy a tener mucho tiempo en los próximos dias.

Saludos y gracias de parte de la comunidad a los que decidais hechar un cable :)

EDIT: Sobre como portar apps a 64 bits igual ayuda esto: http://www.ibm.com/developerworks/library/l-port64.html
EDIT2: Creo que ya tengo lista la version para 64 bits, aunque lo arreglé de forma chorra, pero parece que funciona todo, a la noche posteo la nueva version.
EDIT3: Nueva version 0.7 publicada, con varios bugs corregidos y soporte para 64 bits. Incluye la aplicacion wbfs original funcionando en 64 bits.
pues el lunes intentare instalarlo en mac o buscare ayuda de alguien, seguro que es mas interesante que win32 xd
Aqui funcionando con la 0.7!! :)
Hay alguna forma de scrubbear aunque sea a posteriori? Tengo las isos copiadas ya pero ocupan un huevo :P
Da igual que sea una forma tediosa y chapucera, si la hay me gustaria saberla :)
Salu2 y mil gracias, esta app es una gozada. [tadoramo]
Near escribió:Aqui funcionando con la 0.7!! :)
Hay alguna forma de scrubbear aunque sea a posteriori? Tengo las isos copiadas ya pero ocupan un huevo :P
Da igual que sea una forma tediosa y chapucera, si la hay me gustaria saberla :)
Salu2 y mil gracias, esta app es una gozada. [tadoramo]


De momento no esta implementada ninguna forma de scrub, lo mirare para la semana si encuentro un hueco, que ando bastante liado, me costo mas de lo esperado hacerlo compatible con 64 bits, y total era un chorrada, pero claro, hasta que das con el problema... xD

Lo que se me ocurre para el scrub es, una vez la imagen se copia entera al hdd (para lo cual siempre se va a requerir un minimo de 4,4GB), habria que hacer una especie de filtrado para liberar espacio de los bloques ocupados donde no hay información relevante. Intentare adaptar el codigo existente, pero que en vez de leer del archivo .iso original a partir de un descriptor de fichero, que lea a partir de los datos que ya hay grabados en la particion wbfs. Y una vez se tenga la tabla de bloques utiles/inutiles, solo quedaria liberar los bloques inutiles. Ademas, esto deberia realizarse de forma rápida, ya que tal como esta hecho se leen bloques enteros y eso es muy rapido de hacer.

Ya os contare mas novedades en cuanto saque algo mas en claro.

Saludos.

EDIT: Ya tengo la version 0.8 rulando con scrub de imagenes con el mismo metodo que usan los demas programas. Mañana la publicare.
Para no tener tiempo tal como dices antes, pedazo de trabajo el que te estás pegando.

Mil gracias Torito21, ya hasta escrubeadas para ahorrar espacio [oki]
Como cunde la semana santa a los sceners, marcan se va de vacaciones, hermes se ha tomado un kit kat, tu con esta pedazo de herramienta...

No habras solucionado el bug ese que hace que de tanto borrar y meter juegos algunos se corrompan durante el proceso?
suloku escribió:Como cunde la semana santa a los sceners, marcan se va de vacaciones, hermes se ha tomado un kit kat, tu con esta pedazo de herramienta...

No habras solucionado el bug ese que hace que de tanto borrar y meter juegos algunos se corrompan durante el proceso?


Pues no se si lo habre solucionado, lo unico que se es que a mi no me ha pasado. Respecto a la libreria original, solo reutilizo la forma de borrar, la de leer y escribir es totalmente nueva, asi que igual esta solucionado.

Respecto al tiempo... xD ayer acabe un trabajo antes de lo esperado, y el tiempo que me sobro se lo dedique a esto. Si os fijais, poco codigo añadi.
A lo que iba:

Publicada version v0.8.

Cambios:
* Varios bugs menores corregidos.
* Incluido soporte para scrubear imagenes (opcion -s).
* Incluido soporte para scrubear imagenes ya copiadas enteras al disco (renombrar a "scrub").

EDIT: Parece ser que si que habia un bug tanto en la reserva de bloques como en la liberacion. El fallo era que al liberar no se liberaba el 1º y se liberaba el siguiente, si ese era de otro juego y otro juego lo sobreescribe, entonces se producia la corrupcion del FS. Voy a aplicar el parche y volverlo a publicar.
You're my hero [tadoramo] [tadoramo] [tadoramo]
Hay una cosa que no entiendo, como hacemos para scrubear las imagenes que ya hemos copiado? No entiendo bien lo de "renombrar a scrub"... Puedes explicarlo de una forma mas sencilla? (vamos, pa tontos :P)
Saludos y gracias :)
Near escribió:You're my hero [tadoramo] [tadoramo] [tadoramo]
Hay una cosa que no entiendo, como hacemos para scrubear las imagenes que ya hemos copiado? No entiendo bien lo de "renombrar a scrub"... Puedes explicarlo de una forma mas sencilla? (vamos, pa tontos :P)
Saludos y gracias :)


Tan simple como que en el Nautilus o el gestor de archivos que uses le das a renombrar, como si cambiases el nombre de una archivo normal, y lo renombras a scrub. Luego seguira con el mismo nombre, pero con espacio liberado. Para comprobarlo haz un $ df punto_montaje antes y despues del scrub. Hazlo con la nueva 0.8.1, o te cargaras el sistema de archivos wbfs.

Acabo de publicar la version 0.8.1 con el bug de liberado de espacio corregido.

Aviso!! Si ha sido borrado algo de la particion con algun usb loader (incluido el 1.3) o cualquier otro gestor sin el bug corregido, el FS estara corrupto y tiene posibilidades de cascar en cualquier momento, hasta que se formatee.

Saludos.
gracias nen... pero al compilarlo... en normal que salten estos avisis?

wbfuse.c:236: aviso: parámetro ‘data’ sin uso
wbfuse.c:251: aviso: parámetro ‘path’ sin uso
wbfuse.c:310: aviso: parámetro ‘offset’ sin uso
wbfuse.c:310: aviso: parámetro ‘fi’ sin uso
wbfuse.c:336: aviso: parámetro ‘fi’ sin uso
wbfuse.c:361: aviso: parámetro ‘mode’ sin uso
wbfuse.c:361: aviso: parámetro ‘dev’ sin uso
wbfuse.c:401: aviso: parámetro ‘fi’ sin uso
wbfuse.c:429: aviso: parámetro ‘fi’ sin uso
wbfuse.c:499: aviso: parámetro ‘path’ sin uso
wbfuse.c:499: aviso: parámetro ‘d’ sin uso
wbfuse.c:499: aviso: parámetro ‘fi’ sin uso
wbfuse.c:507: aviso: parámetro ‘fi’ sin uso

saludos
sL1pKn07 escribió:gracias nen... pero al compilarlo... en normal que salten estos avisis?

wbfuse.c:236: aviso: parámetro ‘data’ sin uso
....
wbfuse.c:507: aviso: parámetro ‘fi’ sin uso

saludos

Sip, es totalmente normal. Simplemente FUSE requiere unas funciones que reciban X parametros, muchos de los cuales no uso porque no me hacen falta para las operaciones que realizo, y por eso salen esos warnings. Don't worry.

Saludos.
El bug que comentas es general de la libwbfs o de tu implementacion con fuse?

Si fuera el primer caso podrias indicar como corregir eso en la libreria para librarnos del bug tanto en los loaders como en los instaladores?

Lastima que no haya fuse para cygwin
Veamos, solo me permite montar la unidad siendo root, si lo hago con mi usuario obtengo..
fusermount: failed to open /etc/fuse.conf: Permission denied
fusermount: option allow_other only allowed if 'user_allow_other' is set in /etc/fuse.conf

Con lo cual, si monto como root tengo que utilizar el "sudo mv" y aun asi...
sudo mv Un\ Juego\ Del\ Que \Tengo \el\ Original \[RUUP01\].iso scrub.iso
mv: no se puede mover «Un juego del que tengo el original [RUUP01].iso» a «scrub.iso»: Operación no permitida

Si lanzo un nautilus como root, me encuentro con "no tiene permisos..." (y he verificado que nautilus corra bajo root).
Alguna idea?
suloku escribió:El bug que comentas es general de la libwbfs o de tu implementacion con fuse?

Si fuera el primer caso podrias indicar como corregir eso en la libreria para librarnos del bug tanto en los loaders como en los instaladores?

Lastima que no haya fuse para cygwin


El bug es algo general de la libreria libwbfs, por lo tanto, lo tienen todas las aplicaciones y loaders actuales. Esta es una de las primeras en corregirlo.

En gbatemp AllWiidUp ha publicado un parche para el mismo (http://gbatemp.net/index.php?s=&showtop ... &p=1900821):
--- libwbfs.c   2009-03-31 18:26:00.000000000 -0700
+++ libwbfs.c     2009-04-12 12:28:23.516024000 -0700
@@ -389,8 +389,8 @@
}
static void free_block(wbfs_t *p,int bl)
{
-        int i = bl/(32);
-        int j = bl&31;
+        int i = (bl-1)/(32);
+        int j = (bl-1)&31;
         u32 v = wbfs_ntohl(p->freeblks[i]);
         p->freeblks[i] = wbfs_htonl(v | 1<<j);
}


Near escribió:Veamos, solo me permite montar la unidad siendo root, si lo hago con mi usuario obtengo..
fusermount: failed to open /etc/fuse.conf: Permission denied
fusermount: option allow_other only allowed if 'user_allow_other' is set in /etc/fuse.conf

Con lo cual, si monto como root tengo que utilizar el "sudo mv" y aun asi...
sudo mv Un\ Juego\ Del\ Que \Tengo \el\ Original \[RUUP01\].iso scrub.iso
mv: no se puede mover «Un juego del que tengo el original [RUUP01].iso» a «scrub.iso»: Operación no permitida

Si lanzo un nautilus como root, me encuentro con "no tiene permisos..." (y he verificado que nautilus corra bajo root).
Alguna idea?


Para que te permita montarlo como usuario tienes que descomentar la linea user_allow_other en /etc/fuse.conf como root.
Respecto a montarla como root, no tienes porque usar sudo mv, puedes hacerlo sin sudo. Es decir, solo lo montas con sudo y luego la manejas normal; si te fijas los permisos son todos rw-rw-rw- con lo cual todos los usuarios tienen acceso total.

Respecto a lo de renombrar: renombra a scrub, no a scrub.iso (mv Un\ Juego\ Del\ Que \Tengo \el\ Original \[RUUP01\].iso scrub).

Saludos.
Ya tenia descomentada esa linea en el fuse.conf :(

De todas formas con sudo mv (no inicio como usuario root, por eso uso sudo) el problema desaparece si en lugar de hacer:
sudo mv imagen.iso scrub.iso

hago un :
sudo mv imagen.iso scrub


Seguiremos informando! :)
La 2º forma (sudo mv imagen.iso scrub) es la correcta, la otra es normal que te diga que no te deja.

Las isos de wii solo se pueden renombrar a "scrub" para scrubear o a "ABCDEF|Nombre del juego" para cambiar el nombre/ID.

Saludos.
Bueno, de momento no me ha reducido ninguna de las isos que ya tenia pero al hacer un :
sudo mv eljuegodeuntalmarioquevadetenisydelquetengoeloriginal.iso scrub

y yo sé que este es "scrubreable"...
Se pone el wbfuse al 100% , el uso de memoria va incrementando hasta llegar mas o menos al 74% y al final pega una crujida de las que hacen afición:
No se ha podido renombrar «eljuegodeuntalmarioquevadetenisydelquetengoeloriginal(Wii Version) [RMAP01].iso» a «scrub»: Error al renombrar el archivo: El software causó que se abortara la conexión


Ademas de esto:
Error: Error al mostrar información del estado del archivo «/media/wii»: El punto final de transporte no se encuentra conectado
Seleccione otro visor e inténtelo de nuevo.


AÑADO:
He borrado la imagen.iso que trataba de scrubear y la he copiado (habiendo montado previamente con la opcion -s). Me encuentro con el mismo problema, uso 100% de CPU y uso de memoria que aumenta hasta un 70-75%, luego error:
Error al cerrar el archivo: El software causó que se abortara la conexión


Me parece que hay algo que el wbfuse no hace bien :P
Near escribió:He borrado la imagen.iso que trataba de scrubear y la he copiado (habiendo montado previamente con la opcion -s). Me encuentro con el mismo problema, uso 100% de CPU y uso de memoria que aumenta hasta un 70-75%, luego error:
Error al cerrar el archivo: El software causó que se abortara la conexión


Me parece que hay algo que el wbfuse no hace bien :P


O_o en la vida me paso tal cosa xD, a ver si doy con el fallo.
Algunas cuestiones:
¿32 o 64 bits?
¿v0.8 y/o v0.8.1?
Si es con la 0.8.1, ¿formateaste de nuevo la particion antes de meter o borrar imagenes?

Es raro, porque yo las pruebas de scrubing a posteriori que hice no le llevaba ni 1 seg para reducir una imagen de 4,4GB a 160MB. Y puesto que en la 0.8.1 se modifica el metodo de borrado... a ver si va a ser por eso...

EDIT: Acabo de volver a hacer varias pruebas en 64 bits con la 0.8.1 y scrubing activado y no me da problemas. Dios, odio los bugs no reproducibles.
que crack!

muchas gracias por curratelo
Uso la version 0.8.1 precompilada por ti para 32bit, y no, no formatee de nuevo (era necesario?).
Salu2!

EDIT: He formateado y he vuelto a copiar de nuevo todas las imagenes, solo me da el fallo con el de tenis. Todas han quedado correctamente scrubeadas durante la copia. Tendre la imagen corrupta? Volvere a sacar una imagen a ver que tal... :)
Mi más sincera enhorabuena! probado el precompilado de 64 bits, y es una delicia. Montado con opción -s y las escrubbea automaticamente al copiarlas, y todo desde nautilus....

Muchas gracias, grandísimo trabajo.

Salut!
He estado tratando de compilar del fuente (aunque el binario parece funcionar, no he probado bien) y obtengo el mismo error que ya han reportado:

wbfuse.c:711: error: ‘struct fuse_operations_compat2’ no tiene un miembro llamado ‘readdir’
wbfuse.c:716: error: ‘struct fuse_operations_compat2’ no tiene un miembro llamado ‘destroy’

Estuve mirando el asunto y el problema viene por la versión de fuse. Las versiones viejas de fuse no soportan reddir y destroy. La estructura fuse_operations_compat2, que en mi caso se encuentra en el archivo /usr/include/fuse/fuse_compat.h no contiene readdir ni destroy. En mi caso he podido evitar el problema agregando al principio de wbfuse.c la línea:

#define FUSE_USE_VERSION 26

Aunque supongo que con otras versiones también debería funcionar. A demás no tengo instaladas las bibliotecas para linkeo estático así que del Makefile saqué el LDFLAGS = -static sólo para probar si compilaba con el otro cambio y funcionó correctamente.
anv escribió:He estado tratando de compilar del fuente (aunque el binario parece funcionar, no he probado bien) y obtengo el mismo error que ya han reportado:

wbfuse.c:711: error: ‘struct fuse_operations_compat2’ no tiene un miembro llamado ‘readdir’
wbfuse.c:716: error: ‘struct fuse_operations_compat2’ no tiene un miembro llamado ‘destroy’

Estuve mirando el asunto y el problema viene por la versión de fuse. Las versiones viejas de fuse no soportan reddir y destroy. La estructura fuse_operations_compat2, que en mi caso se encuentra en el archivo /usr/include/fuse/fuse_compat.h no contiene readdir ni destroy. En mi caso he podido evitar el problema agregando al principio de wbfuse.c la línea:

#define FUSE_USE_VERSION 26

Aunque supongo que con otras versiones también debería funcionar. A demás no tengo instaladas las bibliotecas para linkeo estático así que del Makefile saqué el LDFLAGS = -static sólo para probar si compilaba con el otro cambio y funcionó correctamente.


Está explicado en el primer mensaje del tema. Es, como tu ya has adivinado, de la versión de FUSE.

___
Muchas gracias torito21.
Muchas gracias, ahora mismo lo pruebo, lo que no sé es por qué nadie hablar sobre cómo formatear la partición. Supongo que si nadie pregunta es porque está explicado en otros mil sitios [sonrisa] ahora mismo lo busco...
nauj27 escribió:Muchas gracias, ahora mismo lo pruebo, lo que no sé es por qué nadie hablar sobre cómo formatear la partición. Supongo que si nadie pregunta es porque está explicado en otros mil sitios [sonrisa] ahora mismo lo busco...

pues con el mkfs.wbfs por ejemplo podrás formatear la partición que quieras. Yo no lo he probado porque ya la tenía inicializada con el wbfs (wbfs init -p /dev/sdb2).
ArangeL escribió:
nauj27 escribió:Muchas gracias, ahora mismo lo pruebo, lo que no sé es por qué nadie hablar sobre cómo formatear la partición. Supongo que si nadie pregunta es porque está explicado en otros mil sitios [sonrisa] ahora mismo lo busco...

pues con el mkfs.wbfs por ejemplo podrás formatear la partición que quieras. Yo no lo he probado porque ya la tenía inicializada con el wbfs (wbfs init -p /dev/sdb2).


Uy pero si viene un readme.txt y todo [360º] Gracias por la información de todos modos.
nauj27 escribió:Uy pero si viene un readme.txt y todo [360º] Gracias por la información de todos modos.

Bueno, en realidad el readme.txt no es de wbfuse, si no que deje todo tal como lo distribuyó Kwiirk, y añadí 2 programas mas.
Incluye:
wbfs (el original de kwiirk con el parche de la libreria para que borre bien y que compila para 64 bits).
mkfs.wbfs para formatear una particion a wbfs.
wbfuse para montar particiones wbfs (si lo copias a /sbin/ puedes montar las particiones con mount -t wbfs /dev/sdxy mount_point).

Deberia incluir un readme como dios manda, pero me da pereza (paradogicamente) xD
Bueno, ahora las mejoras que se le podrían hacer podrían ser acceso al contenido de las ISO. Mostrar un directorio virtual con el contenido de la ISO. Tendría que ser sólo lectura, supongo... a ver si encuentro información y hago algo, aunque no prometo nada porque no tengo mucho tiempo.
95 respuestas
1, 2