Whole has a w that has never been pronounced by anyone. The word is Old English hal, "entire, unhurt, healthy," and it was spelled hole in Middle English. The wh- appeared in the early 1400s — an unhistorical addition, apparently by analogy with the many genuine wh- words, and it stuck.
That makes whole a mirror image of debt. Both have a silent letter added after the fact, but the b in debt was inserted to display a real Latin ancestor, while the w in whole displays nothing at all; it is a spelling fashion with no etymology behind it. The northern English form of the same word, without the intrusive letter, survives as hale — so of the pair, the dialect word has the more historically accurate spelling. The root means "whole, uninjured, of good omen," and also gives health, heal and holy.
whole (adj.) Middle English hole , from Old English hal "entire, whole; unhurt, uninjured, safe; healthy, healed, sound; genuine, straightforward," from Proto-Germanic *haila- "undamaged" (source also of Old Saxon hel , Old Norse heill , Old Frisian hal , Middle Dutch hiel , Dutch heel , Old High German, German heil "salvation, welfare"), from PIE *kailo- "whole, uninjured, of good omen" (source also of Old Church Slavonic celu "whole, complete;" see health ). The spelling with wh- developed early 15c. The sense in whole number is from early 14c. Whole milk is from 1782. On the whole "considering all facts or circumstances" is from 1690s. For phrase whole hog , see hog (n.). With whole wits was a Middle English way to say "of sound mind" (early 15c.). whole (n.) "entire body or company; the full amount," late 14c., hole , from whole (adj.). Earlier "health, remedy, cure" (c. 1200); "happiness, prosperity" (c. 1300). also from late 14c. whole (adv.) "in a body, together; in all, total," c. 1300, from whole (adj.). also from c. 1300