logoAnerty's Lair - Info - DriveSort sous Linux << Actualités << Home
enfr
^
article

Info: DriveSort sous Linux

Linux DriveSort

J'ai fait quelque tests sous Ubuntu Linux v8.04 avec Wine v0.9.59 comme émulateur Windows, et il semble permettre à DriveSort de fonctionner sous Linux. Ca tombe bien, car je n'ai pour le moment pas l'intention de faire une version multi platforme de DriveSort vu que les sources sont fortement liées aux APIs Microsoft. Ca équivaudrait à tout réécrire une bonne partie de l'application, et je ne suis même pas sur qu'il existe des APIs portable pour la gestion des disques.

Par contre, il y a quand même quelque problèmes sous Wine:

  • J'ai seulement réussi a trier quelquechose en lançant DriveSort avec sudo wine DriveSort.exe, sinon il se plaint d'"Accès refusé" quand j'essaye d'ouvrir un système de fichier FAT monté.
    C'est ptet du à mes conditions de test un poil exotiques (j'essaye de trier une clef USB branchée sur ma machine Windows en faisant tourner DriveSort sur Wine sur Ubuntu Linux sur VMWare Player sur Windows). J'ai essayé d'éviter les problèmes potentiels de l'USB sous la machine virtuelle en triant un volume TrueCrypt monté directement sous Ubuntu, mais ça ne résoud pas le problème, je ne peux ouvrir le systeme de fichier que si je lance Wine entant que super-utilisateur. Ca vient peut être aussi du fait que mon installation d'Ubuntu est une image pré-installée (L'image de machine virtuelle Ubuntu que j'utilise).

    Si vous trouvez un moyen d'ouvrir un disque dans DriveSort sans lancer Wine entant que root, merci de me tenir au courant.
  • Il y a quelque fonctions Windows utilisées par DriveSort qui ne fonctionent pas sous Wine pour le moment. Certaines sont importantes, les autres moins:
    • Verrouillage de Volume (FSCTL_LOCK_VOLUME): Permet à DriveSort d'empécher les autres programmes de modifier accidentellement le système de fichier pendant que DriveSort est entrain de le trier, et empêche DriveSort d'ouvrir un système de fichier si un autre programme est déjà entrain de bosser dessus. Sans cette fonction, il n'y a aucune garantie que votre système de fichier FAT ne soit pas modifié par deux programmes en même temps, donc ça peut ammener à un système de fichier corrompu. Vous pouvez essayer d'éviter ça en ne faisant rien sur ce système de fichier, mais c'est un peu dangereux.
      Wine le signale comme ça: fixme:ntdll:NtFsControlFile stub! return success - Unsupported fsctl 90018 (device=9 access=0 func=6 method=0)
    • Déverouillage de Volume (FSCTL_UNLOCK_VOLUME): Permet à DriveSort de lacher un verrou sur un volume quand vous le fermez. Celui la ne nous manquera pas trop si on ne peut pas verrouiller le volume, mais quand même important si d'aventure Wine implémente le vérouillage dans une beta version sans implémenter celui la en même temps.
      Wine le signale comme ça: fixme:ntdll:NtFsControlFile stub! return success - Unsupported fsctl 9001c (device=9 access=0 func=7 method=0).
    • Structure d'un disque (IOCTL_DISK_GET_DRIVE_LAYOUT): Donne plus de détails sur la structure des partitions d'un disque à DriveSort.
      Wine le signale comme ça: fixme:mountmgr:harddisk_ioctl unsupported ioctl 7400c.
    • Lecture de fichier sur Internet (InternetReadFileExW): Permet à DriveSort de lire la dernière version depuis le net de manière asynchrone quand il se met à jour. Vu que le bouchon de Wine ne fait rien, la mise à jour va se plaindre qu'il est impossible de déterminer la dernière version de DriveSort avec "Succès" comme raison, ce qui ne dit pas grand chose.
      Wine le signale comme ça: err:wininet:InternetReadFileExW (0x3, 0x14eae0, 0x8, 0x14ead0): not implemented in native
  • Il y a une DLL Windows qui n'est pas distribuée avec Wine: MFC42u.dll. Pour faire tourner DriveSort il faut la mettre soit au même endroit que DriveSort.exe soit dans les fichiers système de Wine. On peut la trouver facilement via Google mfc42u.dll.
  • La plupart du temps, quand DriveSort referme un disque qu'il vient juste de trier, il tente de le démonter pour forcer le système d'exploitation à purger son cache du système de fichier. Sous Windows le disque est automatiquement remonté, donc c'est transparent pour l'utilisateur. Sous Wine, le disque n'est pas automatiquement remonté, donc ne paniquez pas si votre disque disparait quand vous le fermez sous Wine, suffit juste de le remonter.

Utiliser Wine vous permet donc de faire tourner DriveSort sous Linux, mais ça ne sera pas aussi sur que de le faire tourner sous Windows tant que Wine n'implémentera pas le verrouillage de disque.