HFS + 드라이브 장착 문제


12

일부 hfsplus 드라이브를 마운트하는 데 문제가 있습니다. 읽기 전용으로 마운트해야합니다. (저널 저널 비활성화는 옵션이 아닙니다) 많은 연구를 해본 결과 커널 버전 2.6.37에서 2.6.38로 변경되어 문제가 시작되었음을 알았습니다.

bugs.launchpad.net 에서이 링크 를보십시오 .

따라서 Linux 커널 버전 2.6.37 이하로 테스트했으며 정상적으로 작동했습니다.

3.2.0-54-generic (ubuntu 12.04) 인 내 버전을 포함하여 위의 버전은 hfsplus 이미지 및 디스크를 마운트 할 때 제대로 작동하지 않았습니다. 따라서 우분투 9의 2.6.31-14-generic과 같은 작동 버전의 hfsplus 모듈이 필요합니다.

이 경우 이러한 명령을 HFS + DD 이미지와 함께 사용합니다. 그러나 나는 다른 hfsplus 물리 드라이브와 다른 이미지로 이것을했습니다. 커널 2.6.37 이하에서는 작동하지만 최신 버전에서는 작동하지 않습니다.

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

커널 2.6.38 이후에 문제가 있다는 것을 "증거"하기 위해이 정보를 추가해야합니다. 이것 좀 봐 Paragon의 NTFS 및 HFS + 드라이버입니다.

"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

문제를 해결하기 위해 방금 /lib/modules/2.6.27/kernel/fs/hfsplus.ko현재 3.2.0-54-generic 커널에 복사 했습니다. 그러나 그것은 효과가 없었습니다. 현재 3.2.0-54-generic 커널 우분투 12.04 리눅스에서 작동하는 hfsplus 부분을 어떻게 얻습니까? 또는 2.6.37에서와 같이 작동하도록 커널을 수정하는 방법은 무엇입니까?

내가 본 가장 좋은 힌트는 이것 이었다 .

답변:


18

이 질문은 조금 오래되었지만 같은 상황에서 HFS + 파티션을 마운트하려고 시도하면서 해결책을 찾았습니다. 커널 버전과 어떤 관련이 있는지 잘 모르겠습니다 .3.13 (3.13.7-1 x86_64, Debian)입니다.

짧은 답변

파티션의 크기와 오프셋을 제공하십시오.

긴 대답

먼저 Parted에서 파티션 정보를 바이트 단위로 가져옵니다. 시작 및 크기 번호가 필요합니다. 다음은 Parted 세션의 예입니다 (추상 한 것처럼 내 하드 드라이브 이미지는 /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

오프셋 (시작) 만 제공하여 파티션을 마운트하려고하면 다음과 같은 오류가 발생합니다.

# 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

그건 그렇고, losetup을 사용할 필요가 없으며 mount는 자동으로 수행합니다. 이제 파티션 크기 (sizelimit)를 추가하면 완벽하게 작동합니다.

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

4
솔루션은 나를 위해 "잘못된 보조 볼륨 헤더"메시지을 담당하지만, "찾을 수없는 HFS + 수퍼"오류이 지속 :(
krumpelstiltskin

1
오프셋과 sizelimit를 모두 지정했지만 dmesg에서 여전히 두 가지 오류가 발생합니다.
wkarl

오프셋이 무엇인지 명확하지 않습니다. 저에게는 Number제 장치가 1 offset=1이고 offset=0둘 다 실패합니다.
MichaelChirico

16

동일한 오류 메시지를 찾는 동안이 질문에 걸려 넘어지는 사람은이 오류의 또 다른 원인이있을 수 있습니다.

파티션이 실제로 HFS + 파티션 인 경우 mcy가 제공하는 대답은 작동하지만 OSX Yosemite부터 Mac의 기본 파티션 유형은 "코어 스토리지"이며 논리 볼륨을 처리하는 데 사용됩니다. 즉, 실제로 마운트하려는 것은 "코어 스토리지"파티션 내부의 논리 볼륨 (HFS + 파일 시스템 사용)입니다.

파티션이 "Apple Core Storage"유형인지 확인하려면 다음을 사용할 수 있습니다 gdisk. : AF05"Apple Core Storage" af00의 코드이고 "Apple HFS / HFS +"의 코드입니다.

디스크가 "Apple Core Storage"를 사용하는 경우이 답변 에 제공된 안내서를 사용하여 마운트 할 수 있습니다.


1
감사합니다! 이것은 내가 직면 한 문제였습니다. 연결된 솔루션이 잘 작동합니다.
Michael Ambrose
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.