Монтаж розділу HFS + на Arch Linux


22

У мене виникають проблеми з монтажем hfs + розділу в Arch Linux.

Під час запуску sudo mount -t hfsplus /dev/sda2 /mnt/macя отримую цю помилку:

mount: wrong fs type, bad option, bad superblock on /dev/sda2,
   missing codepage or helper program, or other error

   In some cases useful info is found in syslog - try
   dmesg | tail or so.

Біг dmesg | tailдає:

[ 6645.183965] cfg80211: Calling CRDA to update world regulatory domain
[ 6648.331525] cfg80211: Calling CRDA to update world regulatory domain
[ 6651.479107] cfg80211: Calling CRDA to update world regulatory domain
[ 6654.626663] cfg80211: Calling CRDA to update world regulatory domain
[ 6657.774207] cfg80211: Calling CRDA to update world regulatory domain
[ 6660.889864] cfg80211: Calling CRDA to update world regulatory domain
[ 6664.007521] cfg80211: Exceeded CRDA call max attempts. Not calling CRDA
[ 6857.870580] perf interrupt took too long (2503 > 2495), lowering kernel.perf_event_max_sample_rate to 50100
[11199.621246] hfsplus: invalid secondary volume header
[11199.621251] hfsplus: unable to find HFS+ superblock

Чи є спосіб встановити цей розділ?

Редагувати :

Використання sudo mount -t hfsplus -o ro,loop,offset=409640,sizelimit=879631488 /dev/sda2 /mnt/macпозбавляється hfsplus: invalid secondary volume headerвdmesg | tail

Відповіді:


36

Цілком ймовірно, що об'єм HFS не працює, оскільки розділ HFS обгорнуто томом CoreStorage (за замовчуванням з OS X 10.10). Ви можете перевірити, чи це так з результатом fdisk -l: fdisk вихід

HFS + використовує два заголовки гучності, один 1024 в пристрій і вторинний 1024 з кінця пристрою . Відповідно до специфікації, під час монтажу розділу очікується, що вторинний заголовок буде рівно 1024 байти від кінця розділу, але CoreStorage обертає HFS-об'єм, який більше не має значення, тому він припиняється. Ви можете перейти -o sizelimit=Nдо того, mountщоб вручну вказати розмір гучності HFS та виправити це, але як можна отримати магічне значення N?

testdiskУтиліта може сканувати для розділів, натякаючи на те, де розділ HFS дійсно закінчується. Будьте обережні - вибір неправильних параметрів у testdisk може пошкодити вашу таблицю розділів!

  1. Запустіть TestDisk за допомогою testdisk /dev/sdX, а потім OKвиберіть диск
  2. Виберіть Intelдля MBR або EFI GPTнакопичувачів форматування GPT
  3. Натисніть, Analyseа потімQuick Search
  4. Через кілька моментів слід надрукувати на ньому знайдені розділи: результати testdisk

    Вказаний розділ виглядає жахливо близьким (але трохи меншим), ніж реальний розмір розділу 623463232 секторів, про які повідомлялося fdisk -lраніше.

    Оскільки у випуску TestDisk використовуються сектори, нам потрібно буде помножити його на логічний розмір сектора накопичувача (як правило, 512 або 4096 байт), щоб отримати розмір гучності HFS у байтах. Це значення, яке Nми будемо використовувати для -o sizelimit=Nмонтажу гучності HFS.

    Якщо ви не знаєте логічного розміру вашого диска, перевірте вихід другого першого числа, про який повідомляється fdisk -lу рядку, показаному нижче:знаходження логічного розміру вашого диска

  5. Натисніть qкілька разів, щоб вийти з програми

  6. Встановіть диск: mount /dev/sdXn -t hfsplus -o ro,sizelimit=N

3
Від користувача edmonde : Цей рецепт працював для мене чудово, але мені довелося його переробити, використовуючи логічний розмір сектору (перше з двох чисел, в моєму випадку 512 проти 4096) на відміну від розміру фізичного сектора, щоб обчислити загальний розмір обсягу. Я не знаю чому, але це спрацювало чудово.
fixer1234

Це вирішило мою проблему. Інші ресурси пропонували використовувати offsetпараметр, який не працював у поєднанні з цим, але використовуючи лише sizelimit встановлену кількість байтів (байтів * секторів), працював як шарм, навіть для не-CoreStorage розділів
cdeszaq

Це не працює для мене. Я отримую mount failed: Unknown error -1і нічого в dmesg. hfsplusнапевно завантажений.
Дан

+1 виправлено за допомогою логічного розміру сектора
Джейк

1
Це рішення справно працювало для мене до оновлення OSX, яке припинило цю роботу. Хтось ще мав цю проблему? Будь-яка порада?
Вік

2

Інший варіант - позбутися CoreStorage, якщо машина OS X вам доступна. Це також дозволить позбутися від розшифровки, якщо ви його використовуєте, і вам доведеться почекати, поки розшифровка буде закінчена (підключено до живлення та завантажиться в OS X, навіть відновлення).

Вам потрібно буде завантажитися на диск, який не має на увазі, бажано відновлення в Інтернеті (якщо є, команда-параметр-r при перезавантаженні). Відкрийте термінал і виконайте:

diskutil cs list

Вихідні дані повинні показувати ваші обсяги CoreStorage, і все, одним з них є його статус Revertible. Якщо це означає "Так", то ви будете в хорошій формі продовжувати. Далі ви біжите:

diskutil cs revert /dev/ diskXsY

(Де X - номер диска, а Y - номер розділу).

Ви можете перевірити його стан згодом за допомогою тієї самої команди "список дискуталів". Якщо вона не була зашифрована, вона вже повинна повернутися до стандартного макета розділу GPT, і ви можете спробувати встановити її ще раз в Arch. Це все одно має бути зафіксовано в черговому режимі, що дозволить зберегти його лише для читання, якщо ви хочете переключити, що це можна зробити у програмі Disk Utility.

Якщо він був зашифрований, процес займе певний час, але "список дискутистів" покаже вам прогрес у відсотках.

У мене не було проблем з монтажем не-CoreStorage HFS + приводів та розділів на Arch. Зрештою, я перемістив дані, перерозподіливши їх як ext4 і перемістивши їх назад.

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