ปัญหาเกี่ยวกับการติดตั้งไดรฟ์ HFS +


12

ฉันมีปัญหาในการติดตั้งไดรฟ์ hfsplus บางตัว ฉันแค่ต้องการให้พวกเขาติดตั้งแบบอ่านอย่างเดียว (การปิดใช้งานเจอร์นัลไม่ใช่ตัวเลือก) ฉันได้ทำการวิจัยมากมายและพบว่าเนื่องจากการเปลี่ยนแปลงจากเคอร์เนลเวอร์ชัน 2.6.37 เป็น 2.6.38 ปัญหาเริ่มต้นขึ้น

มีลักษณะที่เชื่อมโยงนี้ที่ bugs.launchpad.net

ดังนั้นฉันจึงทดสอบกับเคอร์เนล Linux เวอร์ชัน 2.6.37 และที่ต่ำกว่าและทำงานได้ตามปกติ

รุ่นด้านบนรวมถึงรุ่นของฉันซึ่งเป็น 3.2.0-54-generic (ubuntu 12.04) ใช้งานไม่ได้กับการติดตั้งภาพและดิสก์ hfsplus ดังนั้นฉันต้องการโมดูล hfsplus จากเวอร์ชันทำงานเช่น 2.6.31-14-generic จาก ubuntu 9

ฉันใช้คำสั่งเหล่านี้ในกรณีนี้ด้วยอิมเมจ 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

ฉันต้องเพิ่มข้อมูลนี้เพื่อ "พิสูจน์" ว่าปัญหาเกิดขึ้นหลังจากเคอร์เนล 2.6.38 ลองดูที่สิ่งนี้ นั่นคือไดรเวอร์ NTFS und HFS + จาก Paragon

"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

เพื่อแก้ไขปัญหาฉันเพิ่งคัดลอก/lib/modules/2.6.27/kernel/fs/hfsplus.koไปยังเคอร์เนล 3.2.0-54-generic ปัจจุบันของฉัน แต่นั่นไม่ได้ผล ฉันจะทำให้ส่วน hfsplus ทำงานในเคอร์เนลปัจจุบันของฉัน 3.2.0-54-ubuntu 12.04 linux ได้อย่างไร หรือวิธีการแก้ไขเคอร์เนลให้ทำงานเหมือนใน 2.6.37

คำแนะนำที่ดีที่สุดที่ผมไม่เห็นเป็นอย่างใดอย่างหนึ่ง

คำตอบ:


18

คำถามนี้ค่อนข้างเก่า แต่ฉันเจอในขณะที่พยายามเมาต์พาร์ติชัน HFS + ในสถานการณ์เดียวกันและพบวิธีแก้ปัญหา ฉันไม่แน่ใจว่ามันเกี่ยวข้องกับเคอร์เนลเวอร์ชั่นได้อย่างไร 3.13 (3.13.7-1 x86_64, Debian)

คำตอบสั้น ๆ

จัดเตรียมขนาดของพาร์ติชันรวมถึงออฟเซ็ต

คำตอบที่ยาว

ก่อนรับข้อมูลของพาร์ติชันจากแยกเป็นไบต์ คุณต้องใช้หมายเลขเริ่มต้นและขนาด นี่คือตัวอย่างของเซสชันที่แยกส่วน (อย่างที่คุณสามารถเดาได้รูปภาพฮาร์ดไดรฟ์ของฉันคือ /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

ถ้าฉันพยายามที่จะติดตั้งพาร์ติชันด้วยการให้ออฟเซ็ต (เริ่มต้น) ฉันได้รับข้อผิดพลาดเดียวกับคุณ:

# 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

โดยวิธีการที่คุณไม่จำเป็นต้องใช้ losetup ติดตั้งจะให้คุณโดยอัตโนมัติ ตอนนี้ถ้าฉันเพิ่มขนาดพาร์ติชัน (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)

4
โซลูชันของคุณดูแลข้อความ "ส่วนหัวรองที่ไม่ถูกต้อง" สำหรับฉัน แต่ข้อผิดพลาด "ไม่สามารถค้นหา HFS + superblock" ยังคงมีอยู่ :(
krumpelstiltskin

1
ยังคงได้รับข้อผิดพลาดทั้งใน dmesg แม้ว่าฉันจะระบุทั้งชดเชยและ sizelimit
wkarl

ไม่ชัดเจนว่า offset ควรเป็นอะไรสำหรับฉันNumberอุปกรณ์ของฉันคือ 1 และoffset=1และoffset=0ทั้งคู่ล้มเหลว
MichaelChirico

16

สำหรับใครก็ตามที่สะดุดกับคำถามนี้ในขณะที่มองหาข้อความแสดงข้อผิดพลาดเดียวกันโปรดทราบว่ามีสาเหตุอื่นที่เป็นไปได้สำหรับข้อผิดพลาดนี้

ในขณะที่คำตอบที่ mcy จัดทำขึ้นหากพาร์ติชันนั้นเป็นพาร์ติชัน HFS + จริง ๆ เริ่มต้นด้วย OSX Yosemite ประเภทพาร์ติชั่นเริ่มต้นสำหรับ Mac คือ "Core Storage" ซึ่งใช้สำหรับจัดการโลจิคัลวอลุ่ม ซึ่งหมายความว่าสิ่งที่คุณต้องการติดตั้งจริงคือโลจิคัลวอลุ่ม (โดยใช้ HFS + filesytem) ภายในพาร์ติชัน "Core Storage"

หากต้องการดูว่าพาร์ติชันของคุณเป็นประเภท "Apple Core Storage" คุณสามารถใช้gdisk: AF05เป็นรหัสสำหรับ "Apple Core Storage" ในขณะที่af00เป็นรหัสสำหรับ "Apple HFS / HFS +"

หากดิสก์ของคุณใช้ "Apple Core Storage" คุณสามารถใช้คำแนะนำที่ให้ไว้ในคำตอบนี้เพื่อติดตั้ง


1
ขอบคุณ! นี่เป็นปัญหาที่ฉันกำลังเผชิญอยู่ โซลูชันที่เชื่อมโยงทำงานได้ดี
Michael Ambrose
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.