Vous n'êtes pas identifié.
Pour les amateurs d'ordinateurs Smaky j'ai fais une petite librairie permettant l'accès _en lecture seul_ au système de fichier "FOS", afin de copier facilement des données d'une disquette 3'1/2 ou d'un disque dur Smaky sur votre système Linux.
On peut se demander l'intérêt de faire ça.. Le mien est de pouvoir récupérer mes données pour du backup sur de l'Ext3. Et cela même si les fichiers ne peuvent être lus uniquement qu'à l'aide des logiciels Smaky (Sauf les éventuels textes, images et sons convertis en des formats courant depuis le Smaky).
Un de mes deuxième but est de transformer cette lib en un module noyau afin de directement monter le FOS dans l'arborescence.. Mais c'est vraiment dans un deuxième temps car il y aurait nettement plus de travail (la librairie actuelle va droit au but, si j'puis dire...). Tout comme je pense faire un petit outil pour convertir les .image et .color du Smaky en un format courant comme le PNG.
Quelques informations importantes :
* lorsqu'un fichier est chargé sur le système, tous les attributs donnés par le FOS sont perdus (les dates, la couleur, si le fichier est system, etc,..), seul le contenu binaire est parfaitement conservé
* la librairie est considérée comme _instable_ et donc comme version _Alpha_
* la librairie a été testée uniquement avec des disquettes, je n'ai pas encore pu tester un disque dur
La page du site (tout est expliqué) : http://fosfat.schroetersa.ch
Il n'y a donc pas encore de release, il faut la télécharger via Subversion.
PS : il y a sûrement pleins de fautes d'anglais mais ça devrait être acceptable ;-)
Et je rajouterais bientôt une petite documentation sur FOS.
Hors ligne
J'ai pas mal retravaillé la librairie (je l'ai rendu bien plus haut niveau qu'au début) depuis tout ce temps et j'ai également, depuis aujourd'hui, commité une première "ébauche" fonctionnelle d'une extension FUSE. Ainsi il est désormais possible de monter un disque (disquette) Smaky FOS directement dans l'arborescence Linux et en Userspace.
Donc OdyX, vu que t'es le seul à avoir un Smaky à ma connaissance et si tu t'emmerdes un jour, quelques retours d'expériences m'aideraient grandement a cibler les bugs importants..
Donc c'est pas sorcier, il faut également avoir installé le >=libfuse-dev-2.5. Ca peut peut-être marcher avec de plus vieux FUSE.
1. récupérer le trunk
svn co http://svn.gna.org/svn/fosfat/trunk fosfat cd fosfat
2. compiler et installer
./configure make sudo make install
3. créer un dossier de montage et monter comme suit (en user, et par exemple avec le floppy disk 0)
mkdir ~/fos fosmount ~/fos --dev=/dev/fd0
Et si c'est un disque dur, il ne faut pas oublier le paramètre --harddisk, par exemple:
mkdir ~/fos fosmount ~/fos --dev=/dev/sda --harddisk
Ensuite les fichiers et dossiers devraient se lister comme des grands, et il devrait être possible de copier en local n'importe quoi comme n'importe quel système de fichier. La grande différence c'est que tout ici est en lecture seule.
Ensuite pour démonter (toujours en userspace)
fusermount -u ~/fos
Bien sûr les commandes root peuvent être utilisées comme
sudo umount ~/fos
pour le démontage.
Voilà, en espérant que ça puisse être utile à d'autres que moi :-)
Hors ligne
Quelques nouvelles depuis tout ce temps.. Je suis passé en beta ainsi ça marche bien mieux qu'avant. Un disque dur devraient pouvoir être lu sans problème. L'extension FUSE (fosmount) a été améliorée néanmoins lorsqu'un dossier est relativement gros, le listage des fichiers peut sembler un peu lent (extrêmement visible avec le dossier SYSTEME :-s).
Par contre l'outils non dépendant de FUSE (et ne permettant donc pas de monter le système dans l'arborescence) est plus rapide (fosread).
J'ai fais deux packages Ubuntu Feisty. un i386 et un amd64
http://download.gna.org/fosfat/fosfat_0 … 0_i386.deb
http://download.gna.org/fosfat/fosfat_0 … _amd64.deb
Bien sûr les sources sont disponibles sous forme d'archive : http://download.gna.org/fosfat/fosfat_0.2.0.orig.tar.gz
Mais il est plus judicieux d'utiliser le dernier trunk.
voir directement le site : http://home.gna.org/fosfat/
Pour monter un disque, j'ai également changé les commandes, ainsi (par exemple):
pour un disque dur
mkdir ~/fos fosmount -a /dev/sda ~/fos
une disquette
fosmount /dev/fd0 ~/fos
pour plus d'info, fosmount --help
Et comme toujours,
fusermount -u ~/fos
pour le démontage..
En ce qui concerne les autres outils, pour fosread (par exemple):
fosread -a /dev/sda list systeme
liste le contenu du dossier SYSTEME
pour plus d'info: fosread --help
Et j'ai également rajouté un petit outil de conversion des fichiers textes Smaky en ISO-8859-1
smascii smaky_file converted_file --unix
permet donc de convertir le fichier smaky_file (préalablement récupéré à l'aide de fosmount ou fosread)
--unix sert à convertir les retours à la ligne en Line Feed. Dans le cas contraire ils resteront inchangés et donc en Carriage Return.
Je prévois également de faire un logiciel pour convertir dans un premier temps les fichiers .IMAGE en un format standard comme PNG.
Tout ceci n'est donc pas stable.. ainsi il ne faut pas s'étonner s'il y arrive qu'un segfault se pointe. Je n'ai pas pu tester tous les cas à fond. Et sûrement que certains fichiers hautement fragmentés posent un problème, mais j'espère pas trop. Certaines erreurs me sont déjà connues mais pour les régler, il me manque encore quelques données sur cette FAT.
Bref, vu que le nombre de potentiels utilisateurs de Smaky est extrêmement faible, je n'attend pas de rapport d'erreur :-). Mais peu importe.. qui sait..
Hors ligne
Et on continue.. cette fois avec une moins grosse mise à jour, mais bien plus importante. Au menu des nouveautés:
* L'extension Fuse est désormais bien fonctionnelle et les données ne sont plus étrangement corrompues (enfin )
* Les soft-links Smaky sont interprétés comme des liens symboliques avec Fuse et non plus comme des fichiers
* Et la _grosse_ nouveauté, un cache est intégré afin d'accélérer (énormément) la navigation dans les répertoires
Les commandes n'ont pas changés depuis mon message précédent..
Ainsi cette version 0.2.1 (beta) est dispo pour Ubuntu Feisty Fawn:
amd64: http://download.gna.org/fosfat/fosfat_0 … _amd64.deb
i386: http://download.gna.org/fosfat/fosfat_0 … 0_i386.deb
Ainsi que les sources: http://download.gna.org/fosfat/fosfat_0.2.1.orig.tar.gz
Et comme toujours, il est plus judicieux d'utiliser le dernier trunk (http://home.gna.org/fosfat/).
svn co http://svn.gna.org/svn/fosfat/trunk fosfat
Hors ligne
Et plop, une nouvelle version beta estampillée 0.2.2 avec principalement une meilleur stabilité. Et à part des corrections de bugs divers et variés il y a qu'en même deux nouveautés.
* Tout d'abord un logger est désormais intégré à la librairie et peut être activé et désactivé au besoin.. Celui-ci se traduit donc par l'option --fos-logger depuis les applications fosread et fosmount. S'il est utilisé avec fosmount, alors le processus ne se détachera pas de la console, comme c'est déjà le cas avec le debugger de FUSE (--fuse-debugger).
* La deuxième nouveauté concerne le choix entre un disque dur et une disquette.. le FOS ne débutant pas au même block avec les deux types de média, dans les versions précédentes (<=0.2.1) il était nécessaire d'utiliser l'option -a (ou --harddisk) afin qu'un disque dur soit monté correctement. Sinon par défaut, c'était le choix de la disquette. Désormais la librairie va automatiquement détecter le bon type et faire le choix pour vous. Néanmoins des options ont été conservées pour forcer le type (-a, --harddisk) et (-f, --floppydisk) dans le cas où la détection échouerait (ce qui est très peu probable , à moins d'essayer de monter autre chose qu'un système FOS).
Et pour finir, je me suis amusé à faire un logo au projet.. question de ne plus utiliser une image de Blupi qui n'était pas de moi (j'avais qu'en même demandé l'autorisation à un dév. d'Epsitec). Alors voici Fosblup qui s'est mit en CC-by-sa.
Sa forme correspond (plus ou moins) à une des molécules de phosphate (Fosfat).
Les paquets pour Ubuntu Feisty Fawn:
amd64 : http://download.gna.org/fosfat/fosfat_0 … _amd64.deb
i386 : http://download.gna.org/fosfat/fosfat_0 … 0_i386.deb
Et le reste comme d'hab.:
sources : http://download.gna.org/fosfat/fosfat_0.2.2.orig.tar.gz
site : http://home.gna.org/fosfat/
svn :
svn co http://svn.gna.org/svn/fosfat/trunk fosfat
Hors ligne
[GO]Skywalker13 a écrit:
Sa forme correspond (plus ou moins) à une des molécules de phosphate (Fosfat).
Hahaha excellent !
Hors ligne
Et non, la réincarnation de Blupi en Fosblup n'était pas du vent mais bien du phosphate. Il ne pouvait donc pas s'envoler et était alors obligé de continuer son travail pour offrir une nouvelle version estampillée 0.3.0.
Quoi de neuf?
* Les liens symboliques
L'outil indépendant de FUSE (fosread) gère désormais correctement les liens symboliques du Smaky FOS. C.-à-d. qu'ils ne sont plus visibles en tant que fichier, mais bien en tant que lien et donc navigables comme des dossiers.
* Multiple disques
La libfosfat peut maintenant gérer plusieurs disques dans un même programme.
* Le mode undelete
La librairie peut désormais travailler avec les fichiers effacés.. Ce qui implique qu'il est possible de restaurer des fichiers qu'on aurait détruit par mégarde. Néanmoins j'ai activé cette option uniquement sur l'outil fosread. Je dois vous avouer que mes premiers tests avec mon disque dur Smaky étaient très amusants.. j'ai retrouvés des choses vraiment vieilles.. en gros.. ça marche impec
Alors c'est simple.. voyez ci-dessous:
En exécutant simplement fosread comme avec les version 0.2.x, le contenu est bien listé avec les fichiers réellement existants.
$ fosread /dev/sda list /progr Smaky disk #545_MB: path: progr size creation last change last view filename ---- -------- ----------- --------- -------- d-- 0 2000-00-00 00:00 2000-00-00 00:00 2000-00-00 00:00 . d-- 12800 1997-04-12 11:30 2005-05-14 18:21 2005-05-14 18:21 pascal d-- 12800 1997-04-12 11:32 2000-01-23 13:04 2000-05-04 20:28 rs d-- 12800 1997-04-12 11:30 2000-01-23 13:04 2000-05-04 20:27 chargeur -h- 128 1993-03-12 17:45 1997-04-12 11:32 1999-12-27 11:40 start_dir.info d-- 12800 1997-04-12 11:28 2001-02-21 14:43 2001-02-21 14:43 basic d:directory l:link h:hidden e:encoded (X):undelete
En ajoutant l'option `-u` ou `--undelete`, on découvre un nouveau fichier signalé par un (X), celui-ci étant effacé.
$ fosread /dev/sda list progr -u Smaky disk #545_MB: path: progr size creation last change last view filename ---- -------- ----------- --------- -------- d-- 0 2000-00-00 00:00 2000-00-00 00:00 2000-00-00 00:00 . --- 1735 1999-12-08 13:03 1999-12-08 13:03 1999-12-08 13:03 couleur.bas (X) d-- 12800 1997-04-12 11:30 2005-05-14 18:21 2005-05-14 18:21 pascal d-- 12800 1997-04-12 11:32 2000-01-23 13:04 2000-05-04 20:28 rs d-- 12800 1997-04-12 11:30 2000-01-23 13:04 2000-05-04 20:27 chargeur -h- 128 1993-03-12 17:45 1997-04-12 11:32 1999-12-27 11:40 start_dir.info d-- 12800 1997-04-12 11:28 2001-02-21 14:43 2001-02-21 14:43 basic d:directory l:link h:hidden e:encoded (X):undelete
On peut alors tenter une récupération.. pour cela il suffit de faire exactement comme avec un fichier "normal".
$ fosread /dev/sda get progr/couleur.bas -u Smaky disk #545_MB: File "progr/couleur.bas" is copying ... 1792 bytes 1844 bytes Okay..
Et dans cette exemple il a pu être lu sans aucun problème! Bien sûr, il se peut que des blocs de DATA soit détruits à cause d'autres fichiers.. Mais dans ce cas, soit le fichier est corrompu, soit fosread n'arrive tout simplement pas à le lire.
En cas d'échec il est judicieux d'activer le logger de la libfosfat avec l'option `-l`ou `--fos-logger`. En mode "undelete" il est normal que le logger retourne beaucoup d'erreurs. Simplement car il tente de suivre des dossiers effacés sans succès. Néanmoins, si l'undelete n'est pas activé et que des erreurs sont visibles il peut y avoir deux raisons. Tout d'abord j'ai peut être laissé un bug et dans ce cas faut me tenir au courant, ou alors votre disque à une corruption quelque part. Mais dans tous les cas il ne devrait pas y avoir de plantage, mais juste des messages d'erreur en retour. Un plantage serait alors aussi une faute de ma part.
* Le support de Window$ 9x/NT
N'étant pas un fan de ce cher Window$, mais étant conscient que ça puisse qu'en même rendre service à d'autres utilisateurs malheureusement encore prisonniés par Microsoft.. J'ai fais un petit effort en portant une partie des outils sous ce système (bien sûr, ce qui concerne FUSE n'est pas dispo avec Window$).
Alors tout d'abord c'est complètement expérimental, c'est tout juste si j'ai testé.. mais au premier abord ça semble marcher (en tout cas avec WinXP). Le plus gros souci c'était d'avoir un accès bas niveau au disque dur avec ce foutu OS. J'ai donc trouvé un morceau de code C++ qui permet de le faire pour Win9x et NT en théorie. Il m'a juste fallu écrire un petit wrapper C par-dessus afin que je puisse l'utiliser avec la libfosfat.
La ligne de commande de fosread est semblable à la version Linux.. la seul différence c'est le paramètre du périphérique..
Avec Linux: fosread /dev/sda list (ou /dev/fd0 voir même une image disque)
Avec Window$: fosread.exe d list (pour le disque d, mettre a pour la disquette, etc,..)
La version Window$ ne peut pas non plus travailler avec des images disques.. je pourrais le faire, donc peut être dans une futur version.
Ainsi il y a donc trois versions binaires disponibles:
i386: http://download.gna.org/fosfat/fosfat_0 … 0_i386.deb (Gutsy Gibbon)
amd64: http://download.gna.org/fosfat/fosfat_0 … _amd64.deb (Gutsy Gibbon)
Win9x/NT: http://download.gna.org/fosfat/fosfat_0.3.0.win32.zip
et les sources: http://download.gna.org/fosfat/fosfat_0.3.0.orig.tar.gz
Et le site comme d'hab: http://home.gna.org/fosfat/
Hors ligne
Déterrage de poste.. une petite mise à jour (0.3.2) de Fosfat qui supporte désormais la conversion des fichiers images .IMAGE du Smaky. En gros il suffit de monter le disque Smaky avec fosmount (comme expliqué dans les anciens postes) et d'ajouter le paramètre -i (ou --image-pbm). Ce qui va faire en sorte de convertir à la volée les fichiers .IMAGE en fichiers .PBM. (Les PBM étant des pixmap tout bête). Pour le moment cela ne marche qu'avec les images monochromes.. les .COLOR ne sont donc pas supportés. La raison est très simple, je n'ai pas encore pris le temps de comprendre le codage des .COLOR. Ce qu'il faut savoir c'est que les images du Smaky sont codées d'une certaines manière pour réduire au mieux leur place tout en étant rapides à lire. Se ne sont pas de simples pixmap comme les PBM. Mais la méthode de codage reste très simple qu'en même.. ça ressemble à du RLE..
Les résultats..
On monte le disque avec l'option -i :
~$ fosmount --image-pbm /dev/sda /home/foobar/smaky/dev
Puis quand on se balade dans des dossiers où il y a des images.. celles-ci sont décodées et renommées en nom_image.image.[fosgra].pbm et sont ainsi directement lisibles.
Ce qui donne:
http://www.gamesover.ch/prov/smaky/smaky.disk.IMAGE.png
et
http://www.gamesover.ch/prov/smaky/smak … browse.png
Leurs tailles sont forcément plus grandes car décodées.. pour garder les images originales (non décodées) il suffit de monter le disque sans l'option -i.
Ça se démonte toujours de la même manière:
~$ fusermount -u /home/foobar/smaky/dev
Dans le poste précédent j'avais également parlé d'un mode undelete.. il y a désormais une petite application dédiée à la restauration des fichiers effacés.. il suffit de faire:
~$ fosrec /dev/sda /home/foobar/smaky/recovery
Et absolument tous les fichiers effacés (et récupérables) vont se retrouver dans le dossier recovery.
J'ai qu'en même mis à jour les paquets..
i386: http://download.gna.org/fosfat/fosfat_0 … 0_i386.deb (Jaunty)
x86_64: http://download.gna.org/fosfat/fosfat_0 … _amd64.deb (Jaunty)
Win9x/NT: http://download.gna.org/fosfat/fosfat_0.3.2.win32.zip
(la conversion d'image n'est pas encore dispo avec la version Windows)
et les sources: http://download.gna.org/fosfat/fosfat_0.3.2.orig.tar.gz
Hors ligne
Je me suis enfin intéressé aux fichiers .COLOR.. qui ne sont guère plus compliqués que les .IMAGE (monochrome). La différence intervient uniquement à la façon d'interpréter les données décodées. L'algorithme de décodage est exactement le même que pour le monochrome.
Au lieu d'avoir 1 bit par pixel, il y a 4 bits par pixel. A noter également l'existence d'une colormap en en-tête. Celle-ci contient les correspondances RGB des couleurs de 0 à 15.
Je n'ai pas encore fais de nouvelle release de la lib, mais toutes les modifications sont dans le trunk.
La conversion des .COLOR en .XPM se fait à la volée. De la même manière que pour les .IMAGE en .PBM. L'arborescence visible dans le screenshot est le disque de modèle (disponible avec l'installateur du Smaky Infini http://www.smaky.ch/~infini/ ) monté dans un répertoire de mon home (~/documents/developement/dev.linux/linux.c/c.smaky/dev/) à l'aide de l'extension fuse, fosmount (options -i et -j pour activer les conversions à la volée).
http://gamesover.ch/prov/smaky/smaky.disk.COLOR.1.png
Les fichiers PBM sont utilisés pour le monochrome, et XPM2 pour la couleur. C'est pour cela que les miniatures ne sont pas visibles dans Nautilus. XPM2 n'est pas lisible par la majorité des applications. Je n'ai trouvé que Gimp et l'outil SXPM pour les lire. Je n'utilise pas le format XPM le plus répandu (XPM1|3) par commodité. Les petites fenêtres des images .COLOR sont donc créées par http://www.xfree86.org/current/sxpm.1.html .
http://gamesover.ch/prov/smaky/smaky.disk.COLOR.2.png
Hors ligne