如何在 Ubuntu 中将 HFS 分区挂载为读/写?

GiH*_*GiH 189 mount hfs read-write ubuntu

我将我的外部硬盘驱动器(在我的 Mac 上格式化为 HFS+ 日志)插入到我的 Ubuntu 桌面 9.04 64 位。我无法通过写入功能安装驱动器,我该怎么做?现在我得到的只是读取权限,我试过了

sudo mount -t hfsplus /dev/sdf2 /media/"Portable HD"
Run Code Online (Sandbox Code Playgroud)

但这仍然给了我只读权限......想法?

小智 212

首先,确保你已经安装了hfsprogs。示例安装命令:

sudo apt-get install hfsprogs
Run Code Online (Sandbox Code Playgroud)

接下来,挂载或重新挂载 HFS+ 驱动器;命令需要如下:

sudo mount -t hfsplus -o force,rw /dev/sdx# /media/mntpoint
Run Code Online (Sandbox Code Playgroud)

或者

sudo mount -t hfsplus -o remount,force,rw /dev/sdx# /mount/point
Run Code Online (Sandbox Code Playgroud)

最后,如果驱动器未正确卸载或部分损坏,请运行fsck.hfsplus(由 Jayson在此处提供),如下所示:

sudo fsck.hfsplus /dev/sdx#
Run Code Online (Sandbox Code Playgroud)

  • 为什么这没有标记为答案? (20认同)
  • 我在 Ubuntu 12.04 上,重新安装命令应该是这样的`sudo mount -t hfsplus -o remount,force,rw /dev/sdx# /mount/point`。然后必须使用root来读/写数据。 (14认同)
  • 非常感谢您提供仅适用于 Linux 的解决方案!^_^ (7认同)
  • @Digiground 和 @Coc 都失败并显示 `mount: warning: /media/mount/point 似乎以只读方式安装。` 在安装了 hfsprogs 的 Ubuntu 13.04 上。 (4认同)
  • 如果磁盘有问题,它会固执地只挂载只读。使用磁盘工具验证/修复 OSX 中的磁盘,因为 fsck.hfplus 不会“因为它是日志文件系统”而运行。 (2认同)

Joh*_*n T 82

如果要从 Ubuntu 写入日志,则需要关闭日志。Ubuntu 仅支持写入非日志式 HFS+ 卷。

在 Mac 上:

  • 应用程序-> 实用程序下打开磁盘工具
  • 选择要禁用日记功能的卷。
  • 从文件菜单中选择禁用日记。(在以后的 Mac OS 版本中,您必须在单击“文件”菜单时按住选项按钮。或者,如果您喜欢Apple+ J

在 OS X Yosemite 10.10 之前,仍然可以禁用 HFS+ 的日记功能

  • 不,这不是日记的全部作用。它还有助于防止文件系统损坏,这种损坏可能严重到只能通过重新格式化才能修复。 (12认同)
  • 在 macos 10.6.8 中,在步骤 3 中,按下“option+alt”打开文件菜单 (8认同)
  • 请注意“不建议在 OS X 主分区上禁用日志,因为日志是任何文件系统的重要功能,可以防止损坏和数据丢失”(https://help.ubuntu.com/community/hfsplus) (5认同)
  • @JohnT 您能否提供“Ubuntu 仅支持写入非日志式 HFS+ 卷”这一事实的来源?我正在对 HFS+ 进行一些研究,这将非常有用。谢谢你。 (2认同)

miv*_*ivk 31

即使您没有禁用日志,您也可以在 Linux 中启用写入 HFS+。除了您已经拥有的 hfsplus 之外,您还需要安装 hfsprogs:

sudo apt-get install hfsprogs
Run Code Online (Sandbox Code Playgroud)

然后,使用该-o rw,force选项。

如果驱动器尚未安装:

sudo mount -o force /dev/sdX /your/mount/point
Run Code Online (Sandbox Code Playgroud)

如果驱动器已自动安装(因为它应该在像 Ubuntu 这样的桌面系统上),添加remount以启用写入:

sudo mount -o remount,rw,force /mount/point
Run Code Online (Sandbox Code Playgroud)

或者

sudo mount -o remount,rw,force /dev/sdx
Run Code Online (Sandbox Code Playgroud)

/mount/point通常是这样的/media/Your_drive_label/dev/sdx是您的 HFS+ 设备(例如/dev/sdb1)。

使用mount -l发现其设备已经安装在安装点。

如果 Mac 磁盘使用较新的 Apple“Core Storage”,您可能还需要添加一个sizelimit=N选项,如本答案中所述

最后,您仍然会遇到问题,您需要以 root 身份写入驱动器,或者bindfs按照此答案中的说明使用


小智 14

您是否尝试过匹配权限?

默认情况下,Mac OS X 在日志 HFS+ 卷中格式化卷。日志是一项提高数据可靠性的功能,不幸的是它使 HFS 驱动器在 Linux 中成为只读的。

要禁用日记功能,只需启动到 OS X 并启动磁盘工具。单击您的 HFS 分区,按住 Option 键,然后单击菜单栏中的文件。菜单中将出现一个禁用日记功能的新选项。单击它,然后重新启动到 Linux。您应该拥有对 HFS 分区的读写访问权限——但是,Mac 用户主文件夹的权限将阻止您读取或写入这些文件。我们只需要在一个操作系统中更改我们的 UID,使其与另一个操作系统中的 UID 匹配。除非您有其他选择的理由,否则我们将更改我们的 Linux UID 以匹配我们的 OS X UID,因为它更容易一些。默认情况下,OS X 中的第一个用户的 UID 为 501,但您可以通过进入 OS X 中的系统偏好设置、右键单击您的用户并点击高级选项来仔细检查这一点。

启动到 Linux(我们在本例中使用 Ubuntu)并启动终端。首先,我们将添加一个临时用户,因为我们不想编辑当前登录的用户。因此,在终端中运行以下命令,在每个命令后按 Enter:

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

sudo passwd tempuser
Run Code Online (Sandbox Code Playgroud)

出现提示时为临时用户输入新密码。重新启动并以临时用户身份登录。然后,打开终端并输入以下命令,在每个命令后再次按 Enter(并将您的用户名替换为您的 Linux 用户的用户名):

sudo usermod --uid 501 yourusername

sudo chown -R 501:yourusername /home/yourusername
Run Code Online (Sandbox Code Playgroud)

这会将您的 Linux 用户的 UID 更改为 501 并修复您的主文件夹权限,以便您仍然拥有它们。现在,无论您登录什么操作系统,您都应该能够读取和写入 Mac 和 Linux 用户的主文件夹。

您可能还想修复您的登录屏幕,因为默认情况下 Ubuntu 不会列出 UID 小于 1000 的用户。为此,只需打开一个终端并运行 gksudo gedit /etc/login.defs 并在其中搜索 UID_MIN文本文件。将该值从 1000 更改为 501,当您重新启动时,您的用户将列在登录屏幕中。

http://lifehacker.com/5702815/the-complete-guide-to-sharing-your-data-across-multiple-operating-systems