Short: Splits large disks into smaller parts Uploader: Thomas Rapp Author: Thomas Rapp Type: disk/misc Version: 1.41 This software is BETA ! It is full of bugs and it can help you loose all data on your HDD. Handle with care, you have been warned !! PURPOSE If you use a software like MovieShop which needs a huge amount of HDD space but cannot access past the 4GB limit, splitdisk.device might help you. It is a device wrapper which splits a big disk into several smaller logical disks. You access these disks through splitdisk.device which converts the calls to 64bit commands understood by the original device driver. INSTALLATION Copy splitdisk.device to Devs: and copy the contents of the ENV directory to both ENV: and ENVARC:. Copy SplitDiskMount to C:. Note that splitdisk.device is not usable without configuration, so please read on. CONFIGURATION Splitdisk.device is configured through the Env variable SPLITDISKUNIT. This variable contains the device names and unit numbers of the original (big) disk drives. For each drive there is one line. Format: unit:name.device,unit[,size][,blockspercyl] Example: 0:scsi.device,2 The first unit number is the unit within splitdisk.device. In the example above, if you tell MovieShop to access splitdisk.device unit 0, splitdisk.device would access the disk connected to scsi.device unit 2. The optional parameter "size" specifies how big the parts should be the disk is split into. Default is 4GB if the parameter is omitted, but you can enter any size with a minimum on 1MB. Example: 0,scsi.device,2,500MB The optional fifth parameter specifies the number of blocks per cylinder. Usually Splitdisk splits a HDD on a block boundary. For compatibility with the FastATA controller you should specify the size of a cylinder as found in HDToolbox here, then Splitdisk will use cylinder boundaries. Example: 0,scsi.device,2,,2016 HOW TO ACCESS PARTS ABOVE THE 4GB LIMIT The part to access is specified by the SCSI LUN number. The LUN number is in the tens part of the unit number. For example unit 42 means LUN 4 of SCSI ID 2. If you let HDToolbox scan splitdisk.device, you will see each split part as a seperate drive. MOUNTING PARTITIONS There is no support for partitions in splitdisk.device yet. You have to use the supplied tool SplitDiskMount to mount partitions on a split part. Syntax: SplitDiskMount [|U] Example: SplitDiskMount U 50 mounts all partitions on the sixth split part of unit 0. SplitDiskMount also works with "normal" hard drives, i.e. you can mount partitions of a hard drive which are not automatically upon startup. Example: SplitDiskMount scsi.device 0 SplitDiskMount automatically skips partitions which are already mounted. USAGE EXAMPLE Let's say you have a 20GB HDD connected as slave to the internal IDE bus. So the HDD is accessible as scsi.device unit 1. You add a line to the SPLITDISKUNIT variable which reads 0:scsi.device,1,4GB Now the HDD is also accessible as splitdisk.device unit 0 in 5 parts of 4GB each. The parts are as follows: splitdisk.device unit 0 = 0 GB - 4 GB splitdisk.device unit 10 = 4 GB - 8 GB splitdisk.device unit 20 = 8 GB - 12 GB splitdisk.device unit 30 = 12 GB - 16 GB splitdisk.device unit 40 = 16 GB - 20 GB DEBUG Use the supplied command SplitDiskDebug to record debug output from splitdisk.device. While SplitDiskDebug is running debug output is written to a file specified either by a command line option or by the ENV variable SPLITDISKDEBUG. The default is ram:splitdisk.debug, if no parameter is given and no variable exists. Enter the command version devs:splitdisk.device file full to check if you've got the debug version of splitdisk.device. SUPPORTED COMMANDS The following commands have been successfully tested: 0002 CMD_READ yes 0003 CMD_WRITE yes 0004 CMD_UPDATE passed 0005 CMD_CLEAR passed 0009 TD_MOTOR passed 000b TD_FORMAT no 000c TD_REMOVE no 000e TD_CHANGESTATE passed 000f TD_PROTSTATUS passed 0014 TD_ADDCHANGEINT no 0018 TD_READ64 yes 0019 TD_WRITE64 yes 4000 NSCMD_DEVICEQUERY no c000 NSCMD_TD_READ64 yes c001 NSCMD_TD_WRITE64 yes 001c HD_SCSICMD 00 Test Unit Ready passed 08 Read(6) yes 0a Write(6) yes 12 Inquiry passed 25 Read Capacity yes 28 Read(10) yes 2a Write(10) yes Meanings: yes - the command is implemented in splitdisk.device passed - the command is passed unchanged to the original device driver no ....- the commmad appeared during tests but was not needed and is therefore rejected. All commands not mentioned in the list are not implemented and rejected. CONTACT Please send bug reports and suggestions to thomas-rapp@web.de.