the only sure way
Is to destroy the magnetic layer : i.e : melt the platters., sandblast the magnetic layer , degauss them, or scratch it with a box cutter ( no head will survive contacting those bumps. )
formatting doesnt do anything with the data. All that a format process does is verify that it can find all servo wedges and read all TIN blocks after the servoburst.
you can format a drive end prior to reaching 100 % power it down, then power it back up ( at 100% the FAT or NTFS or whatever filesystem root table is rewritten so its just a tad harder to find the files ): all the bits are still there.
you can not low-level a drive. only drive manufacturers can do this using a drive formatter. this involves first writing a special sync track on the outer rim of the drive, and then controlling the headstack and start writing the servobursts. they position an extra head through a hole on the side or botto of the drive to read this sync track. Since the platters are really empty there is no way for a drive to find anything. thats what the synctrack does. it tells the machine exactly where the platters are in the revolution cycle.
the harddisk can not do this by itself. the firmware in the drive does not have these algorithms on board. ( nor does it have the extra head )
the only drives that you could low level are the drives based on a stepper motor. there was no tracking mechanism on those drives. every step of the motor was a track. And those went away long before IDE drives came along ...
the best option to do this yourself is to format the drive with a different filesystem then what you were still using the drive. (this ensures that sparse files which may habe been stored in the root tables ( NTFS does that. ) also get killed off.) and then overwriting it multiple times with PRBS patterns. ( you cant use pure random patterns since the possibility exists that a block does not get overwritten at all. if the random data were to match the data stored on the drive ( a million monkeys with a million typewriter syndrome ). the PRBS is random but knows what the previous pass did so it makes sure that during the run every bit has been flipped at least a number number of times and that there is dispersion between the number of times between bits.