IntegrityChecker™ User ManualLast updated: 20 Feb 2006 Legal and contact Please read the License Agreement. Distribution or copying without the express written permission of diglloyd, Inc is prohibited. No warranty, either express or implied is given and you use this program entirely at your own risk. For inquiries regarding disktester licensing, please see http://www.diglloyd.com/diglloyd/software/index.html. Email contact: software@diglloyd.com Please include “IntegrityChecker inquiry” in the subject of your email. Due to a large volume of spam, messages may be inadvertently ignored without an appropriate subject. Introduction First, if you need help understanding how to use Mac OS X Terminal, please see Learning the Mac OS X Terminal. IntegrityChecker (‘ic’ as the command line tool name) detects changes to file contents with an exceedingly low probablility of missing a change—roughly speaking you could run it continously for a few million years with a change being missed. The slightest change to a file, even a single bit, will be detected using a 160-bit cryptographic hash. IntegrityChecker is useful for:
Setup IntegrityChecker™ requires the use of the Mac OS X Terminal application, found in your Utilities folder (the Utilities folder is inside the Applications folder). You may want to drag Terminal into the Dock, for easy access. NOTE: The setup for IntegrityChecker assumes that your default shell is /bin/bash, the default for MacOS 10.4 (new accounts). If you aren’t sure what this means (or would like to change your default shell to /bin/bash), open Terminal, and enter the command “chsh -s bash” to change your default shell to /bin/bash: llcG5:~ lloyd$ chsh -s bash To install IntegrityChecker, Start a Terminal window and execute the setup script: llcG5:/ lloyd$ ./setup_ic.sh NOTE: If you received IntegrityChecker via email, its executable bit may not be set properly; Mac OS X (Unix after all) won’t allow it to be started unless this bit is set. After copying "ic" to your Applications folder, execute the following commands (shown in bold) in Terminal to mark it as an executable file: [llcG5:/Applications/Utilities] lloyd% cd /Applications/Utilities You will need the administrator password to do this. IntegrityChecker computes the 160-bit SHA-1 hash of the data and resource fork of each file (additional forks are not currently supported). The SHA-1 hash algorithm is used in cryptography, and the probability of missing a change in file data is for all practical purposes impossible. You have a better chance of having a roasted duck fly into your mouth. IntegrityChecker detects and uses multiple processors/cores. It uses sophisticated threading techniques to overlap I/O (disk access of all kinds) and computation. In most systems, the disk speed will be the limiting factor. For example, on a PowerMac Quad, disk speed of approximately 400 megabytes per second is required to fully utilize all four cores. IntegrityChecker is optimized for the PowerPC G5 processor, but runs nearly as fast on the G4 and G3 processors Usage & command set If you have just received IntegrityChecker, start by running it on all your critical files. Ideally, you’ll keep all your important files in a single directory (folder), using subfolders as appropriate. For many users with a single hard drive, this means the home directory. For users with additional hard drives, it might mean additional directories elsewhere, in addition to the home directory. In Terminal, the special character “~” means your home directory (this includes the desktop which is a Finder-generated display of the folder “Desktop” within your home directory). Assuming you have installed IntegrityChecker (ic) in your Applications/Utilities folder, the following IntegrityChecker command creates hashes for all files in your home directory: ./ic update-all ~ And this command verifies the hashes: ./ic verify ~ Suppose you store additional files on two other volumes “Main” and “Backup” each of which has the important files in the folder “MyStuff”. Volumes which are not your boot volume are seen on the command line as /Volumes/name, where name is the volume name. You can apply the same commands as shown above with additional directories: ./ic update-all ~ /Volumes/Main/MyStuff /Volumes/Backup/MyStuff Suppose you keep all your data in your home directory (typical) on your boot disk (it’s a good idea to keep all your important files within a single folder, so that they can all be backed up together, minimizing the risk of forgetting something). Open a Terminal window, then make sure you are in the same directory as "ic" (this example assumes you have copied "ic" into your Applications folder): [llcG5:/] lloyd% cd /Applications/Utilities Enter the following command: [llcG5:/Applications/Utilities] lloyd% ./ic update-all ~ To check on the current status of all files, you would enter: [llcG5:/Applications/Utilities] lloyd% ./ic verify ~ Suppose you make backups of "MyData" to an external hard drive named "Backup" (or a DVD-R or anything else). How do you know that your backup is valid? To verify that the files are identical, you would enter: [llcG5:/Applications] lloyd% ./ic verify /Volumes/Backup/MyData Here is an overview of the syntax for all the commands: ic update-all ic update-new ic update-changed ic show-status ic verify ic clean ic test-speed Command Details
Option discussion Each option has a long name, which must be prefixed by “ --”, and a short name, which must be a single “-” followed by a letter (multiple boolean options may be grouped however eg “-dv”). An option in square brackets [] is optional.
Examples This section shows various examples.
|