Смонтировать диск HFSPlus с правами чтения/записи в Linux

Смонтировать диск HFSPlus с правами чтения/записи в Linux

Я понимаю, что этот вопрос по своей сути похож наэтот вопрос, но я надеюсь привлечь больше внимания к еще одной проблеме в одном из комментариевэтот ответ на этот вопрос.

Я вынул жесткий диск из старого MacbookPro и пытаюсь смонтировать его на моем ящике Elementary OS, где он автоматически монтируется как только для чтения. Я хочу получить доступ rw к этому диску.

Следуя процедуре, приведенной в ответе, ссылка на который приведена выше, после запуска

sudo mount -t hfsplus -o remount,force,rw /dev/sdc2 /media/myharddrive

я получил

mount: warning: /media/myharddrive seems to be mounted read-only.

Это было отмечено в комментарии к данному вопросу, но не привлекло достаточного внимания, чтобы дать на него ответ.Почему он до сих пор только для чтения? Разве это не forceгарантия?

Следующие сведения могут иметь или не иметь значение:

Я также побежал sudo fsck.hfsplus -f /dev/sdc2вслед зазапись в блоге, ссылка на которую есть в ответеи добавил -fфлаг после fsckтого, как не захотел выполнять проверку журналируемой системы. это работало хорошо до тех пор, пока

** /dev/sdc2 ** Checking HFS Plus volume. ** Checking Extents Overflow file. ** Checking Catalog file. ** Checking multi-linked files. Orphaned indirect node iNode28863935 ** Checking Catalog hierarchy. ** Checking Extended Attributes file. ** Checking volume bitmap. ** Checking volume information. ** Repairing volume. ** Rechecking volume. ** Checking HFS Plus volume. ** Checking Extents Overflow file. ** Checking Catalog file. ** Checking multi-linked files. ** Checking Catalog hierarchy. ** Checking Extended Attributes file. ** Checking volume bitmap. ** Checking volume information. ** The volume myharddrive was repaired successfully. *** glibc detected *** fsck.hfsplus: munmap_chunk(): invalid pointer: 0x00000000022f9e30 ***

затем обратная трассировка и карта памяти. fsckПохоже, что вызов не оказал никакого влияния на мой привод, ни хорошего, ни плохого.

Есть ли какие-нибудь указания о том, как получить доступ на чтение и запись к моему диску?без загрузки OSX, был бы весьма признателен.

РЕДАКТИРОВАТЬ Комментарии Михаэля Кьёрлинга иотвечатьрешил мою фундаментальную проблему доступа к моим данным. Однако вопросы, выделенные жирным шрифтом выше, еще не были рассмотрены, поэтому я отредактировал вопрос, чтобы подчеркнуть эту проблему, оставив вопрос открытым для будущих пользователей.

решение1

Как мы выяснили из комментариев, здесь возможны две проблемы:

  1. Вы пытаетесь запустить копию как обычный пользователь. Это может привести к сбою чтения исходных файлов, поскольку у вас нет прав на чтение. Это легко исправить, запустив копирование sudoтак же, как вы сделали монтирование.
  2. Вы получаете cp: omitting directory Documents/при попытке запустить копирование через sudo. Это вообще не проблема с правами доступа, и ее можно исправить, просто указав cpвключить подкаталоги.

Объединив эти два понятия, вы сможете копировать файлы с помощью команды типа sudo cp -av /media/myharddrive /somewhere/else, где /somewhere/else существует и доступен для записи.

Параметр -vне является строго необходимым, но после получаса или часа простого ожидания вы можете оценить список файлов по мере их копирования. Обратите внимание, что если у вас очень много маленьких файлов, обновления экрана могут снизить производительность копирования; в этом случае просто сверните окно и время от времени проверяйте его.

-aсообщает cp работать в режиме "архива", сохраняя как можно больше о копируемых файлах, включая подкаталоги. Или вы можете использовать , -rчтобы указать ему сохранять только структуру каталогов.

Используя это, вы сможете скопировать файлы в более подходящее место, где вы сможете работать с ними более свободно, не ограничиваясь ограничением «только чтение», которое накладывает поддержка файловой системы HFS+.

решение2

Я думаю, что ваша проблема в том, как отключить ведение журнала без использования OSX.

Для этого требуется двоичное редактирование (взлом) заголовка диска, в результате чего дисковое пространство, занимаемое журналом, вероятно, будет потеряно.

Вот ссылки на две довольно похожие программы на языке C, которые, как утверждается, делают именно это:

Я не могу гарантировать, что эти программы не уничтожат диск, поэтому предлагаю вам попробовать это на резервном образе диска.

Этот пост может быть полезен: Как смонтировать образ диска?.

решение3

У меня была та же проблема много раз, и что я узнал на данный момент: выполнение успешного fsck имеет важное значение. Поскольку это не работает на вашей машине, я думаю, что это должен быть ваш подход для исправления:

  • Какая версия hfsprogs / fsck.hfsplus у вас установлена?
  • на моей машине (работающей под управлением Debian) яустановил его из исходного кода(используя загрузки из другого источника)

    wget "http"://"gentoo.osuosl.org/distfiles/diskdev_cmds-332.14.tar.gz"

    wget "http"://"gentoo.osuosl.org/distfiles/diskdev_cmds-332.14_p1.patch.bz2"

    tar xzf diskdev_cmds-332.14.tar.gz

    bunzip2 -c diskdev_cmds-332.14_p1.patch.bz2 | патч -p0

    компакт-диск diskdev_cmds-332.14

    сделать -f Makefile.lnx

    cp fsck_hfs.tproj/fsck_hfs /sbin/fsck.hfsplus

    cp newfs_hfs.tproj/newfs_hfs /sbin/mkfs.hfsplus

    ln -s /sbin/fsck.hfsplus /sbin/fsck.hfs

    ln -s /sbin/mkfs.hfsplus /sbin/mkfs.hfs

Таким образом, fsck теперь работал у меня все время с моим диском hfs+.

решение4

Если у вас есть какой-либо способ загрузки на MacсредаЭто должно быть исправлено путем правильного отключения журналирования. Этосреда, другими словами, это не настоящая macOS; если диск больше не находится на Mac, но Mac загружается, поместите диск во внешний корпус (или переустановите его) и загрузите Internet Recovery: удерживайте Rво время и после включения Intel Mac.

Если у вас новый компьютер, извините, что я такой негодяй, но вы сами навлекли на себя эту беду, продолжив покупать продукцию Apple, будучи свидетелем того, по какому пути она движется.

Используя Дисковую утилиту или diskutil(доступ к Терминалу можно получить из одного из меню выше), выполните TLC-очистку диска, а затем отключите журналирование.Отключить ведение журналадолжно быть вФайлменюДисковая утилитаи он, скорее всего, скрыт, нажмите, чтобы его открыть.

Или в терминале, diskutil listчтобы найти свойдиск объем, затем убедитесь, что том размонтирован:

  • diskutil unmountDisk disk1s7или весь диск размонтирован
  • diskutil unmountDisk disk1или
  • diskutil unmountDisk /dev/disk1но не выброшен;
  • diskutil eject <any-of-the-above>или вам придется переподключать его. И избавьтесь от ведения журнала:
  • diskutil disableJournal disk1s7или
  • diskutil disableJournal force disk1s7 …но, конечно, с вашими данными.

Если вы решили использовать новую файловую систему, используйтеNTFSесли вы используете Windows, в противном случае используйтеext4. ZFS сейчас есть в большинстве ОС, как и APFS по какой-то причине, Btrfs также хорош и прост в использовании, но с ним проще решать проблемы ext4, и в отличие от ZFS и Btrfs он переносим, ​​в то время как для них требуется импорт пулов и дополнительная поддержка, а ошибки метаданных могут погубить все.

В качестве альтернативы, вы должны иметь полный доступ к диску в этой среде. И вы, кажется, обходите CLI без серьезных проблем, так что на вашем месте я бы в любом случае имел запасной вариант для плана A, который заключается в том, чтобы — используя второй диск в другом корпусе — скопировать файлы с первого, прежде чем пытаться изменить первый.

При загрузке в режиме установщика или Recovery Mode или любой другой форме, которая не является стандартной для macOS, обратите внимание на структуру файловой системы. Я уже давно не загружался в режиме Recovery, но я полагаю, что это /относится к файловой системе рабочей среды, в то время как ваш фактический диск будет в/Volumes/<your-volume-name>

Если ваш Mac не загружается или больше не существует, вы можете одолжить его! Я не знаю, почему никто другой не предложил это.

Ситуация последнего усилия

Что делать, если у вас нет диска или сетевого ресурса для переноса данных?

Если попытаться сделать это через графический интерфейс, то весьма вероятно, что это не удастся: вносите по одному изменению за раз, применяйте, будьте предельно терпеливы.

Вы можете разбить диск на разделы, создав том HFS, без журналирования, создатьОбъединенный набор дисков (JBOD)и переместите туда столько данных, сколько сможете, что снова освободит еще один кусок на исходном разделе тома и расширит JBOD новым томом. Повторяйте, пока не закончите. Всегда оставляйте немного резерва в каждом томе, *200-400 МБ должно быть достаточно безопасно. Вы не сможете снова увеличить том, но у JBOD очень мало правил.

Альтернативно ипоскольку это может быть нераспознано в Linux, я никогда не тестировал это там,забудьте о JBOD, просто извлеките данные из этого тома, даже если теперь они разделены на 3 дюжины томов, это должно дать вам немного свободы при планировании следующих шагов.

Может быть, вы JBOD-it постфактум, используя Linux-ext4 можно напрямую преобразовать в Btrfs, а Btrfs более гибок, чем что-либо там, единственная область, где он работает кругами вокруг ZFS. Может быть, еще одна последняя миграция ( hfsext4)? Это рискованно, но это, по крайней мере, еще один вариант — у вас не было бы так много, если бы вы остались на macOS (хорошее решение; я все еще на macOS, Mojave, но я полностью готов отказаться, когда мои Mac умрут).

Использование Disk Utility с «деликатным диском»

Если Disk Utility что-то не распознает, это может означать, что ваш диск поврежден или что-то в этом роде. Если вы сделаете слишком много за один раз, это может повредить его. Когда вам показывают круговую диаграмму для разбиения диска на разделы, добавление параметров разделов, имен, изменение размера — все это отдельные операции, многие из которых приводят к сбою Disk Utility, я полагаю, потому что диск может реагировать недостаточно быстро и либо интерпретировать его как плохой диск, либо становится нетерпеливымтак сказатьnad делает глупости, которые в итоге оказываются на плохом диске.

Еще одна потенциально спасающая жизнь вещь, которую вам нужно сделать, прежде чем что-либо предпринимать, и о которой я должен был упомянуть ранее, оглядываясь назад: вТерминалзапустите gpt show -l /dev/disk1и gpt show /dev/disk1скопируйте эти таблицы в текстовый файл и перенесите его на флэш-накопитель или сделайте снимок экрана, IDK. Поместите его прямо в файл: gpt show -l /dev/disk1 > gpt-tables.txt ; gpt show /dev/disk1 >> gpt-tables.txtи переместите файл с машины.

Это позволит вам пересоздать таблицу разделов, если Disk Utility даст сбой. Для аварийных загрузок нет man-страниц, поэтомувот как им пользоваться ( gpt).

Добавляйте разделы по одному, меняйте размер только в том случае, если они не соответствуют требуемому размеру при добавлении, измените файловую систему, щелкните раскрывающийся список, чтобы увидеть скрытые. Не меняйте имя нового тома, вы можете сделать это после их создания, это может привести к сбою всего. После первой ошибки, с них и дальше все проблемы, иногда все восстанавливается после перезагрузки, но лучше не давить. Контроль качества  рухнул прямо около High Sierra/Mojave, при смене генерального директора. Ваш Mac — стереотипная довольно глупая блондинка, и она не расцветет в *Эль Вудс^, нет... она глупая.

Связанный контент