I’ve heard that it’s possible to use hard drives over 4GB on the Amiga, but that you have to be careful about it or you can destroy the data on the drive. Is it really that dangerous? If so, what exactly do I need to do to keep my data safe?
- Yes, it is dangerous. Default Device driver and Filesystem are limited to 4GB (Total Size) and 2GB (Max partition size). You need to boot off a small partition (can be around 500MB) and then load an updated SCSI.DEVICE and use a fixed FILESYSTEM. Not doing this, will result in wrap around. This is where the data at the beginning of drive is over written.
- Cheers FOL, just populating with a question I would expect to pop up sooner or later :)
- Thomas Rapp is the guru of Amiga harddrives. Read his FAQ: http://thomas-rapp.homepage.t-online.de/4gb_faq.html
- You must login to post comments
[Answering my own question for testing purposes…]
Okay, first a little background to answer the first question. Yes, it can really be that dangerous to use large hard drives on an Amiga. Internally, Amiga is a 32-bit OS, and so most things it does are limited by the largest address that can be represented by a 32-bit number. This is where the hard drive size limit comes from, since 2^32-1 is 4,294,967,295 bytes.
If a computer attempts to count beyond the largest number it can deal with, the value simply wraps around to zero again, and if this isn’t specially taken into account, it can go unnoticed by software. In the case of hard drives nobody ever dreamed this would be an issue and so no safeties were put in place since the Amiga’s DOS (Disk Operating System) was designed in a time when 20MB hard drives were a big deal, so attempting to access byte 4,294,967,296 (just 1 byte beyond the limit) will actually access byte 0, meaning it’s actually reading or writing the bootblock of the drive. Writing over this area can destroy your RDB, destroying the partition and filesystem definitions and making the entire drive unreadable. This may seem like a crazy oversight these days, but for comparison, most PCs had a limit of around 500MB even in 1994, so 4GB doesn’t seem so bad…
Fortunately, these limitations can be safely overcome once the problems are worked around. The 32-bit problem is present in three specific areas of the Amiga OS:
- The Interface Driver, which allows the OS to communicate with the hard drive, for example scsi.device on many Amigas.
- The Filesystem, which determines how a hard drive partition is read, written and organised, for example FastFileSystem built into OS 2.0 and later.
- The HDToolBox tool, which is used to prepare and partition a hard drive.
To deal with these limitations, the following steps should be carried out:
1. Fixing The Interface Driver
The original scsi.device that is used in many common Amigas such as the A600 and A1200 is built into the Kickstart ROM, allowing it to be used even without any software loaded. To replace this, it either needs to be patched using software, or a replacement driver loaded from the drive and used instead. This requires the first partition to be within the first 4GB of the hard drive, so it can safely load the new driver before accessing any part of the drive above 4GB. Once the new driver is loaded, the machine can reboot and use the new driver to boot as normal.
Several replacement driver options are available, each one allowing the safe use of drives over 4GB, including the following:
AmigaOS 3.5 / 3.9
Perhaps the simplest is the one built into later versions of AmigaOS, such as versions 3.5 and 3.9. These both include a version of scsi.device that is loaded to replace the original ROM version. It’s all carried out automatically during installation so it’s simple enough for the average user.
scsi.device Version 43
This is a replacement for the scsi.device version found in ROM which can be used with versions of AmigaOS older than 3.5 or 3.9. It can be found as a download here. Read the instructions provided for installation, as it requires certain files to be copied and lines added to your startup-sequence file to work.
This is a 3rd party suite of software that patches your scsi.device for large hard drive support. An installation script is provided that will make the necessary adjustments to your system, but be sure to read the instructions anyway. This software will give you nagging requesters every so often until you buy/register it, but includes many useful tools including support for 4-way IDE splitters and CD32 emulation on the A1200 & 4000.
2. Fixing the Filesystem
Each partition on the hard drive requires a filesystem to describe how the data are arranged on the drive. Different partitions can have different filesystems. The default filesystem on all Amigas from 2.0 up is FastFileSystem, or FFS for short. Fortunately, Amigas are able to store additional filesystems in a special area of the hard drive, enabling these other filesystems to be used without having to reboot as is required for a new device driver.
New filesystems are typically placed in the L drawer of the boot volume, and can be added to a hard drive’s RDB using HDToolbox. Once installed in the RDB, a partition can be set to use a particular filesystem by selecting the relevant identifier in the partition’s settings.
Various filesystems are capable of being used on drives above 4GB. The most common ones are listed here:
These versions of AmigaOS come with an updated version of FastFileSystem that can be used for large partitions. Be sure to add it to the RDB of the hard drive or you might still end up using the ROM version!
FastFileSystem Version 43
This is an updated version of the standard filesystem that can be used with AmigaOS versions before 3.5, and allows partitions larger than 4GB. Like the older versions however, and despite its name, it’s very slow and becomes invalid when writes are interrupted, resulting in long validation waits when the machine boots. It’s available to download here.
This is a free 3rd-party filesystem with good support for large hard drives. It’s bootable, doesn’t invalidate when interrupted, and is much faster than FFS. The current version is 1.279. Version 1.277 can be downloaded from Aminet, and the patch to 1.279 should be available from strohmayer.org but the site is down for some reason. This filesystem allows you to use two versions of SFS: SFS/0 for more compatible use up to 128GB, and SFS/2 which allows 64-bit access for partitions above 128GB.
This filesystem was commercial up until recently, when it was released for free. Since then it has been updated regularly, and like SFS, offers much improved performance over FFS as well as support for large hard drives and partitions. It can be downloaded from Aminet.
This is the tool used for creating and modifying partitions on the Amiga. As with the device drivers and filesystems, the version that comes with the OS pre-3.5 is only able to deal with drives and partitions up to 4GB in size. It can however be tricked into working with larger sizes if you manually enter the values for the start and end cylinders of the partitions. Note as well that it will not read the geometry correctly if the device driver (e.g. scsi.device) isn’t updated to support large drives first. Partition sizes above 4GB will be displayed incorrectly, but the end result will be ok, provided you enter the cylinder values manually (and press enter after each one!) to suit.
Far easier would be to use the HDToolbox from OS 3.5 or 3.9, as this has been updated to work correctly with large drives, allowing you to use the sliders to adjust partition sizes and positions.
Alternative tools are also available, such as HDInstTools, but you must be careful not to mix your tools. For example, HDInstTools will destroy the data on a drive that was previously set up with HDToolBox!
Don’t forget that regardless of tools, drivers and filesystems used, the first partition must be less than 4GB and must be completely within the first 4GB of the drive.
4. Check all partitions
Once all your partitions are set up, you should check them to ensure they’re all safe to use before you start storing anything on them. The excellent Check4GB tool is available on Aminet, and gives you a summary of all your partitions and their 4GB safety status. Any that aren’t shown as ok to use must not be accessed in any way as to do so could corrupt the other, working partitions or the RDB itself!
Finally, make sure to never use old software that directly accesses the drive at block level. These programs are often also unaware of issues above the 4GB mark, and as a result can easily destroy your data, even on otherwise good partitions. These tools include things like Quarterback Tools, ReOrg, DynamiCache and so on. Even the Workbench Format function from pre-3.5 versions of the OS does not support large hard drives, so only ever use the quick format option!
Summary and Recommendations
There’s a lot of detail in the descriptions above, and far more available if you wish to read more about it. But a recommended setup can consist of the following steps:
- To use an OS below 3.5:
- Use HDToolbox to install a new filesystem in the RDB of your drive (either SFS or PFS-AIO is recommended).
- Use HDToolbox to create a small partition at the start of your new hard drive to use as your Workbench partition. 100 or 200 MB should be plenty.
- Set the new partition to use the new filesystem.
- Reboot and install Workbench to this partition. You should now be able to boot your Amiga from the hard drive.
- Install a new scsi.device driver (either scsi.device version 43 or IDEFix is recommended) and reboot.
- Use HDToolbox to set up the remainder of the partitions as required, being sure to set each one to use the new filesystem.
- Reboot and check all partitions with Check4GB.
- Use the Quick Format function to format the partitions.
- To use OS 3.5 or 3.9:
- Use the OS installer to create a boot floppy and boot from it.
- Use HDToolbox to set up a small partition at the start of the drive for Workbench. 100-200MB should be fine.
- Optionally (but recommended), set the partition to use SFS or PFS-AIO.
- Reboot and install the OS to the partition.
- Reboot and use HDToolbox to set up the remainder of the drive as desired, using either the new FFS (version 44+), or another updated filesystem for each partition.
- Reboot and check all partitions with Check4GB.
- Quick format the partitions to prepare them for use.
Further reading and more details on the various filesystems and device drivers can be found here: http://eab.abime.net/showthread.php?t=61666
- Great answer! Not just for testing purposes Daedalus – it’s both great information as well as an example of an ideal answer ;)
- Thanks for all the useful info. Having recently acquired an A1200, I’m planning to try and install an 8GB compact flash card once my adapter arrives. Since I also decided to order 3.X kickstart roms (upgrading from the machine’s 3.0 chips to some new 3.X chips from amigakit), I’m wondering what would be different about the procedure, since I went with 3.X after reading about it’s support for drives over 4GB. Would I be right in thinking that the procedure is basically the same, just without the need to install a new scsi.device driver, since that will already be updated with the kickstart upgrade?
- I haven’t used the 3.X Kickstart myself, but that is the general idea behind it. You’ll still have to use a filesystem capable of using the large drives, but the scsi.device aspect is taken care of. It would still be an idea to keep the boot partition within the first 4GB just in case you ever need to switch it to a 3.0/3.1 ROM setup, and I’d still recommend checking all your partitions with Check4GB.
- You must login to post comments
Please login first to submit.