web-dev-qa-db-fra.com

Problèmes avec le montage HFS + Drives

J'ai un problème de montage des lecteurs hfsplus. J'ai juste besoin d'eux monté en lecture seule. (Désactivation du journal n'est pas une option) J'ai fait beaucoup de recherches et a découvert qu'en raison de modifications de la version 2.6.37 du noyau à 2.6.38, le problème a commencé.

Regardez ce lien à bugs.launchpad.net .

Je l'ai donc testé avec la version 2.6.37 de Kernel Linux et basculant et cela a fonctionné bien comme il le devrait.

Versions ci-dessus, y compris ma version, qui est 3.2.0-54-générique (Ubuntu 12.04) n'a pas fonctionné bien avec le montage des images HFSPLUS et des disques HFSPLUS. J'ai donc besoin du module HFSplus d'une version de travail comme 2.6.31-14-générique de Ubuntu 9.

J'utilise ces commandes dans ce cas avec une image HFS + DD. Mais je l'ai fait avec d'autres lecteurs physiques hfsplus et autres images. Ils travaillent tous avec le noyau 2.6.37 et la baisse mais pas avec des versions plus récentes:

Sudo losetup -d /dev/loop0
Sudo losetup /dev/loop0 -o $((512*409640)) /folder/iMac_21.dd

Sudo mount -t hfsplus /dev/loop0 /mnt/hfs
mount: wrong fs type, bad option, bad superblock on /dev/loop0,
missing codepage or helper program, or other error

dmesg | tail
[84980.380254] hfs: invalid secondary volume header

Je dois ajouter ces informations à "Preuve" que le problème est après le noyau 2.6.38. Regardez cela. C'est un conducteur NTFS und HFS + de Paragon.

"What's new in Paragon NTFS & HFS+ for Linux 8.5:
Support for modern Linux Kernels (up to 2.6.38);"
paragon-software.com/home/ntfs-linux-per/features.html

Pour résoudre le problème, je viens de copier /lib/modules/2.6.27/kernel/fs/hfsplus.ko à mon noyau actuel de 3,2,0-54-générique. Mais ça n'a pas marché. Comment puis-je obtenir la partie HFSplus de travail dans mon Kernel Ubuntu de 3,2,0-54-générique actuel? Ou comment réparer mon noyau pour travailler comme en 2.6.37?

Le meilleur indice que j'ai vu était celui-ci .

12
Krayt

Cette question est un peu ancienne mais je suis tombée sur elle tout en essayant de monter une partition HFS + dans les mêmes circonstances et trouva la solution. Je ne suis pas tout à fait sûr de savoir comment il est lié à la version du noyau, le mien est de 3.13 (3.13.7-1 x86_64, Debian).

Réponse courte

Fournissez la taille de la partition ainsi que son décalage.

Longue réponse

Premièrement, obtenez les informations de la partition depuis séparées, en octets; Vous avez besoin du début et des numéros de taille. Voici un exemple de session séparée (comme vous pouvez le deviner, mon image de disque dur est /mnt/macbook.dd):

$ /sbin/parted /mnt/macbook.dd
WARNING: You are not superuser.  Watch out for permissions.
GNU Parted 2.3
Using /mnt/macbook.dd
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) unit
Unit?  [compact]? b
(parted) p
Model:  (file)
Disk /mnt/macbook.dd: 160041885696B
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start       End            Size           File system  Name                  Flags
 1      20480B      209735679B     209715200B     fat32        EFI system partition  boot
 2      209735680B  159907647487B  159697911808B  hfs+         Customer

Si j'essaie de monter la partition en fournissant uniquement le décalage (Démarrer), je reçois la même erreur que vous:

# mount -v -t hfsplus -o ro,loop,offset=209735680 /mnt/macbook.dd /media/mac
mount: enabling autoclear loopdev flag
mount: going to use the loop device /dev/loop0
mount: wrong fs type, bad option, bad superblock on /dev/loop0,
       missing codepage or helper program, or other error
       In some cases useful info is found in syslog - try
       dmesg | tail  or so
# dmesg | tail -n2
[117791.463123] hfsplus: invalid secondary volume header
[117791.463132] hfsplus: unable to find HFS+ superblock

Au fait, vous n'avez pas besoin d'utiliser des lossers, le mont le fait pour vous automatiquement. Maintenant, si j'ajoute la taille de la partition (Sizelimit), cela fonctionne parfaitement:

# mount -v -t hfsplus -o ro,loop,offset=209735680,sizelimit=159697911808 /mnt/macbook.dd /media/mac
mount: enabling autoclear loopdev flag
mount: going to use the loop device /dev/loop0
/mnt/macbook.dd on /media/mac type hfsplus (ro,offset=209735680,sizelimit=159697911808)
18
mcy

Pour toute autre personne qui a trébuché sur cette question lors de la recherche du même message d'erreur, notez qu'il existe une autre cause possible de cette erreur.

Bien que la réponse fournie par MCY fonctionne si la partition est en fait une partition HFS +, en commençant par OSX Yosemite, le type de partition par défaut pour un Mac est "Stockage de base", utilisé pour gérer des volumes logiques. Cela signifie que ce que vous voulez réellement monter est un volume logique (à l'aide de HFS + FilesYtem) à l'intérieur de la partition "Stockage".

Pour voir si votre partition est de type "Apple Core Storage", vous pouvez utiliser gdisk: AF05 est le code du stockage "Apple Core Storage", tandis que af00 est le code pour "Apple HFS/HFS +".

Si votre disque utilise "Storage Apple Core", vous pouvez utiliser le guide fourni dans cette réponse pour le monter.

16
lgpasquale