Проблеми з встановленням HFS + накопичувачів


12

У мене проблема з монтажем деяких накопичувачів hfsplus. Мені просто потрібно, щоб вони були змонтовані лише зараз. (вимкнення журналу не є можливим) Я провів багато досліджень і з'ясував, що через зміни версії ядра 2.6.37 до 2.6.38 проблема почалася.

Перегляньте це посилання на bugs.launchpad.net .

Тож я перевірив його за допомогою ядра Linux версії 2.6.37 і новішої, і він працював чудово як слід.

Версії вище, включаючи мою версію, яка має загальну версію 3.2.0-54 (ubuntu 12.04), не спрацювали з монтажем зображень та дисків hfsplus. Тому мені потрібен модуль hfsplus з робочої версії на зразок 2.6.31-14-generic від ubuntu 9.

Я використовую ці команди в цьому випадку для зображення 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. Погляньте на це. Це драйвер NTFS та HFS + від 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

Щоб вирішити проблему, я просто скопіював /lib/modules/2.6.27/kernel/fs/hfsplus.koу своє поточне ядро ​​3.2.0-54. Але це не вийшло. Як я можу отримати робочу частину hfsplus до мого поточного 3.2.0-54-загального ядра ubuntu 12.04 Linux? Або як виправити моє ядро ​​так, як у 2.6.37?

Найкращий натяк, який я бачив, був цей .

Відповіді:


18

Це питання трохи старе, але я натрапив на нього, намагаючись змонтувати розділ HFS + за тих самих обставин, і знайшов рішення. Я не зовсім впевнений, як це пов’язано з версією ядра, моя - 3.13 (3.13.7-1 x86_64, Debian).

Коротка відповідь

Вкажіть розмір розділу, а також його зміщення.

Довга відповідь

Спочатку отримайте інформацію про розділ 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
Як і раніше отримую обидві помилки в dmesg, хоча я вказав і зміщення, і sizelimit
wkarl

Не зрозуміло, яким має бути компенсація - для мене Numberмоєму пристрою дорівнює 1, offset=1і offset=0обидва не вдається
MichaelChirico

16

Якщо хтось спіткнувся з цим питанням, шукаючи те саме повідомлення про помилку, зауважте, що існує інша можлива причина цієї помилки.

Хоча відповідь, надана mcy, повинна працювати, якщо розділ насправді є розділом HFS +, починаючи з OSX Yosemite типом розділу Mac для Mac є "Core Storage", який використовується для обробки логічних томів. Це означає, що те, що ви насправді хочете встановити, - це логічний об'єм (використовуючи HFS + файловий шрифт) всередині розділу "Core Storage".

Щоб побачити, чи є ваш розділ типу "Apple Core Storage", ви можете використовувати gdisk: AF05це код "Apple Core Storage", а af00код "Apple HFS / HFS +".

Якщо на вашому диску використовується "Apple Core Storage", ви можете скористатися посібником, наданим у цій відповіді, щоб встановити його.


1
Дякую! Саме з цим я стикався. Пов'язане рішення працює добре.
Майкл Амвросій
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.