Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.
Status
The first post of this thread is a WikiPost and can be edited by anyone with the appropiate permissions. Your edits will be public.

joevt

macrumors 604
Jun 21, 2012
6,974
4,262
What does the directory structure look like when using an XPF helper disk? I used it a long time ago and I can't seem to remember what it looks like.
There's an invisible .XpostFacto folder on the Helper disk. The period makes it invisible in Mac OS X. The folder has the invisible Finder flag set so it's also invisible in Mac OS 9 also.

There's XPostFacto debug options to make the folder not invisible. Or you can use the defaults write command to make invisible files visible in the Finder (if the version of Mac OS X is not new enough to support the Command-Shift-Period key press).
https://nordlocker.com/blog/how-to-show-hidden-files-mac/

The .XpostFacto folder contains nested folders for each node of the Open Firmware device path to the root device and inside the last folder is a copy of /System/Library/Extensions from the root volume.

Code:
BootX.image    // 4.0.2, © 2001 - 2005 Other World Computing
.XPostFacto/pci1/@E/@2/@0;28/
    mach_kernel
    System
        Library
            Extensions
                - all the kexts, plugins, anything from the /S*/L*/E* folder of the root partition -
The : that is normally used in an Open Firmware path is replaced with ; since : is the path node separator for classic Mac OS (instead of / which is used for Unix).

This is with XPostFacto 4. I'm not sure if the earlier versions of XPostFacto were the same. I have what appears to be another helper partition from 2004 when last I played with XPostFacto. It's a Mac OS 9.2 partition but it has these files:
Code:
BootX.image    // 3.0.0b2, © 2001 - 2004 Other World Computing
.XPostFacto
    XPostFacto Prefs
    scsi-int/@3;3
        mach_kernel
        Library
            Extensions
                - only 20 kexts from XPostFacto -
        System
            Library
                Extensions.mkext
                Extensions
                    AppleRAID.kext
                    AppleNDRV
                        ATIDriver.bundle
                        ATIRuntimeDriver.bundle

Also on this Mac OS 9.2 partition are these from 2003 or 2004:
Code:
Library/StartupItems/XPFStartupItem
private/tmp
    mach_kernel
    Library
        Extensions
            - only 15 kexts from XPostFacto -
    System/Library/Extensions.mkext
System/Library
    Extensions.mkext
    CoreServices
        .disk_label (from today)
        .disk_label.contentDetails (from today)
        BootX
    Extensions
        - only 20 kexts from XPostFacto -

None of these three cases is a full Mac OS X installation. I've deleted the old helpers. I'll just be working with my latest XPostFacto 4 stuff. I'll have to verify if it's still compatible with my 10.3 and 10.2 partitions.
 
  • Like
Reactions: Amethyst1

flyproductions

macrumors 65816
Jan 17, 2014
1,089
466
There's an invisible .XpostFacto folder on the Helper disk. The period makes it invisible in Mac OS X. The folder has the invisible Finder flag set so it's also invisible in Mac OS 9 also.
When i try to use the XPF's helper disk, i wants to install/"update" a whole bunch of kexts. So it only installs them to this invisible folder, leaving the "real" system on that disk untouched? (Would be) Good to now as i am/was a bit afraid it could corrupt the actual system by replacing new kexts with older ones just becaus the new ones are "unknown".

So how does/should XPF manage the "overtaking" of the volume one wishes the "helper" to help booting? In my case this just did not happen and it finished the boot with the "helper"'s root system.
 

joevt

macrumors 604
Jun 21, 2012
6,974
4,262
When i try to use the XPF's helper disk, i wants to install/"update" a whole bunch of kexts. So it only installs them to this invisible folder, leaving the "real" system on that disk untouched? (Would be) Good to now as i am/was a bit afraid it could corrupt the actual system by replacing new kexts with older ones just becaus the new ones are "unknown".
You know you can copy the Extensions folder to somewhere else, do the update, and diff the folders to see what changed? Also check the XPostFacto log file.
I think XPostFacto shows kext version numbers before doing update.

So how does/should XPF manage the "overtaking" of the volume one wishes the "helper" to help booting? In my case this just did not happen and it finished the boot with the "helper"'s root system.
Did you check the output of mount or df to see what disk is / ?

I am currently updating my dumpvols.sh script to show Apple Partition Map info, Boot Block info, HFS Wrapper info, HFS partition info, HFS+ partition info, patch info, etc.

On my disk, the Helper partition is partition #20.
Code:
  14:                  Apple_HFS ⁨Helper1⁩                 939.5 MB   disk12s20


The helper partition has its partition map entry modified for booting on Old World Macs.
Code:
20:    1835008 @ 22547240   Type:"Apple_HFS" Name:"Untitled" Status:4000007F=,Valid,Allocated,InUse,Bootable,Readable,Writeable,BootCodePositionIndependent,MountedAtStartup LgBootStart:208256 BootSize:425984 BootAddr:0x05600000 BootEntry:0x0560A1A4 Processor:"powerpc"

The helper partition contains info in the two boot blocks. Here's the first boot block. It contains 68K code at offset 4 which jumps to offset 0x8C.
Code:
APM 20 @ 22547240:
00000000: 4c4b 6000 0086 4418 0000 0653 7973 7465  LK`...D....Syste
00000010: 6d00 0000 0000 0000 0000 0646 696e 6465  m..........Finde
00000020: 7200 0000 0000 0000 0000 074d 6163 7342  r..........MacsB
00000030: 7567 0000 0000 0000 0000 0c44 6973 6173  ug.........Disas
00000040: 7365 6d62 6c65 7200 0000 0d53 7461 7274  sembler....Start
00000050: 5570 5363 7265 656e 0000 0646 696e 6465  UpScreen...Finde
00000060: 7200 0000 0000 0000 0000 0943 6c69 7062  r..........Clipb
00000070: 6f61 7264 0000 0000 0000 000a 0014 0000  oard............
00000080: 4300 0000 8000 0002 0000 4a78 028e 6b46  C.........Jx..kF
00000090: 2078 02ae 3228 0008 7cfe 5446 303b 603c   x..2(..|.TF0;`<
000000a0: 6758 b240 66f4 0c01 0076 6210 2078 02a6  gX.@f....vb. x..
000000b0: d1fa ffd4 a057 21f8 02a6 0118 584f 2e0f  .....W!.....XO..
000000c0: 6138 323b 6022 4a40 6704 323b 6024 2078  a82;`"J@g.2;`$ x
000000d0: 02ae 4ef0 1000 7062 a9c9 0075 0276 0178  ..N...pb...u.v.x
000000e0: 037a 067c 0000 0a44 090e 0f1c 30e6 1d96  .z.|...D....0...
000000f0: 0b82 0a52 11ae 336e 203e 41fa ff0e 43f8  ...R..3n >A...C.
00000100: 0ad8 7010 a02e 41fa ff12 43f8 02e0 7010  ..p...A...C...p.
00000110: a02e 41fa ff56 43f8 0970 21c9 096c 7010  ..A..VC..p!..lp.
00000120: a02e 303a ff58 a06d 303a ff50 a06c 2047  ..0:.X.m0:.P.l G
00000130: 3178 0210 0016 a00f 6654 42a8 0012 4268  1x......fTB...Bh
00000140: 001c a207 6640 2868 005e 2168 005a 0030  ....f@(h.^!h.Z.0
00000150: 6710 217c 4552 494b 001c 7001 a260 6626  g.!|ERIK..p..`f&
00000160: a015 554f a995 4a5f 6b1a 594f 2f3c 626f  ..UO..J_k.YO/<bo
00000170: 6f74 3f3c 0002 a9a0 201f 6712 584f 2640  ot?<.... .g.XO&@
00000180: 2053 4ed0 702b 3f00 2047 a00e 301f 4e75   SN.p+?. G..0.Nu
00000190: dada dada dada dada dada dada dada dada  ................
000001a0: dada dada dada dada dada dada dada dada  ................
000001b0: dada dada dada dada dada dada dada dada  ................
000001c0: dada dada dada dada dada dada dada dada  ................
000001d0: dada dada dada dada dada dada dada dada  ................
000001e0: dada dada dada dada dada dada dada dada  ................
000001f0: dada dada dada dada dada dada dada dada  ................
 
  • Like
Reactions: Amethyst1

flyproductions

macrumors 65816
Jan 17, 2014
1,089
466
Did you check the output of mount or df to see what disk is / ?
Yes!

When booted quad SORBET, i set the boot volume in XPostFacto to quad BACKUP (which is on a not bootable AHCI SSD blade) with the "Helper" set to quad SORBET (wich is on a SSD attached to one of the onboard SATA-ports and boots fine).

Rebooting, i got this:

boot disk.jpg

Seems to have booted from the volume quad LEOPARD which holds 10.5.8 and is on a SSD attached to the other onboard SATA. This is also, what "About this Mac" shows.

Also in XPF i get this...

XPF error.jpg

...error message for all volumes on the machine, while as, mentioned, quad SORBET as well as quad LEOPARD are booting fine.
 
  • Like
Reactions: Amethyst1

flyproductions

macrumors 65816
Jan 17, 2014
1,089
466
There's an invisible .XpostFacto folder on the Helper disk. The period makes it invisible in Mac OS X. The folder has the invisible Finder flag set so it's also invisible in Mac OS 9 also.
...

The .XpostFacto folder contains nested folders for each node of the Open Firmware device path to the root device and inside the last folder is a copy of /System/Library/Extensions from the root volume.
In my case the invisible .XPostFacto-Folder on the root-level of the "Helper"-volume sadly only contains a prefs-file.

xpf folder.jpg

Also sadly all that the XPF-Log is still showing, is this:

XPF Log.jpg

As far as i read this, it claims to have created some "XPFBootableDevice"s in some /dev/rdisk*-Folder on the root level of the given "Helper". But, if i look into this /dev-folders, they are empty (even with unvisibles made visible). So, assuming, this "rdisk" is for RAM-disk, aren't these only temporary and gone at the latest with the next reboot? So how could this possibly work at all?
 
  • Like
Reactions: Amethyst1

Amethyst1

macrumors G3
Oct 28, 2015
9,832
12,248
So, assuming, this "rdisk" is for RAM-disk, aren't these only temporary and gone at the latest with the next reboot? So how could this possibly work at all?
/dev/rdisk is not related to RAM disks. It means "raw disk" and points to the drive. As for the difference between /dev/disk and /dev/rdisk:

/dev/rdisk nodes are character-special devices, but are "raw" in the BSD sense and force block-aligned I/O. They are closer to the physical disk than the buffer cache. /dev/disk nodes, on the other hand, are buffered block-special devices and are used primarily by the kernel's filesystem code.
 
  • Like
Reactions: flyproductions

joevt

macrumors 604
Jun 21, 2012
6,974
4,262
When booted quad SORBET, i set the boot volume in XPostFacto to quad BACKUP (which is on a not bootable AHCI SSD blade) with the "Helper" set to quad SORBET (wich is on a SSD attached to one of the onboard SATA-ports and boots fine).

Rebooting, i got this:

View attachment 2120962
Seems to have booted from the volume quad LEOPARD which holds 10.5.8 and is on a SSD attached to the other onboard SATA. This is also, what "About this Mac" shows.
Maybe when you restart from XPostFacto, you can go into Open Firmware to check if the nvram variables were updated properly.

Also in XPF i get this...

View attachment 2120963
...error message for all volumes on the machine, while as, mentioned, quad SORBET as well as quad LEOPARD are booting fine.
I am updating the error messages in XPostFacto so they make more sense and so it can show more than one problem at a time. HFS+ wrapper is not required for New World Macs. In this case I changed the message for New World Macs to explain that it's ok and I changed the icon to a note alert. I didn't get rid of that message in case you want to use the drive on an Old World Mac.

In my case the invisible .XPostFacto-Folder on the root-level of the "Helper"-volume sadly only contains a prefs-file.

View attachment 2120978
Also sadly all that the XPF-Log is still showing, is this:

View attachment 2120984
As far as i read this, it claims to have created some "XPFBootableDevice"s in some /dev/rdisk*-Folder on the root level of the given "Helper". But, if i look into this /dev-folders, they are empty (even with unvisibles made visible). So, assuming, this "rdisk" is for RAM-disk, aren't these only temporary and gone at the latest with the next reboot? So how could this possibly work at all?
XPFBootableDevice is just the name of a C++ class in the code. It's not a file. It's just telling you what disks it finds.

I'll have to test XPostFacto on my Quad G5 to see what happens when a helper disk is selected.

For now you can try the XPostFacto debug version which I am in the middle of testing.
https://www.dropbox.com/s/kau17av460hrv02/XPostFacto Debug.zip?dl=0

I've also attached an updated dumpvols.sh script.
https://gist.github.com/joevt/a99e3af71343d8242e0078ab4af39b6c

dumpvols.sh is used like this:
sudo ./dumpvols.sh > dumpMacPro.txt 2>&1
Now you can use it with a single disk:
sudo ./dumpvols.sh disk12 > dumpMacProdisk12.txt 2>&1

For HFS partitions, it outputs info from the Master Directory Block and the alternate Master Directory Block.
It does the same for HFS+ partitions with the HFS Plus Volume Header.
The alternate block is output after the main block.

For HFS Wrappers, the blocks exist in this order: MDB, HFS wrapper data, HFS+ header, HFS+ data, alternate HFS+ header, alternate MDB.
dumpvols.sh dumps the blocks in this order: MDB, alternate MDB, HFS+ header, alternate HFS+ header.

The alternates are a kind of backup and are not updated all the time when the main block is updated (only some changes trigger an update of the alternates).
 

Attachments

  • dumpvols.sh.zip
    9.3 KB · Views: 129

joevt

macrumors 604
Jun 21, 2012
6,974
4,262
for what its worth I often get the Missing HFS wrapper alert myself, but even on pretty much all my Old World macs, everything has always booted up just fine

Go figure!
I suppose I should try booting Tiger without helper and without HFS wrapper before trying to wrap a wrapper around my HFS+ Tiger partition.

You can use dumpvols.sh to check for wrapper or no wrapper.
 
  • Like
Reactions: Amethyst1

flyproductions

macrumors 65816
Jan 17, 2014
1,089
466
Maybe when you restart from XPostFacto, you can go into Open Firmware to check if the nvram variables were updated properly.
Thanks! But i tend to avoid XPF on the Quad for now as i digs deep inside the guts of the system, leading to unexpected behaviour in some cases (i. e. disabeling the system's startup disk control panel), without doing any good on the other side.

Here is a complete list of the kexts, XPF installs,... (pic is photoshopped to get them all in one)

xpf_kexts.jpg


...while i still don't know, where it installs them to. "quad SORBET's" (which was the intended "Helper" in this case) main extensions folder seemed to be left untouched. And a spotlight-search for any of them came up with nothing at all.
 

DearthnVader

Suspended
Dec 17, 2015
2,207
6,392
Red Springs, NC
Thanks! But i tend to avoid XPF on the Quad for now as i digs deep inside the guts of the system, leading to unexpected behaviour in some cases (i. e. disabeling the system's startup disk control panel), without doing any good on the other side.

Here is a complete list of the kexts, XPF installs,... (pic is photoshopped to get them all in one)

View attachment 2121700

...while i still don't know, where it installs them to. "quad SORBET's" (which was the intended "Helper" in this case) main extensions folder seemed to be left untouched. And a spotlight-search for any of them came up with nothing at all.
You guys are killing me;-)

I made a thread for exploring using redirect to boot from "unsupported" drives, please use that thread.

This thread is great, has a lot of great info, however it's very hard to find all that info within the thread.

It's becoming a catchall mega thread that won't do people a whole lot of good without reading the entire thread.

Spotlight can't search hidden folders, like XPF installs these kexts into the invisible XPF folder.
 
  • Like
Reactions: flyproductions

flyproductions

macrumors 65816
Jan 17, 2014
1,089
466
You guys are killing me;-)

I made a thread for exploring using redirect to boot from "unsupported" drives, please use that thread.
Yes! You are perfectly right! has nothing to do with however powerful grapics cards whatsoever anymore.

So sorry for starting the OT here. Further questions to this topic from my side will be asked in the correct thread from now on.
 

joevt

macrumors 604
Jun 21, 2012
6,974
4,262
I am currently updating my dumpvols.sh script to show Apple Partition Map info, Boot Block info, HFS Wrapper info, HFS partition info, HFS+ partition info, patch info, etc.

On my disk, the Helper partition is partition #20.
Code:
  14:                  Apple_HFS ⁨Helper1⁩                 939.5 MB   disk12s20

The helper partition has its partition map entry modified for booting on Old World Macs.
Code:
20:    1835008 @ 22547240   Type:"Apple_HFS" Name:"Untitled" Status:4000007F=,Valid,Allocated,InUse,Bootable,Readable,Writeable,BootCodePositionIndependent,MountedAtStartup LgBootStart:208256 BootSize:425984 BootAddr:0x05600000 BootEntry:0x0560A1A4 Processor:"powerpc"

The helper partition contains info in the two boot blocks. Here's the first boot block. It contains 68K code at offset 4 which jumps to offset 0x8C.

I suppose I should try booting Tiger without helper and without HFS wrapper before trying to wrap a wrapper around my HFS+ Tiger partition.

You can use dumpvols.sh to check for wrapper or no wrapper.
iPartition.app from Coriolis Systems has an option to add an HFS Wrapper. The option exists in all versions but I didn't have success with newer versions so I used iPartition 3.3.1 in Mac OS X 10.6.8 on my Mac Pro 2008. For a 30 GB HFS+ partition, the HFS wrapper uses 4864 blocks of free space before the partition and 602 blocks after the partition. 5466 blocks total (512 byte blocks). The number of blocks before the partition depends on the size of the partition for the bad blocks list in the wrapper which covers the HFS+ partition to prevent it from being modified when you write to the HFS wrapper. If there's not enough free space, then iPartition may offer to move the HFS+ partition. So you can use iPartition to shrink the non-wrapped partition and the partition that exists before the non-wrapped partition. Then you add the HFS Wrapper. Then you can grow the partitions that you shrunk to fill any remaining space. The Leopard Disk Utitlity.app likes to put 128K free partitions before each HFS+ partition, so take that into consideration when you grow the partitions.

Code:
Partition map (with 512 byte blocks) on '/dev/disk8'
 #:                type name               length   base      ( size )
 1: Apple_partition_map Apple                  63 @ 1        
 2:      Apple_Driver43*Macintosh              56 @ 64       
 3:      Apple_Driver43*Macintosh              56 @ 120      
 4:    Apple_Driver_ATA*Macintosh              56 @ 176      
 5:    Apple_Driver_ATA*Macintosh              56 @ 232      
 6:      Apple_FWDriver Macintosh             512 @ 288      
 7:  Apple_Driver_IOKit Macintosh             512 @ 800      
 8:       Apple_Patches Patch Partition       512 @ 1312     
 9:          Apple_Free                    262144 @ 1824      (128.0M)
10:           Apple_HFS MacOS9.1          4195336 @ 263968    (  2.0G)
11:          Apple_Free                    262144 @ 4459304   (128.0M)
12:           Apple_HFS MacOS9.2New       4194304 @ 4721448   (  2.0G)
13:          Apple_Free                    262144 @ 8915752   (128.0M)
14:           Apple_HFS MacOS9.2.2        4194304 @ 9177896   (  2.0G)
15:          Apple_Free                    262144 @ 13372200  (128.0M)
16:           Apple_HFS Misc4             4194304 @ 13634344  (  2.0G)
17:          Apple_Free                    262144 @ 17828648  (128.0M)
18:           Apple_HFS Misc5             4194304 @ 18090792  (  2.0G)
19:          Apple_Free                    262144 @ 22285096  (128.0M)
20:           Apple_HFS Helper1           1835008 @ 22547240  (896.0M)
21:          Apple_Free                    262144 @ 24382248  (128.0M)
22:           Apple_HFS Helper2           1835008 @ 24644392  (896.0M)
23:          Apple_Free                    262144 @ 26479400  (128.0M)
24:           Apple_HFS Jaguar           16777216 @ 26741544  (  8.0G)
25:          Apple_Free                    262144 @ 43518760  (128.0M)
26:           Apple_HFS Panther          31452416 @ 43780904  ( 15.0G)
27:          Apple_Free                    262144 @ 75233320  (128.0M)
28:           Apple_HFS TigerNew         62920032 @ 75495464  ( 30.0G)
29:          Apple_Free                    262144 @ 138415496 (128.0M)
30:           Apple_HFS Misc6            95764008 @ 138677640 ( 45.7G)

I didn't bother to check if Mac OS X 10.4 can boot without the wrapper. I figure since all my partitions on the disk in the Power Mac 8600 have a wrapper, then my Tiger partition should have one too. I've erased the Helper partitions. Tiger boots fine.

Regarding macOS HFS support, it appears that mounting the HFS wrapper (using mount_hfs -w) stopped being an option after 10.8 Mountain Lion.
Creating an HFS+ partition with an HFS wrapper (using the newfs_hfs -w) stopped being an option after 10.6 Leopard.
You can't mount the HFS wrapper while the HFS+ partition is mounted.

Code:
for thecommand in mount_hfs newfs_hfs;do
	for theplist in /Volumes/*/System/Library/CoreServices/SystemVersion.plist ; do
		theos="${theplist/\/System\/Library\/CoreServices\/SystemVersion.plist/}"
		thecmdpath="${theos}/sbin/$thecommand"
		theos="${theos/\/Volumes\//}"
		if [[ -f "${thecmdpath}" ]]; then
			printf "%-8s %-13s • %s\n" "$(/usr/libexec/PlistBuddy -c 'Print :ProductVersion' "${theplist}")" "$theos" "$(strings "$thecmdpath" | grep usage | sed -E "2,$ d" )"
		fi
	done | sort -V
	echo
done

10.4.11  Tiger         • usage: mount_hfs [-xw] [-u user] [-g group] [-m mask] [-e encoding] [-t tbuffer-size] [-j] [-c] [-o options] special-device filesystem-node
10.5.8   Leopard       • usage: mount_hfs [-xw] [-u user] [-g group] [-m mask] [-e encoding] [-t tbuffer-size] [-j] [-c] [-o options] special-device filesystem-node
10.6.8   SnowLeopard   • usage: mount_hfs [-xw] [-u user] [-g group] [-m mask] [-e encoding] [-t tbuffer-size] [-j] [-c] [-o options] special-device filesystem-node
10.7.5   Lion          • usage: mount_hfs [-xw] [-u user] [-g group] [-m mask] [-e encoding] [-t tbuffer-size] [-j] [-c] [-o options] special-device filesystem-node
10.8.5   MountainLion  • usage: mount_hfs [-xw] [-u user] [-g group] [-m mask] [-e encoding] [-t tbuffer-size] [-j] [-c] [-o options] special-device filesystem-node
10.9.5   Mavericks     • usage: mount_hfs [-u user] [-g group] [-m mask] [-t tbuffer-size] [-j] [-c] [-o options] special-device filesystem-node
10.10.5  Yosemite      • usage: mount_hfs [-u user] [-g group] [-m mask] [-t tbuffer-size] [-j] [-c] [-o options] special-device filesystem-node
10.11.6  ElCapitan     • usage: mount_hfs [-u user] [-g group] [-m mask] [-t tbuffer-size] [-j] [-c] [-o options] special-device filesystem-node
10.12.6  Sierra        • usage: mount_hfs [-u user] [-g group] [-m mask] [-t tbuffer-size] [-j] [-c] [-o options] special-device filesystem-node
10.13.6  HighSierra    • usage: mount_hfs [-u user] [-g group] [-m mask] [-t tbuffer-size] [-j] [-c] [-o options] special-device filesystem-node
10.14.6  Mojave        • usage: mount_hfs [-u user] [-g group] [-m mask] [-t tbuffer-size] [-j] [-c] [-o options] special-device filesystem-node
10.15.7  Catalina      • usage: mount_hfs [-u user] [-g group] [-m mask] [-t tbuffer-size] [-j] [-c] [-o options] special-device filesystem-node
12.6.1   Monterey      • usage: mount_hfs [-u user] [-g group] [-m mask] [-t tbuffer-size] [-j] [-c] [-o options] special-device filesystem-node
13.0.1   Ventura       • usage: mount_hfs [-u user] [-g group] [-m mask] [-t tbuffer-size] [-j] [-c] [-o options] special-device filesystem-node

10.4.11  Tiger         • usage: %s [-h | -w] [-N] [hfsplus-options] special-device
10.5.8   Leopard       • usage: %s [-h | -w] [-N] [hfsplus-options] special-device
10.6.8   SnowLeopard   • usage: %s [-N [partition-size]] [hfsplus-options] special-device
10.7.5   Lion          • usage: %s [-N [partition-size]] [hfsplus-options] special-device
10.8.5   MountainLion  • usage: %s [-N [partition-size]] [hfsplus-options] special-device
10.9.5   Mavericks     • usage: %s [-N [partition-size]] [hfsplus-options] special-device
10.10.5  Yosemite      • usage: %s [-N [partition-size]] [hfsplus-options] special-device
10.11.6  ElCapitan     • usage: %s [-N [partition-size]] [hfsplus-options] special-device
10.12.6  Sierra        • usage: %s [-N [partition-size]] [hfsplus-options] special-device
10.13.6  HighSierra    • usage: %s [-N [partition-size]] [hfsplus-options] special-device
10.14.6  Mojave        • usage: %s [-N [partition-size]] [hfsplus-options] special-device
10.15.7  Catalina      • usage: %s [-N [partition-size]] [hfsplus-options] special-device
12.6.1   Monterey      • usage: %s [-N [partition-size]] [hfsplus-options] special-device
13.0.1   Ventura       • usage: %s [-N [partition-size]] [hfsplus-options] special-device

I was able to examine the contents of the HFS Wrapper using mount_hfs -w.

Code:
A Helper Disk contains this in the HFS Wrapper:

GetFileInfo /Volumes/Helper1/Desktop\ DB
GetFileInfo /Volumes/Helper1/Desktop\ DF 
GetFileInfo /Volumes/Helper1/Finder 
GetFileInfo /Volumes/Helper1/ReadMe 
GetFileInfo /Volumes/Helper1/System 

file: "/Volumes/Helper1/Desktop DB"
type: "BTFL"
creator: "DMGR"
file: "/Volumes/Helper1/Desktop DF"
type: "DTFL"
creator: "DMGR"
file: "/Volumes/Helper1/Finder"
type: "FNDR"
creator: "MACS"
file: "/Volumes/Helper1/ReadMe"
type: "ttro"
creator: "ttxt"
file: "/Volumes/Helper1/System"
type: "zsys"
creator: "MACS"

ls -lRA /Volumes/Helper1
total 128
-rwxr-xr-x@ 1 joevt  admin  16384 Nov 14 00:51 Desktop DB
-rwxr-xr-x@ 1 joevt  admin      0 Nov 14 00:51 Desktop DF
-rwxr-xr-x@ 1 joevt  admin      0 Nov 14 00:51 Finder
-rwxr-xr-x@ 1 joevt  admin   1781 Nov 14 00:51 ReadMe
-rwxr-xr-x@ 1 joevt  admin      0 Nov 14 00:51 System

The System file has a resource fork:
'vers' (1, purgeable).
'vers' (2, purgeable).
'itlc' (0, sysheap, purgeable).
'itlb' (0, sysheap, purgeable).
'KCHR' (0, sysheap, purgeable).
'boot' (2, sysheap, locked).
'free' (0).

Only the boot resource has code. It appears to be 68K code, not PowerPC.


JoeMacPro:~ joevt$ bless --info /Volumes/Helper1 
finderinfo[0]:      2 => Blessed System Folder is /Volumes/Helper1/
finderinfo[1]:      0 => No Blessed System File
finderinfo[2]:      0 => Open-folder linked list empty
finderinfo[3]:      0 => No alternate OS blessed file/folder
finderinfo[4]: 1701733120 => Thought-to-be-unused field points to <missing>
finderinfo[5]:      0 => No OS 9 + X blessed X folder
64-bit VSDB volume id:  0x067D79BFCDCC31B0

1701733120 is 0x656e6300 = MacRoman text encoding (not a inode number). This is how HFS disks know what text encoding they use. HFS+ partitions have per-folder and per-file encoding info (though I'm not sure why since HFS+ uses unicode?)


The HFS Plus volume of the helper contains these:

"/Volumes/Helper1/BootX.image"
"/Volumes/Helper1/.XPostFacto/pci1/@E/@2/@0;28/mach_kernel"
"/Volumes/Helper1/.XPostFacto/pci1/@E/@2/@0;28/System/Library/Extensions"
   - all the kexts from XPostFacto and the HFS+ partition
 
Last edited:

flyproductions

macrumors 65816
Jan 17, 2014
1,089
466
iPartition.app from Coriolis Systems has an option to add an HFS Wrapper.
Stupid me, but i still don't really know, what these wrappers do or are neccessary for. Is it just for OS 9 recognition or do they help in any way to make the helper-disk-configuration work in Leopard for booting AHCI-drives?
 

ifrit05

macrumors 6502a
Dec 23, 2013
548
385
Near Detroit, MI. USA

joevt

macrumors 604
Jun 21, 2012
6,974
4,262
So it's more like an OS 9 thing, as i understand it?

At least presence of a wrapper shouldn’t change anything for Leo, as this completely supports HFS+. Unless maybe avoiding this error message in XPF.
The problem is not the OS. Old World Macs don't have firmware that know how to boot from HFS+. TN1150 says about the HFS wrapper:
"It allows a computer with HFS (but no HFS Plus) support in ROM to start up from an HFS Plus volume. When creating the wrapper, Mac OS includes a System file containing the minimum code to locate and mount the embedded HFS Plus volume and continue booting from its System file."

In the case of the Helper disk I showed, XPostFacto placed a System file in the HFS wrapper. The System file has some 68K code in a code resource that does stuff. I should check what's on my other disks in the Power Mac 8600.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.