Раздел Ubuntu 16.04 отключается при удалении большого количества файлов

0

У меня двойная загрузка Ubuntu 16.04 / MacOS El Capitan и общий раздел в формате Mac по умолчанию (HFS +). Моя двойная загрузка и разделение разделов работают хорошо, и я могу получить к нему доступ с обеих сторон.

Когда я работаю в Ubuntu и работаю над этим общим разделом (HFS +), удаленные файлы передаются в папку Ubuntu, и система теряется:

  • Я вижу файлы в папке корзины, но не могу удалить или восстановить их.
  • Когда я удаляю огромные объемы данных (я работаю с тысячами картинок), раздел автоматически отключается из моей системы Ubuntu во время процесса удаления. Чтобы получить к нему доступ, мне нужно выполнить ручной монтаж после перезапуска или переключиться на MacOS и вернуться.

Я старался:

  • удаление файлов из командной строки
  • Очистить / восстановить корзину с дисплея
  • Убить мусорный процесс в запущенных процессах

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

hackela
источник

Ответы:

1

Во-первых, 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, возможно, что то, что вызывает размонтирование, на самом деле не является отказом ядра, или сообщение об ошибке по какой-то причине не происходит. Если вы попробуете приведенные выше предложения, но они не помогут, но если кольцевой буфер ядра показывает что-то подозрительное, вы можете попробовать опубликовать детали.

Род Смит
источник
Спасибо за ваш ответ, Род Смит, о ведении журнала и идентификаторе пользователя. Сначала я позаботился об этом, отключив ведение журнала на macos и установив для идентификатора пользователя Ubuntu значение 501 для доступа к файлам. Этот конфиг работал в течение нескольких месяцев без каких-либо проблем, поэтому я исследовал ошибку, но это было хорошим напоминанием. Я выполнил все команды отладки, которые вы мне дали, но я не нашел ничего окончательного решения. В конце концов я решил отформатировать этот общий раздел в / ext4, и я получу большие права доступа к macos. Ubuntu - моя основная ОС, она должна разрешать будущие конфликты.
hackela