"float fixed in a place to indicate the position of objects underwater or to mark a channel," late 13c., boie, probably from Old French buie or Middle Dutch boeye, both of which likely are from Proto-Germanic *baukna- "beacon, signal" (see beacon). OED and Century Dictionary, however, suggest it is from Middle Dutch boeie or Old French boie "fetter, chain" (see boy), "because of its being fettered to a spot."
1590s, "to mark with a buoy," from buoy (n.). Meaning "keep something from sinking, keep afloat" is from 1650s, probably from the noun in the extended sense of "buoyant object thrown from a vessel to assist someone in the water stay afloat." It is attested earlier (1640s) in the figurative sense (of hopes, spirits, etc.). Related: Buoyed; buoying.