[jump to content][No Software Patents]Tools (new) : diskus [ Home | Scylla+Charybdis old home | Tools (old) | Tools (new) | FAQ | Downloads ]

Moving to GitHub, slowly

The software on this pages will slowly be moved to GitHub https://github.com/hilbix/. The CVS repository will be migrated to GIT as well, so the history will be preserved, a bit. See FAQ.

Scylla and Charybdis, diskus - Tools

The tools are developed under Linux with ESR's paradigm release early, release often in mind.
So you can consider this beta software, or alpha, or pre-alpha, or even worse ;)

Have a look in the download directory for all downloads.
As always here, all you get is the source. No binaries here.

diskus 0.6.4-20110729-224557

Disk geometry checking and repair tool (look into latest version, download latest version 0.6.4-20110729-224557, sig)

DISKUS is a high level harddrive diagnostic and limited repair tool.

It checks the disk geometry by writing sectors with a numbered ID to the harddrive. (THIS ERASES ALL DATA ON THE DEVICE!) Later you can verify if the sector-IDs on the disk are still correct, thereby detecting any case where some data was written to the wrong sector (or was not written at all). One example use is to check if some elder SD-card-readers are able to access the second GB - some just overwrite the first GB two times, and diskus will detect such a bug.

Now you can "freshen" the data on your harddrive, too, this will read and re-write the sectors. With modern drives this will re-map all defective sectors. (I needed this new function to successfully revive one of my drives while keeping all data intact.) Note that this option was not thoroughly tested (it was not yet tested with drives with read errors), so if you use this new option, be sure to have a backup (or some filesystem like ZFS which is able to fix any left over data error).

You can also NUL the drive (like dd if=/dev/zero of=/dev/hdwhatever), just checkread it or do a hexdump. Diskus uses O_DIRECT/O_SYNC to lessen memory cache impact and has a little progress meter.

Please note that diskus is no tool to erase your harddrive according to DOD algorithms or write certain bit check patterns or data onto it like dd.

History:

version 0.6.4-20110729-224557

download (266431 bytes) sig

This fixes a bug in a library part, from which it is unknown if diskus is affected.

version 0.6.3-20110603-132232

download (266312 bytes) sig

CygWin Bugfixes: Now compiles under CygWin.

version 0.6.2-20090216-080316

download (237995 bytes) sig

Bugfixes: Option -xd now works

Previously Option -x always was active, this was not intended.

version 0.6.1-20090216-074504

download (237963 bytes) sig

Bugfixes: Option -null now works again. Option -jump (experimental feature) now works for small blocksizes.

There still is no way to use -jump and -freshen such, that defective sectors are overwritten, to give the drive a chance to remap the sector.

version 0.6.0-20090108-211103

download (236822 bytes) sig

Option -xd added check mode changed dump mode now uses extended xd from tinolib

Warning: Install path now is /usr/local/bin/ so be sure to rm old version in $HOME/bin/

version 0.5.1-20090105-184917

download (236061 bytes) sig

Output changed (using my scale library) Also some small changes to make read mode more reliable.

version 0.5.0-20081214-023903

download (235384 bytes) sig

-freshen mode and -to option added

This new feature is again somehwat experimental. With -freshen, all data read is rewritten to disk. It is done overlapping, such that each sector is read and written two times. The idea is to "freshen" the magnetic data by overwriting it with itself. Before you ask: I needed this to have some drives remap weakened (eroded) sectors which took ages to read.

The -to option is to give an end option for operation. This way you can give an end-position (positive value) or delta (number of bytes to operate on with a negative value). For example this will read a drive from 200MiB to 400MiB:

diskus -start 200M -to -200M -read /dev/sda

version 0.4.1-20081012-230547

download (229144 bytes) sig

Error reporting changed to be better readable, some library changes.

Nearly untested.

version 0.4.0-20080928-195907

download (228717 bytes) sig

Option -jump added (because I needed it)

This feature is very experimental and only works for read modes currently. It tries to jump over errors by skipping to the next 4096 byte boundary. It has not been tested thoroughly and if run with the -async option (which automatically might kick in in several cases) this will behave a little bit unreliably.

version 0.3.4-20080928-144001

download (227400 bytes) sig

More suffixes: SC and PEZY

version 0.3.3-20080928-012227

download (226919 bytes) sig

IO buffer now is aligned to a page boundary, such that the -async option is no more needed in most times.

version 0.3.2-20080803-190534

download (224916 bytes) sig

-write mode now no more valid for read modes

I always mix this myself, so added a fatal error for this.

version 0.3.1-20080528-151141

download (221549 bytes) sig

Reporting corrected

The result printed with -gen mode differed from that with -check mode, which was really puzzling. Now both shall show the same counts.

(Previously the read-loop showed the correct count, while the write-loop showed the count which would be reached if not EOF interfered, which was too high.)

version 0.3.0-20080527-195849

(216553 bytes archive)

Bugfix release, better reporting and return value, Option -quiet to suppress progress status

Diskus previously was not very detailed in the output, it now prints more information if -quiet is not present.

The "dump" function 0.2.x did no more work correctly if option -expand was not present, this is fixed now.

version 0.2.0-20071230-165415

(210950 bytes archive)

New option -expand

Because I needed it

version 0.1.1-20071230-040610

(208623 bytes archive)

Removed bug in -dump.

On characters above DEL -dump was unable to detect repeated sequences.

version 0.1.0-20071210-040148

(208569 bytes archive)

Removed minor bugs.

There was a bug when reading devices without option -async present. Newer kernels apparently do not allow to do that. The workaround was to add the -async option. This is now automatically applied.

Also if the start value was not a multiple of the sector size strange things happened. The start value now is rounded.

version 0.0.1-20070918-052554

(189475 bytes archive)

Looking at the sources I already found the first bug.

Wasn't that quick?

version 0.0.0-20070918-050902

(189311 bytes archive)

Just a first version.

There is a bug in that it tries to read past the device end. In this case you do not get EOF, instead you see an IO error and see some ugly kernel entries in the syslog.

License and Disclaimer

All you can see here is free software according to the GNU GPL.
Copyright (C)2000-2011 by Valentin Hilbig
Note that the software comes with absolutely no warranty of any kind.
You use the software at your own risk.
Valentin Hilbig cannot be hold responsible for any unintended damage,
lost data or malfunction of the software you can find here.

[FSFE contributor 2007]

[end of page - jump back to content][hacker culture]
Last modified: 2011-09-12 by Valentin Hilbig [ Imprint / Impressum ]