Как смонтировать диск HFS + и игнорировать разрешения

25

Я установил Ubuntu и Windows на свой MacBook, и Ubuntu - моя основная ОС; однако все мои медиафайлы остаются в моем разделе OSX. Я хочу иметь доступ к нему (по крайней мере, к домашней папке моего пользователя OSX) из Ubuntu без необходимости запуска медиаплеера (или чего-либо еще) от имени пользователя root. Кроме того, поскольку я иногда хочу запустить свою машину в OSX, я не хочу менять то, что мне нужно было бы часто менять обратно (я много читал об изменении UID - я не совсем понимаю, что это влечет за собой, но я не хотел бы менять свой UID взад и вперед в зависимости от того, какую операционную систему я использую. Точно так же я не хочу менять разрешения файловой системы взад и вперед).

Кроме того, я видел кое-что о опции «noowner», но, похоже, это не делает то, что я хочу.

Итак, я думаю, я хотел бы иметь возможность сделать что-то вроде этого:

sudo mount -t hfsplus -o noowner /dev/sda2/ /media/Mac

И тогда я смогу получить доступ ко всем моим медиафайлам (по крайней мере ко всему в моей домашней папке пользователя OSX), не входя в систему как root. (для ясности: приведенная выше запись командной строки не делает то, что я хочу, но я хочу иметь возможность делать что-то подобное).

Или лучше изменить мой UID? И если да, то как?

weberc2
источник
Можете ли вы взглянуть на мой ответ. Я думаю, что я ответил на ваш вопрос более правильно, чем отмеченный ответ.
Catskul
@ Catskul Нет, я не могу. Этому вопросу более 2 лет. В то время я продал свой MacBook, и воспроизвести этот вопрос с целью проверки вашего ответа непозволительно сложно.
weberc2

Ответы:

28

bindfsэто ответ. Он возьмет уже смонтированную файловую систему и предоставит для просмотра все, что вам нужно:

sudo apt-get install bindfs
mkdir ~/myUIDdiskFoo
sudo bindfs -u $(id -u) -g $(id -g) /media/diskFoo ~/myUIDdiskFoo
Catskul
источник
Нагрузка на процессор и память довольно значительна, хотя. Если это проблема, я бы порекомендовал решение @ weberc2. В противном случае отличный ответ.
frhd
bindfs был для меня ненадежным. я использовал ответ для этого поста askubuntu.com/questions/315078/… вместо этого
krumpelstiltskin
Хороший ответ (upvoted), но он требует установки bindfs. Почему это не так хорошо? Что ж, это мой необычный случай: друг дает мне старый MacBook (я не знаю, Pro) для резервного копирования данных с не загружающейся MacOS. Я пробую последнюю версию Ubuntu и не повезло (сбой драйвера nouveau, nomodeset не помогает). Затем я возвращаюсь к версиям Ubuntu, пока не найду ту, которая загружается, 9.10 (да), серверы репо больше не подключены. bindfs не может быть установлен. Принятый ответ решает эту проблему.
Hatoru Hansou
19

Я не смог понять, как игнорировать разрешения, но в итоге я изменил UID моей учетной записи Ubuntu, чтобы он соответствовал моей учетной записи OSX:

sudo useradd -d /home/tempuser -m -s /bin/bash -G admin tempuser
sudo passwd tempuser

Введите новый пароль. Выйдите из системы, войдите как «прочее» с именем пользователя «tempuser» и паролем, который вы выбрали ранее. Откройте терминал и введите:

sudo usermod --uid 501 yourusername
sudo chown -R 501:yourusername /home/yourusername

* измените «yourusername» на свое временное имя пользователя и 501 на UID вашей учетной записи Mac (первая учетная запись Mac начинается с 501, но последующие пользователи будут иметь разные UID).

Выйдите из tempuser и войдите в свою обычную учетную запись (это важно; не просто переключайте пользователей - случаются плохие вещи). Откройте окно терминала и введите:

sudo userdel -r tempuser

Для более подробной информации посетите эту страницу .

Предостережения

  • Только один пользователь Linux может получить доступ. Эта настройка не позволит нескольким пользователям Linux получить доступ к нескольким пользовательским каталогам на диске HFS +. Это связано с тем, что Apple блокирует пользовательские каталоги (и медиа-каталоги, такие как Music) до 700 ( rwx------).
  • После того, как вы измените свой UID, менеджер входа перестанет перечислять этого пользователя. Вы должны изменить UID_MINопцию в /etc/login.defс 1000на 500.
  • Наконец, поскольку UID пользователя изменился, доступ к диску становится путаницей разрешений. Вам нужно будет указать точное местоположение домашней папки вашего пользователя, чтобы просмотреть ее. Заполнение вкладок и просмотр файлового менеджера станут проблематичными для папок, находящихся за пределами исходной домашней папки пользователя Apple, без нее sudo.
weberc2
источник
подход usermod работал для меня. просто убедитесь, что удалили / media / USERNAME, если хотите использовать USB-накопители. askubuntu.com/questions/583375/…
krumpelstiltskin
Для вашего предостережения 1 700 действительно является значением по умолчанию для пользовательских каталогов в OS X, но нет проблем с его изменением, если оно вам не подходит, например, на 755.
fkraiem
Хотя использование sudo для выдачи команд и запуска nautilus с помощью sudo позволяет получить доступ к любому каталогу в MacOS HD, метод uid является лучшим, когда вам нужно больше, чем просто получить доступ к файлам, например, перенести их в общую папку на другом компьютере (используя Самба, например). Экземпляр nautilus с повышенными правами не может исследовать сеть, как обычный экземпляр nautilus, но он не позволяет копировать и вставлять из MacOS HD. Дайте tempuser uid 501 решил проблему для меня, позволив мне сделать резервную копию данных с не загружающейся MacOS в общую папку.
Hatoru Hansou
Для 16.10, кроме UID_MIN, также необходимо добавить GID_MIN=500к/etc/login.def
привлечь
5

В документации по реализации ядра Linux для файловой системы HFS + указан uidпараметр монтирования, который позволяет вам «владеть» всеми файлами (и, возможно, некоторые другие параметры, которые также могут быть полезны).

Janc
источник
Я пытался сделать это, но я не знаю, какой UID мне следует использовать. Я читал, что это что-то вроде 501 для OSX, но учетная запись не является оригинальным пользователем OSX. Как я могу узнать эту информацию?
weberc2
@ weberc2: ls -l /media/YourHFSdisk/покажет вам uid и gid текущих файлов / папок. Диски HFS +, с которыми я сталкиваюсь, в основном принадлежат uid 99 и gid 99. Однако я пробовал различные комбинации настроек uid / gid / umask в команде mount, и это, похоже, ничего не изменило.
Mivk
Это не сработало для меня. Из документации: «uid / gid \ n Указывает пользователя / группу, которой принадлежат все файлы в файловой системе, которые имеют неинициализированные структуры разрешений». К сожалению, все файлы в моей файловой системе все еще принадлежат 501 (т.е. они имеют инициализированные структуры разрешений (?))
Колин
2

Я знаю, что это старо, но есть и другой способ, который, кажется, мне подходит. Поскольку все файлы принадлежали «корневому» пользователю, все, что я делал, было выдавать su rootиз терминала и ls -lah /media/Macintosh HDоттуда. Используя root, я смог обойти ошибку отказа в разрешении.

user236192
источник
простой и коварный
SYK
1

Мне удалось получить доступ к файлам со старого жесткого диска Macbook, запустив файловый менеджер с повышенными привилегиями.

gksudo thunar

Затем скопируйте файлы по мере необходимости.

Джон
источник
0

Это общий вариант, который я использую, работает отлично

mkdir /media/test
mkdir /media/diskhfs
mount /dev/sdb1 /media/test -o rw
bindfs -o perms=775,mirror=userorid --map=99/userorid:@99/@uderorid /media/test /media/diskhfs
rmil
источник