无法从 Ubuntu 14.04 访问 Mac OS X 分区

无法从 Ubuntu 14.04 访问 Mac OS X 分区

我的 Macbook Pro 6,2(2010 年中)有一块 1 TB 的硬盘,其中 900 GB 用于 Mac OS X,100 GB 用于 Ubuntu 14.04。我希望能够读取安装了 OS X 的 HFS+ 分区中的文件,以便听音乐、看视频文件等。

我通过登录使用 sudo 权限创建的第二个帐户并运行以下命令更改了我的 Ubuntu 帐户的 UID(其中用户名是我的登录用户名):

sudo usermod -u 501 -g 20 username
sudo chown -R username: /home/username

当我重新登录时,仍然收到“您没有查看‘Macintosh HD’内容所需的权限”的提示。在进行故障排除时,我将主帐户的 UID 和 GID 改回 1000,并创建了一个新用户帐户,并在该帐户上更改了 UID 和 GID。此帐户现在具有 HFS+ 卷的读取权限 - 但当我删除它并对主帐户执行完全相同的操作时,我收到了相同的错误。

是否可以更改我的主帐户的 UID 和 GID,以便我有权读取 HFS+ 卷?

编辑:这是我尝试访问文档时出现的问题的屏幕截图。桌面、下载、Dropbox、Google Drive、库、电影、音乐和图片都出现了同样的错误 - 但其他任何(可见)文件夹都没有出现。还没有尝试进入 /.wine 或任何东西。

这是该问题的屏幕截图。

编辑:根据 Thomas W. 的建议,我运行了sudo ls -al folder,其中folder是放置 Documents 的文件夹。这是输出:

bzodonnell@bzodonnell-MacBookPro:~$ sudo ls -al /media/bzodonnell/MacOS/Users/bzodonnell
total 232
drwxr-xr-x 1  501 dialout     61 May  4 15:57 .
drwxr-xr-x 1 root      80      5 Oct 20  2014 ..
drwxr-xr-x 1  501 dialout     20 Apr  7 13:11 adarkroom
drwxr-xr-x 1  501 dialout     15 Mar  5 09:27 .android
drwxr-xr-x 1  501 dialout      7 Mar  9 18:44 AndroidStudioProjects
-rw-r--r-- 1  501 dialout    638 Feb 17  2014 .anyconnect
drwxr-xr-x 1  501 dialout     90 May  5 11:48 Applications
-rw------- 1  501 dialout  18776 May  5 16:56 .bash_history
-rw-r--r-- 1  501 dialout    334 Oct 29  2014 .bash_profile
-rw-r--r-- 1  501 dialout    167 Jul 10  2014 .bash_profile.pysave
drwxr-xr-x 1  501 dialout      7 Apr 30 13:11 .cache
drwxr-xr-x 1  501 dialout    156 May  2 13:13 Calibre Library
-r-------- 1  501 dialout      7 Apr  4 11:10 .CFUserTextEncoding
drwxr-xr-x 1  501 dialout      4 Mar  6  2014    .com.stirfirestudios.freedomfall.macos
drwxr-xr-x 1  501 dialout      7 Apr 19 14:17 .config
drwx------ 1  501 dialout      3 Sep  8  2010 .cups
drwxr-x--- 1  501 dialout      6 Apr 15 15:12 .denemo-1.2.2
drwx------ 1  501 dialout     14 May  6 17:04 Desktop
drwx------ 1  501 dialout     19 May  5 11:09 Documents
drwx------ 1  501 dialout    207 May  5 15:13 Downloads
drwx------ 1  501 dialout     12 May  7 08:16 .dropbox
drwx------ 1  501 dialout     73 May  7 09:23 Dropbox
-rw-r--r-- 1  501 dialout  22532 May  5 15:17 .DS_Store
drwx------ 1  501 dialout      3 Apr 14 18:01 .emacs.d
drwxr-xr-x 1  501 dialout     45 Apr 15 14:46 .fontconfig
drwxr-xr-x 1  501 dialout     10 Apr 27 19:25 .git
-rw-r--r-- 1  501 dialout    151 Apr  7 13:24 .gitconfig
drwx------ 1  501 dialout      2 Apr 15 14:44 .gnome2
drwx------ 1  501 dialout     43 Jun 18  2014 Google Drive
drwxr-xr-x 1  501 dialout      4 Feb 26 10:59 .gradle
drwxr-xr-x 1  501 dialout      4 Oct 29  2014 .idlerc
drwxr-xr-x 1  501 dialout      8 Apr 15 14:44 .inkscape-etc
-rw------- 1  501 dialout     35 May  3 17:02 .lesshst
drwx------ 1  501 dialout     71 Apr  4 11:10 Library
drwxr-xr-x 1  501 dialout      9 Apr 15 15:12 .lilypond-fonts.cache-2
drwxr-xr-x 1  501 dialout      3 Feb  9 11:18 .local
drwx------ 1  501 dialout      8 May  2  2011 Movies
drwx------ 1  501 dialout      9 Feb 20 10:33 Music
drwxrwxrwx 1  501 dialout      3 Jul  2  2014 .nchsoftware
drwxr-xr-x 1  501 dialout      9 Apr 30 14:09 PCSX2
drwxr-xr-x 1  501 dialout     11 Apr  6 10:18 .pia_manager
-rw-r--r-- 1  501 dialout 130030 May  7 09:54 .pia_manager_crash.log
drwx------ 1  501 dialout     11 Apr 16 07:10 Pictures
drwxr-xr-x 1  501 dialout      6 Jul 10  2013 Public
drwxr-xr-x 1  501 dialout      6 Apr 15 23:39 .qgis2
drwxr-xr-x 1  501 dialout      3 Feb 20  2014 .R
-rw-r--r-- 1  501 dialout    225 Dec  3  2013 .Rapp.history
-rw-r--r-- 1  501 dialout  16419 Feb  9 14:02 .Rhistory
-rw------- 1  501 dialout   1024 May  3 17:25 .rnd
drwxr-xr-x 1  501 dialout     16 Feb 19 17:24 .rstudio-desktop
drwxr-xr-x 1  501 dialout      6 Jul  3  2014 Sites
drwxr-xr-x 1  501 dialout      8 Apr 15 13:45 stencylworks
-rw-r--r-- 1  501 dialout    123 Apr 15 13:52 StencylWorks.prefs
drwxr-xr-x 1  501 dialout      6 Jun  1  2012 .subversion
drwxr-xr-x 1  501 dialout      4 Apr 14 22:31 .thumbnails
drwx------ 1  501 dialout     25 May  6 16:59 .Trash
-rw------- 1  501 dialout    849 Apr 14 18:00 .viminfo
drwxr-xr-x 1  501 dialout      8 May  4 15:59 .wine
drwxr-xr-x 1  501 dialout     10 May  3 19:51 .wine-brothers
drwxr-xr-x 1  501 dialout      9 May  1 09:25 .wine-steam
-rw------- 1  501 dialout      0 Apr 20 18:17 .Xauthority

编辑:这是我输入的内容,以确保目录已正确安装。我在运行上述代码之前输入了这些内容。

bzodonnell@bzodonnell-MacBookPro:~$ sudo umount /dev/sda2
bzodonnell@bzodonnell-MacBookPro:~$ id
uid=1000(bzodonnell) gid=1000(bzodonnell) groups=1000(bzodonnell),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),108(lpadmin),124(sambashare)
bzodonnell@bzodonnell-MacBookPro:~$ sudo mount -t hfsplus -o uid=1000,gid=1000 /dev/sda2 /media/bzodonnell/MacOS
mount: warning: /media/bzodonnell/MacOS seems to be mounted read-only.

答案1

如果您已经更改了uidgid,请立即将它们改回来,然后再阅读这个答案的第一部分。

除非你真的知道自己在做什么,你永远不应该去改变你的uidgid只是安装一个驱动器,因为你可能会破坏计算机中的其他权限,并可能失去对 Linux 分区中你自己的主目录的访问权限。


通常,当您安装驱动器时,您会传递参数以提供uidgid作为安装选项,以指定用户/组所有权,以及其他重要的权限掩码参数和其他参数(这通常使用vfat或分区完成,但它适用于大多数分区类型,特别是那些不遵守 Linux 权限系统的分区类型)。虽然这通常是作为特定分区或媒体的持久选项文件的ntfs一部分完成的,但如果您愿意,您可以手动为给定命令提供选项。/etc/fstabmount

使用以下命令进行挂载应该可以完成您需要的操作,而无需修改您自己的用户的 UID 或 GID。这将在 中创建一个 MacOS 文件夹/media/username/,我们将在其中挂载驱动器分区:

sudo mkdir -R /media/username/MacOS
sudo chown --recursive username:username /media/username
sudo mount -t hfsplus -o uid=USERUID,gid=USERGID /dev/sdx /media/username/MacOS

用实际的分区标识符替换/dev/sdx,并将所有“用户名”替换为用户名。同样,将USERID和替换USERGID为实际值。

为了使其持久地可供用户安装,您应该添加一个 fstab 条目,允许用户安装和卸载驱动器,同时相应地提供uidgid

(注:uidgid论据来自kernel.org 文档。您必须具有读取分区的先决条件库hfsplus才能使其工作。)

相关内容