Kra*_*ayt 13 linux mount kernel ubuntu hfs+
我在安装一些 hfsplus 驱动器时遇到问题。我只需要它们以只读方式安装。(禁用日志不是一种选择)我做了很多研究,发现由于从内核版本 2.6.37 到 2.6.38 的更改,问题开始了。
在 bugs.launchpad.net 上查看此链接。
因此,我使用 Linux 内核版本 2.6.37 及更低版本对其进行了测试,它应该可以正常工作。
以上版本,包括我的 3.2.0-54-generic(ubuntu 12.04) 版本在安装 hfsplus 图像和磁盘时无法正常工作。所以我需要来自 ubuntu 9 的 2.6.31-14-generic 等工作版本的 hfsplus 模块。
在这种情况下,我将这些命令与 HFS+ DD 图像一起使用。但是我使用其他 hfsplus 物理驱动器和其他图像进行了此操作。它们都适用于内核 2.6.37 及更低版本,但不适用于较新版本:
sudo losetup -d /dev/loop0
sudo losetup /dev/loop0 -o $((512*409640)) /folder/iMac_21.dd
sudo mount -t hfsplus /dev/loop0 /mnt/hfs
mount: wrong fs type, bad option, bad superblock on /dev/loop0,
missing codepage or helper program, or other error
dmesg | tail
[84980.380254] hfs: invalid secondary volume header
Run Code Online (Sandbox Code Playgroud)
我必须将此信息添加到“证明”问题出在内核 2.6.38 之后。看看这个。那是 Paragon 的 NTFS 和 HFS+ 驱动程序。
"What's new in Paragon NTFS & HFS+ for Linux 8.5:
Support for modern Linux Kernels (up to 2.6.38);"
paragon-software.com/home/ntfs-linux-per/features.html
Run Code Online (Sandbox Code Playgroud)
为了解决这个问题,我刚刚复制/lib/modules/2.6.27/kernel/fs/hfsplus.ko
到我当前的 3.2.0-54-generic 内核。但这没有用。如何将工作 hfsplus 部分放入我当前的 3.2.0-54-generic 内核 ubuntu 12.04 linux?或者如何修复我的内核使其像 2.6.37 一样工作?
我确实看到的最好的提示是这个。
小智 18
这个问题有点老了,但我在相同情况下尝试挂载 HFS+ 分区时遇到了它,并找到了解决方案。我不太确定它与内核版本有什么关系,我的是 3.13(3.13.7-1 x86_64,Debian)。
提供分区的大小及其偏移量。
首先从 Parted 中获取分区的信息,以字节为单位;你需要开始和大小数字。这是 Parted 会话的示例(您可以猜到,我的硬盘映像是 /mnt/macbook.dd):
$ /sbin/parted /mnt/macbook.dd
WARNING: You are not superuser. Watch out for permissions.
GNU Parted 2.3
Using /mnt/macbook.dd
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) unit
Unit? [compact]? b
(parted) p
Model: (file)
Disk /mnt/macbook.dd: 160041885696B
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags
1 20480B 209735679B 209715200B fat32 EFI system partition boot
2 209735680B 159907647487B 159697911808B hfs+ Customer
Run Code Online (Sandbox Code Playgroud)
如果我尝试通过仅提供偏移量(开始)来挂载分区,则会收到与您相同的错误:
# mount -v -t hfsplus -o ro,loop,offset=209735680 /mnt/macbook.dd /media/mac
mount: enabling autoclear loopdev flag
mount: going to use the loop device /dev/loop0
mount: wrong fs type, bad option, bad superblock on /dev/loop0,
missing codepage or helper program, or other error
In some cases useful info is found in syslog - try
dmesg | tail or so
# dmesg | tail -n2
[117791.463123] hfsplus: invalid secondary volume header
[117791.463132] hfsplus: unable to find HFS+ superblock
Run Code Online (Sandbox Code Playgroud)
顺便说一句,您不需要使用 lossup,mount 会自动为您完成。现在,如果我添加分区的大小(sizelimit),它就可以完美运行:
# mount -v -t hfsplus -o ro,loop,offset=209735680,sizelimit=159697911808 /mnt/macbook.dd /media/mac
mount: enabling autoclear loopdev flag
mount: going to use the loop device /dev/loop0
/mnt/macbook.dd on /media/mac type hfsplus (ro,offset=209735680,sizelimit=159697911808)
Run Code Online (Sandbox Code Playgroud)
小智 18
对于在查找相同错误消息时遇到此问题的任何其他人,请注意此错误还有另一个可能的原因。
如果分区实际上是 HFS+ 分区,mcy 提供的答案应该可以工作,但从 OSX Yosemite 开始,Mac 的默认分区类型是“核心存储”,用于处理逻辑卷。这意味着您实际想要挂载的是“核心存储”分区内的逻辑卷(使用 HFS+ 文件系统)。
要查看您的分区是否属于“Apple Core Storage”类型,您可以使用gdisk
:AF05
是“Apple Core Storage”af00
的代码,而是“Apple HFS/HFS+”的代码。
如果您的磁盘使用“Apple Core Storage”,您可以使用本答案中提供的指南来安装它。
归档时间: |
|
查看次数: |
22811 次 |
最近记录: |