2 votes

Impossible de lire la carte SD dans l'appareil photo numérique, mais la carte peut être lue par le lecteur de cartes.

Lorsque j'ai connecté la caméra avec la carte SD à mon PC, j'ai obtenu les messages d'erreur suivants :

Erreur de montage de /dev/sdg1 dans /media/chef/3831-6263 : Ligne de commande mount -t "exfat" -o "uhelper=udisks2,nodev,nosuid,uid=1000,gid=1000,iocharset=utf8,namecase=0,errors=remount-ro,umask=0077" "/dev/sdg1" "/media/chef/3831-6263"' exited with non-zero exit status 1: stdout: FUSE exfat 1.1.0 ' stderr : `ERROR : le système de fichiers est plus grand que le périphérique sous-jacent : 63847792640 > 63847792128.

Mais lorsque j'ai sorti la carte SD et que je l'ai mise dans le lecteur de cartes, le contenu a pu être lu sans problème.

Je l'ai fait. sudo apt-get install exfat-fuse exfat-utils déjà.

J'utilise Ubuntu 15.04. Lorsque j'utilisais 14.04, cela fonctionnait très bien avec la carte dans l'appareil photo.

2voto

GMonell Points 29

Il s'agit d'un bogue dans exfat-fuse. Il est corrigé dans les versions plus récentes d'exfat ( https://github.com/relan/exfat ). Je ne sais pas quand cette version arrivera dans Ubuntu. Elle n'est pas encore dans la 15.10 en tout cas.

J'ai réparé libexfat/mount.c avec le changement dans github, qui change l'erreur en avertissement. C'est-à-dire à partir de (ligne 255, environ) :

    if (le64_to_cpu(ef->sb->sector_count) * SECTOR_SIZE(*ef->sb) >
          exfat_get_size(ef->dev))
    {
        free(ef->zero_cluster);
        exfat_error("file system is larger than underlying device: "
                "%"PRIu64" > %"PRIu64,
                le64_to_cpu(ef->sb->sector_count) * SECTOR_SIZE(*ef->sb),
                exfat_get_size(ef->dev));
        exfat_close(ef->dev);
        free(ef->sb);
        return -EIO;
    }

a

    if (le64_to_cpu(ef->sb->sector_count) * SECTOR_SIZE(*ef->sb) >
            exfat_get_size(ef->dev))
    {
        /* this can cause I/O errors later but we don't fail mounting to let
           user rescue data */
        exfat_warn("file system is larger than underlying device: "
                "%"PRIu64" > %"PRIu64,
                le64_to_cpu(ef->sb->sector_count) * SECTOR_SIZE(*ef->sb),
                exfat_get_size(ef->dev));
    }
#endif

Pour cela, faites :

sudo apt-get source exfat-fuse
cd fuse-exfat-1.1.0/

modifier libexfat/mount.c comme décrit ci-dessus

sudo apt-get build-dep exfat-fuse
dpkg-buildpackage -rfakeroot -uc -b
sudo dpkg -i ../exfat-fuse_1.1.0-2_amd64.deb

Et vous avez terminé et pouvez monter la carte SD comme prévu.

Bonne chance !

2voto

Steven R. Loomis Points 141

Une alternative consiste à compiler et à installer la dernière version de exFAT. Voici comment j'ai procédé.

sudo apt-get install libfuse-dev
git clone https://github.com/relan/exfat.git
cd exfat/
autoreconf --install
./configure --prefix=/usr
sudo make install
sudo mount.exfat-fuse /dev/sdc1 /media/pd/

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X