Problemas con el montaje de unidades HFS +


12

Tengo un problema al montar algunas unidades hfsplus. Solo los necesito montados de solo lectura. (deshabilitar el diario no es una opción) Investigué mucho y descubrí que debido a los cambios de la versión del kernel 2.6.37 a 2.6.38, comenzó el problema.

Eche un vistazo a este enlace en bugs.launchpad.net .

Así que lo probé con el kernel de Linux versión 2.6.37 y versiones anteriores y funcionó bien como debería.

Las versiones anteriores, incluida mi versión que es 3.2.0-54-generic (ubuntu 12.04) no funcionaron bien con el montaje de imágenes y discos hfsplus. Así que necesito el módulo hfsplus de una versión que funcione como 2.6.31-14-generic de ubuntu 9.

Utilizo estos comandos en este caso con una imagen HFS + DD. Pero hice esto con otras unidades físicas hfsplus y otras imágenes. Todos funcionan con el kernel 2.6.37 y versiones anteriores, pero no con las versiones más nuevas:

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

Tengo que agregar esta información para "probar" que el problema es posterior al kernel 2.6.38. Echa un vistazo a esto. Es un controlador NTFS y 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

Para solucionar el problema, acabo de copiarlo /lib/modules/2.6.27/kernel/fs/hfsplus.koen mi núcleo actual 3.2.0-54-generic. Pero eso no funcionó. ¿Cómo obtengo la parte hfsplus que funciona en mi kernel actual 3.2.0-54-generic ubuntu 12.04 linux? ¿O cómo arreglar mi kernel para que funcione como en 2.6.37?

La mejor pista que vi fue esta .

Respuestas:


18

Esta pregunta es un poco antigua, pero la encontré al intentar montar una partición HFS + en las mismas circunstancias, y encontré la solución. No estoy muy seguro de cómo se relaciona con la versión del kernel, el mío es 3.13 (3.13.7-1 x86_64, Debian).

Respuesta corta

Proporcione el tamaño de la partición, así como su desplazamiento.

Respuesta larga

Primero obtenga la información de la partición de Parted, en bytes; necesita los números de Inicio y Tamaño. Aquí hay un ejemplo de sesión Parted (como puedes adivinar, la imagen de mi disco duro es /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 intento montar la partición proporcionando solo el desplazamiento (inicio), obtengo el mismo error que usted:

# 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

Por cierto, no necesita usar losetup, mount lo hace automáticamente. Ahora si agrego el tamaño de la partición (sizelimit), funciona perfectamente:

# 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)

44
su solución se encarga del mensaje "encabezado de volumen secundario no válido", pero el error "no se puede encontrar HFS + superbloque" persiste :(
krumpelstiltskin

1
Todavía obtengo ambos errores en dmesg a pesar de que especifiqué tanto offset como sizelimit
wkarl

no está claro cuál debería ser el desplazamiento - para mí, el Numberde mi dispositivo es 1, offset=1y offset=0ambos fallan
MichaelChirico

16

Para cualquier otra persona que se encuentre con esta pregunta mientras busca el mismo mensaje de error, tenga en cuenta que existe otra posible causa para este error.

Si bien la respuesta proporcionada por mcy debería funcionar si la partición es en realidad una partición HFS +, comenzando con OSX Yosemite, el tipo de partición predeterminado para una Mac es "Core Storage", que se utiliza para manejar volúmenes lógicos. Esto significa que lo que realmente desea montar es un volumen lógico (usando el sistema de archivos HFS +) dentro de la partición "Core Storage".

Para ver si su partición es del tipo "Apple Core Storage" puede usar gdisk: AF05es el código para "Apple Core Storage", mientras que af00es el código para "Apple HFS / HFS +".

Si su disco usa "Apple Core Storage", puede usar la guía provista en esta respuesta para montarlo.


1
¡Gracias! Este era exactamente el problema al que me enfrentaba. La solución vinculada funciona bien.
Michael Ambrose
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.