HFS + sürücülerinin montajıyla ilgili sorunlar


12

Bazı hfsplus sürücülerini takarken sorun yaşıyorum. Sadece salt okunur olarak monte edilmelerine ihtiyacım var. (günlüğü devre dışı bırakmak bir seçenek değildir) Çok fazla araştırma yaptım ve çekirdek sürüm 2.6.37'den 2.6.38'e kadar olan değişiklikler nedeniyle sorunun başladığını öğrendim.

Bugs.launchpad.net adresindeki bu bağlantıya bir göz atın .

Bu yüzden Linux çekirdek sürümü 2.6.37 ve daha düşük bir sürümle test ettim ve olması gerektiği gibi çalıştı.

3.2.0-54-jenerik (ubuntu 12.04) olan sürümümü içeren yukarıdaki sürümler, hfsplus görüntüleri ve diskleri takarken iyi çalışmadı. Bu yüzden ubuntu 9 2.6.31-14-jenerik gibi çalışan bir sürümden hfsplus modülüne ihtiyacım var.

Bu durumda bu komutları HFS + DD görüntüsü ile kullanıyorum. Ama bunu diğer hfsplus fiziksel sürücüler ve diğer görüntülerle yaptım. Hepsi 2.6.37 ve daha küçük çekirdeklerde çalışır, ancak daha yeni sürümlerde çalışmaz:

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

Bu bilgiyi, sorunun 2.6.38 numaralı çekirdekten sonra olduğunu "kanıtlamak" için eklemeliyim. Şuna bir bak. Bu Paragon bir NTFS ve HFS + sürücüsüdür.

"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

Sorunu çözmek için /lib/modules/2.6.27/kernel/fs/hfsplus.koşu anki 3.2.0-54-jenerik çekirdeğimi kopyaladım . Ama bu işe yaramadı. Çalışma hfsplus kısmını mevcut 3.2.0-54-jenerik çekirdek ubuntu 12.04 linux'uma nasıl alabilirim? Ya da çekirdeğimi 2.6.37'deki gibi nasıl çalıştırabilirim?

Gördüğüm en iyi ipucu bu oldu .

Yanıtlar:


18

Bu soru biraz eski ama aynı koşullarda bir HFS + bölümü monte etmeye çalışırken karşılaştım ve çözümü buldum. Nasıl çekirdek sürümü ile ilgili olduğundan emin değilim, benim 3.13 (3.13.7-1 x86_64, Debian).

Kısa cevap

Bölümün boyutunu ve ofsetini sağlayın.

Uzun cevap

Önce bölümün bilgilerini Parted'ten bayt cinsinden alın; Başlangıç ​​ve Boyut numaralarına ihtiyacınız vardır. Parted oturumu örneği (tahmin edebileceğiniz gibi, sabit disk imajım /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

Bölümü yalnızca ofset (start) sağlayarak bağlamaya çalışırsam, sizinle aynı hatayı alıyorum:

# 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

Bu arada, losetup kullanmanıza gerek yok, mount bunu sizin için otomatik olarak yapar. Şimdi bölümün boyutunu (sizelimit) eklerseniz, mükemmel çalışır:

# 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
çözümünüz benim için "geçersiz ikincil birim başlığı" iletisiyle ilgileniyor, ancak "HFS + süper blok bulamıyor" hatası devam ediyor :(
krumpelstiltskin

1
Hem ofset hem de sizelimit belirtmeme rağmen hala dmesg'de her iki hatayı alıyorum
wkarl

ofsetin ne olması gerektiği net değil - benim için, Numbercihazım 1 offset=1ve offset=0her ikisi de başarısız
MichaelChirico

16

Aynı hata mesajını ararken bu soruya rastlayan herkes için bu hatanın başka bir olası nedeni olduğunu unutmayın.

Bölüm aslında HFS + bölümü ise mcy tarafından verilen yanıtın çalışması gerekirken, OSX Yosemite ile başlayarak bir Mac için varsayılan bölüm türü, mantıksal birimleri işlemek için kullanılan "Çekirdek Depolama" dır. Bu, aslında bağlamak istediğiniz şeyin "Çekirdek Depolama" bölümünde mantıksal bir birim (HFS + dosya sistemi kullanarak) olduğu anlamına gelir.

Bölümünüzün "Apple Core Storage" türünde olup olmadığını görmek için şunları kullanabilirsiniz gdisk: AF05"Apple Core Storage" af00kodunu, "Apple HFS / HFS +" kodunu da kullanabilirsiniz.

Diskinizde "Apple Core Storage" kullanılıyorsa, takmak için bu cevapta verilen kılavuzu kullanabilirsiniz .


1
Teşekkür ederim! Tam olarak karşılaştığım sorun buydu. Bağlantılı çözüm iyi çalışıyor.
Michael Ambrose
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.