HTTPS clone URL
Subversion checkout URL
ADO ALLMAN APPLE ARM32_BROKEN_RELOCS ATT AVALON BERGAMINI BKTR_SF BOSTIC BSD CAGNEY CDC CDK CHRISTOS CITRUS CODA COLUMBIA CROOKS CRSG CSRG_contrib CSRG CVSHOME CYGNUS DARRENR DBJ DHCPCD DICKEY DMG DROCHNER EKERMIT ELRICshvfork ERYK_VERSHEN ERYK ESR EZK FILE FLEX FREDETTE FREEBSD_SMBFS FREEBSD FSF FlorianStoehr FreeBSD GCC_2_4_5 GENERIC GITHUB_JMMV GNU_EFI GNU_bc_1_03 GNU_dc_1_03 GNU GOOGLE_CODE GREENWOODSOFTWARE GWR GWR_2_3_8 HEIMDAL HM HPCMIPS HUBERTF IMAKEICIDE_II INTEL IPSEC_TOOLS IS_FPLSP_LIBM ISC ISDN4BSD JEREMY JHD_ECS JRT JSEWARD Jochen_Pohl John_M_Vinopal KAME KIENTZLE KJC KOCIELS KRISTAPS KTH_KRB LAURIKARI LBL LEFEBVRE LEMIS LIBEVENT LINUX LLVM LUA Leo MACKERRAS MALINEN MILLERT MN MOJ MOUSE MR Masaru Matthias Motorola NAWK NETBSD_I386 NETBSD NETPGP NONGNU NTFS NUDELMAN NUDLEMAN NVI NetBSD OPENBSD OPENLDAP OPENPAM OPENPGPSDK OPENSSH OPENSSL OpenBSD PAO PATHSCALE PIERMONT_NELSON PKGSRC PROVOS PROVOS00 Pfaller REDHAT RIPE SENDMAIL_INC SGI SQLITE SUN3 SYN_cache_branch SYNOPSYS Sun TAYLOR TCPDUMP TELTRONICS THORPEJ TMUX TNF TOOLS TROUSERS TZDATA UCB_JHAUSER UCSF UDEL UMD VENEMA VERN_PAXSON VJS WASABI WFJ_920714 WJF_920714 XZ Xen ZLIB abandoned_netbsd_4 ad_audiomp ad_audiomp2 ad_pmax_wscons adler agc_netpgp_standalone agc_pkgs agc_symver alice alpha_nwscons amiga_release atheros_hal before_newconf bjh21_hydra bjh21_wd33c93 bostic_nvi bouyer_ide bouyer_quota2 bouyer_scsipi bouyer_xen2 bouyer_xenamd64 bouyer_xeni386 bozohttpd briggs bsd4_4utah ccranor_mvme68k cgd chap_midi cherry_xenmp chris_arm_intr_rework christos_time_t chs_ubc chs_ubc2 cjs_build_against_obj_dir cmu_sup comdex_fall_1999 csrc_net2 csrg_net2 cube_autoconf curses_v3 darrenr dhcpcd digital draga dynamic_messages eef eeh_devprop eeh_paddr_t eeh elad_kernelauth expat ezk freebsd fsf fvdl_fs64 fvdl_softdep gdamore_uart gehenna_devsw gmcgarry_ctxsw gmcgarry_ucred gmp gwr_gdb gwr_3x3 gzip haad_dm hpcarm_cleanup ifpoll intel ipsec_tools_0_7_branch ipsec_tools_0_8_branch is_m68ktest is_newarp is itohy_usb1 ivory_soap ivory_soap2 jdc jmcneill_audiomp3 jmcneill_pm jmcneill_usbmp jmcneill jruoho_x86intr jwise jym_xensuspend kame keiichi_mipv6 kenh_if_detach kent_audio1 kent_audio2 khorben_n900 kohl kqueue ktrace_lwp leo lonhyn lukem_nsswitch2 madwifi magnum maja marc_pcmcia matt_armv6 matt_dainty matt_mips64 matt_nb4_arm matt_nb5_mips64 matt_nb5_pq3 matt_nb6_plus matt_timespec mesa_drm minoura_x68k_bus_h minoura_xpg4dl minoura mjacob mjf_devfs mjf_devfs2 mjf_ufs_trans mortalinstall mouse mpc mpfr mrg_and_rtr mrg_ohci_jmcneill_usbmp mrg_rcmd mrg_vm_object_collapse mrg_vm_swap mrg_vm_swap2 mrg mw_amiga_machdep_merge mycroft nathanw_sa netbsd_cryptosrc_intl netbsd_cryptosrc_us netbsd netbsd_0_9 netbsd_1_0 netbsd_1_1 netbsd_1_2 netbsd_1_3 netbsd_1_4 netbsd_1_5 netbsd_1_6 netbsd_2 netbsd_2_0 netbsd_2_1 netbsd_3 netbsd_3_0 netbsd_3_1 netbsd_4 netbsd_4_0 netbsd_5 netbsd_5_0 netbsd_5_1 netbsd_5_2 netbsd_6 netbsd_6_0 netbsd_6_1 netbsd_7 netbsd_7_0 newgrp_standalone newlock newlock2 nick_csl_alignment nick_hppapmap nick_net80211_sync nick_nhusb nisimura_pmax_wscons nsswitch nvm openbsd pefo perry perseant_lfsv2 peter_altq peter_eriksson phil_pc532 pkgsrc pkgviews pmax_base ppcoea_renovation ragge rcs reinoud_bufcleanup riastradh_drm2 rmind_smpnet rmind_uvmplock ross_ncr_fb1_123_merge roy rpaulo_netinet_merge_pcb rtr_xorg_branch schmorpforge scottr_mac68k_wscons scw_mvme68k_bus_space scw_mvme167 simonb_timecounters simonb_wapbl sjg sommerfeld_i386_mp_1 sommerfeld_i386mp_1 sun sun3_1_0_base sunpro thomas thorpej_atomic thorpej_bus_dma thorpej_devvp thorpej_mips_cache thorpej_scsipi thorpej_setroot thorpej_signal thorpej_syslogd_hack_branch thorpej_vnode_attr tls_earlyentropy tls_maxphys trunk uebayasi_xip vixie vmlocking vmlocking2 vtag wcurses wrstuden_devbsize wrstuden_fixsa wrstuden_revivesa ws_code yamt_idlelwp yamt_km_doc yamt_km yamt_kmem yamt_lazymbuf yamt_nfs_mp yamt_pagecache yamt_pdpolicy yamt_pf42 yamt_readahead yamt_splraiseipl yamt_uio_vmspace yamt_vop yamt_x86pmap zlib
Nothing to show
Nothing to show
Fetching latest commit...
Cannot retrieve the latest commit at this time.
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 email@example.com