a1246c73e0
http://cantaforda.com/cfcl/eryk/linux/pdisk/index.html this is the utility provided by mklinux and osX to manipulate the Apple Partition map.
148 lines
6.0 KiB
Plaintext
148 lines
6.0 KiB
Plaintext
Product name: pdisk
|
|
Version: 0.8
|
|
Ship date: 16 May 2000
|
|
Company name: n/a
|
|
Author name: Eryk Vershen
|
|
|
|
Description: A low-level Apple partition table editor for Linux.
|
|
A MacOS version exists for "standalone" use.
|
|
|
|
What's New: Clean up sources - fix naming, delete old email addresses
|
|
Added support for display of Mac volume names
|
|
Added cvt_pt target (for LinuxPPC team)
|
|
Fix block 0 display to show logical offset of drivers
|
|
Require confimation of quit without write
|
|
Fix iteration to not complain about missing devices
|
|
Warn when creating/writing a map with more than 15 entries
|
|
Make initial window larger in Mac version
|
|
Fix ATA support to scan buses correctly
|
|
Fix linux names (in MacOS) to work right when many devices
|
|
Change so WORM devices are considered 'CDs'
|
|
|
|
Last time: Added support for ATA/IDE disks without LBA capability
|
|
Fixed bug - create partition with unmodified size failed
|
|
Added support for new (DR3) MkLinux names - show MkLinux
|
|
name when displaying under another name and allow the
|
|
MkLinux name to be used on input.
|
|
|
|
Requirements: Linux PPC - just run the binary
|
|
MacOS - Distributed binaries for PowerPC or 68000
|
|
I haven't tried it except on 7.6.1 and 8.0
|
|
|
|
Price: Free
|
|
|
|
Legalese:
|
|
Modifications copyright 2000 by Eryk Vershen
|
|
|
|
Copyright 1996,1997,1998 by Apple Computer, Inc.
|
|
All Rights Reserved
|
|
|
|
Permission to use, copy, modify, and distribute this software and
|
|
its documentation for any purpose and without fee is hereby granted,
|
|
provided that the above copyright notice appears in all copies and
|
|
that both the copyright notice and this permission notice appear in
|
|
supporting documentation.
|
|
|
|
APPLE COMPUTER DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE
|
|
INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
|
FOR A PARTICULAR PURPOSE.
|
|
|
|
IN NO EVENT SHALL APPLE COMPUTER BE LIABLE FOR ANY SPECIAL, INDIRECT, OR
|
|
CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
LOSS OF USE, DATA OR PROFITS, WHETHER IN ACTION OF CONTRACT,
|
|
NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
|
|
WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
|
|
|
|
Contact Info: You can send mail to the author. There is no guarantee of
|
|
a response, but it is your best hope of getting a bug fixed
|
|
or a feature added.
|
|
|
|
|
|
Other info:
|
|
|
|
|
|
READ the html file or the man page.
|
|
|
|
|
|
Finding out about apple partitioning
|
|
------------------------------------
|
|
The best curently available documentation on the Apple disk partitioning scheme
|
|
is "Technote 1189: The Monster Disk Drive Technote". This release is not
|
|
completely in sync with that technote. Maybe next time.
|
|
|
|
|
|
Building the macintosh application
|
|
----------------------------------
|
|
I have only built this under Code Warrior Pro. The project file is included.
|
|
Thanks to Martin Minow for the SCSI support code.
|
|
|
|
|
|
Some notes on the apple partitioning
|
|
------------------------------------
|
|
The apple disk partitioning scheme was developed in 1986. It attempted to
|
|
be forward thinking as it was intended to handle drives of sizes up to several
|
|
hundred megabytes. There was a design document, but like most such documents
|
|
it was neither complete nor unambiguous.
|
|
|
|
While the original intent was to handle various block sizes, in practice
|
|
most devices use a partitioning block size of 512 bytes.
|
|
Since the various address fields are 32 bits unsigned this means the format
|
|
can handle disks up to 2 Terabytes in size. (32bits + 9 bits = 41 bits)
|
|
Because the format was designed around SCSI, there is no knowledge of
|
|
cylinders or heads, all block address are in absolute sector form.
|
|
A correct map should describe every block on the disk except for block zero.
|
|
|
|
An aside on CDROMs. Most old apple CDROMs have incorrect data in block zero.
|
|
Since the HFS file-system could only handle 512 byte blocks, apple drives had
|
|
a special mode where they would do deblocking (i.e. converting 2k blocks
|
|
into four 512byte blocks and accepting 512byte block addresses.) The partition
|
|
maps laid down on these disks are for the deblocked form. In many cases the
|
|
partition maps they contain have only the minimum number of fields correct.
|
|
At least one CDROM I have seen doesn't even contain a partition map at all,
|
|
but is simply an HFS volume.
|
|
Bootable CD-ROMs have even stranger partition maps since two are laid down:
|
|
one at 2K offsets and one at 512-byte offsets. If you notice that these
|
|
overlap then you begin to get an idea of how wierd these maps can be.
|
|
Apple refers to this "technique" as ghost partitioning.
|
|
|
|
The documentation in Inside Macintosh is only partially correct.
|
|
The boot-arguments field was left out. A/UX used the boot arguments field
|
|
for something that was called the bzb (block zero block - don't ask me why).
|
|
This structure evolved over the course of A/UX. I have recapitulated this
|
|
in the dpme.h header file.
|
|
|
|
|
|
Making a disk with Apple & Intel partitioning
|
|
---------------------------------------------
|
|
Don't cringe. I know it is an awful hack, but sometimes...
|
|
While I don't recommend doing this, it can be useful.
|
|
The procedure below is what we did.
|
|
|
|
The intel map can contain NO MORE THAN FOUR PRIMARY PARTITIONS.
|
|
You can't have any extended or logical partitions. (Well, you might get it
|
|
to work but I wouldn't want to try it.) The disk will NOT BE INTEL BOOTABLE.
|
|
|
|
1) Use pdisk to initialize an apple partition map. Don't add any partitions
|
|
yet, just write the map out and quit.
|
|
|
|
2) Use fdisk to create the primary partitions. Go into the expert 'x' menu
|
|
in fdisk and print out the table with the sector addresses. Write the
|
|
start and lengths down some where. Write the table out.
|
|
|
|
3) Use pdisk again. Shrink the partition map down, if necessary, so it
|
|
does not overlap any intel partition. Create an apple partition for each
|
|
intel partition using the start and length value you got from fdisk.
|
|
Write out the map and quit.
|
|
|
|
At present file systems are not compatible between Linux & MkLinux, but you
|
|
can tar stuff into these partitions and tar them out on another machine.
|
|
|
|
|
|
|
|
Good luck,
|
|
|
|
-eryk vershen
|
|
software mechanic
|
|
eryk@cfcl.com
|