Masalah dengan pemasangan drive HFS +

12

Saya punya masalah memasang beberapa drive hfsplus. Saya hanya perlu mereka dipasang hanya. (Menonaktifkan jurnal bukan pilihan) Saya melakukan banyak penelitian dan menemukan bahwa karena perubahan dari kernel versi 2.6.37 ke 2.6.38 masalah dimulai.

Lihat tautan ini di bugs.launchpad.net .

Jadi saya mengujinya dengan kernel Linux versi 2.6.37 dan lebih rendah dan bekerja dengan baik seperti seharusnya.

Versi di atas termasuk versi saya yang 3.2.0-54-generik (ubuntu 12.04) tidak berfungsi dengan baik dengan memasang gambar dan disk hfsplus. Jadi saya memerlukan modul hfsplus dari versi yang berfungsi seperti 2.6.31-14-generic dari ubuntu 9.

Saya menggunakan perintah ini dalam hal ini dengan gambar HFS + DD. Tapi saya melakukan ini dengan drive fisik hfsplus lain dan gambar lainnya. Semuanya bekerja dengan kernel 2.6.37 dan lebih rendah tetapi tidak dengan versi yang lebih baru:

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

Saya harus menambahkan informasi ini ke "bukti" bahwa masalahnya adalah setelah kernel 2.6.38. Lihatlah ini. Itu adalah driver NTFS und HFS + dari 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

Untuk memperbaiki masalah saya hanya menyalin /lib/modules/2.6.27/kernel/fs/hfsplus.koke kernel generik 3.2.0-54 saya saat ini. Tetapi itu tidak berhasil. Bagaimana cara mendapatkan bagian hfsplus yang berfungsi ke dalam Linux 3.2.0-54-generic kernel ubuntu 12.04 saya saat ini? Atau bagaimana cara memperbaiki kernel saya agar berfungsi seperti di 2.6.37?

Petunjuk terbaik yang saya lihat adalah yang ini .

Krayt
sumber

Jawaban:

18

Pertanyaan ini agak lama tetapi saya menemukan ketika mencoba me-mount partisi HFS + dalam keadaan yang sama, dan menemukan solusinya. Saya tidak begitu yakin bagaimana ini terkait dengan versi kernel, milik saya adalah 3,13 (3.13.7-1 x86_64, Debian).

Jawaban singkat

Berikan ukuran partisi serta offsetnya.

Jawaban panjang

Pertama, dapatkan informasi partisi dari Parted, dalam bytes; Anda memerlukan nomor Mulai dan Ukuran. Berikut ini adalah contoh dari sesi Parted (seperti yang dapat Anda tebak, gambar hard drive saya adalah /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

Jika saya mencoba memasang partisi dengan hanya menyediakan offset (mulai), saya mendapatkan kesalahan yang sama seperti Anda:

# 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

Omong-omong, Anda tidak perlu menggunakan losetup, mount melakukan itu untuk Anda secara otomatis. Sekarang jika saya menambahkan ukuran partisi (sizelimit), ini berfungsi dengan baik:

# 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)
mcy
sumber
4
solusi Anda menangani pesan "header volume sekunder tidak valid" untuk saya, tetapi kesalahan "tidak dapat menemukan HFS + superblock" tetap ada :(
krumpelstiltskin
1
Masih mendapatkan kedua kesalahan dalam dmesg meskipun saya tentukan offset dan sizelimit
wkarl
tidak jelas offset apa yang seharusnya - bagi saya, Numberperangkat saya adalah 1, offset=1dan offset=0keduanya gagal
MichaelChirico
16

Untuk orang lain yang tersandung pada pertanyaan ini sambil mencari pesan kesalahan yang sama, perhatikan bahwa ada kemungkinan penyebab lain untuk kesalahan ini.

Sementara jawaban yang diberikan oleh mcy harus bekerja jika partisi tersebut sebenarnya adalah partisi HFS +, dimulai dengan OSX Yosemite tipe partisi default untuk Mac adalah "Core Storage", yang digunakan untuk menangani volume logis. Ini berarti bahwa apa yang sebenarnya ingin Anda mount adalah volume logis (menggunakan HFS + filesytem) di dalam partisi "Core Storage".

Untuk melihat apakah partisi Anda bertipe "Apple Core Storage", Anda dapat menggunakan gdisk: AF05adalah kode untuk "Apple Core Storage", sedangkan af00kode untuk "Apple HFS / HFS +".

Jika disk Anda menggunakan "Penyimpanan Inti Apple", Anda dapat menggunakan panduan yang disediakan dalam jawaban ini untuk memasangnya.

lgpasquale
sumber
1
Terima kasih! Persis inilah masalah yang saya hadapi. Solusi tertaut bekerja dengan baik.
Michael Ambrose