Во-первых, HFS + - это не нативная файловая система с точки зрения Linux, поэтому ожидается некоторая странность. Тем не менее, полное отключение файловой системы при удалении файлов выходит за рамки того, что я ожидал, но может случиться так, что это, по крайней мере, часть того, что происходит. Если это так, и если ни одно из приведенных ниже предложений не поможет, переключение на FAT может помочь. Хотя FAT также не является нативным, его драйверы (как в Linux, так и в macOS) достаточно развиты, что вряд ли вызовет такие проблемы. OTOH, FAT также очень ограничен по сравнению с HFS +, поэтому он может быть недостаточным (например, если вам нужно хранить большие файлы).
В любом случае, здесь могут возникнуть некоторые конкретные проблемы:
- Журналирование - По умолчанию, MacOS создает HFS + томов с журнальной активными. Фактически, это значение по умолчанию не может быть отключено в последних версиях macOS при использовании Дисковой утилиты GUI. Журналирование, однако, плохо поддерживается в драйверах Linux HFS +. Таким образом, для общего раздела данных лучше отключить ведение журнала. К сожалению, я не знаю, как это сделать на существующем томе; но, возможно, поиск в Интернете что-то поднимет. Если нет, или если вы не против делать жонглирование backup-reformat-restore, вы можете сделать это. Когда вы это сделаете, я бы предложил использовать
mkfs.hfsplus
в Linux для создания новой файловой системы. Для того, чтобы создать не-журнализированную файловую систему, вы бы опустить на -J
выбор. (Введите, man mkfs.hfsplus
чтобы узнать больше об этой команде.) Если команда не установлена, вам может потребоваться установитьhfsprogs
пакет. Есть способ командной строки сделать это и в macOS; Я считаю, что команда newfs
или что-то подобное. Я не помню детали, хотя.
- Скоординированные идентификаторы пользователей - по умолчанию первый идентификатор пользователя (UID) в Ubuntu равен 1000, тогда как в macOS он равен 501. Таким образом, когда вы пытаетесь поделиться файлами в разделе HFS + между этими ОС, файлы будут принадлежать разным пользователям в каждой ОС. Несмотря на то, что можно свободно устанавливать разрешения или активно использовать их
sudo
для обеспечения общего доступа к файлам, лучшим решением является координация значений UID между двумя установками. Мой ответ на этот вопросв AskUbuntu описывает, как это сделать в Ubuntu, и предоставляет ссылки на другие сайты, которые описывают, как это сделать в macOS. (Внесение изменений в macOS является предпочтительным, но процесс в macOS более утомителен.) Предлагая внести это изменение, я предполагаю, что вы можете столкнуться с проблемами с разрешениями и что эти проблемы взаимодействуют с ошибками файловой системы, которые вызывают файловую систему. быть размонтированным.
- Ошибки файловой системы - если файловая система была повреждена, возможно, ядро внезапно отключило ее. Вы можете запустить
fsck
на разделе HFS + в Linux, и это должно решить проблему, если hfsprogs
пакет установлен. Apple открыла большую часть своего кода HFS +, поэтому теоретически это должно быть почти идентично выполнению проверки в macOS; тем не менее, Apple в последнее время вносит некоторые изменения в свои файловые системы, и я не знаю, попали ли эти изменения в пакеты дистрибутивов Linux, поэтому может быть безопаснее выполнять работу в macOS с помощью Disk Utility. Если Дисковая утилита дает вам возможность сделать это, не включайте журнал в разделе по причинам, указанным ранее.
Вы можете получить некоторые подсказки о том, что является причиной проблемы, посмотрев на кольцевой буфер ядра сразу после возникновения проблемы. Вы можете сделать это, набрав, dmesg
чтобы увидеть все это или dmesg | tail
увидеть последние несколько строк. (Вы можете увеличить количество отображаемых строк с помощью -n
параметра tail
, например dmesg | tail -n 20
, или использовать, less
а не tail
прокручивать все это.) Кольцевой буфер ядра должензаписывать информацию о сбоях в ядре, что является незапрошенным размонтированием файловой системы. OTOH, возможно, что то, что вызывает размонтирование, на самом деле не является отказом ядра, или сообщение об ошибке по какой-то причине не происходит. Если вы попробуете приведенные выше предложения, но они не помогут, но если кольцевой буфер ядра показывает что-то подозрительное, вы можете попробовать опубликовать детали.