Defender Alan Tate and goalkeeper Gerhard Tremmel have been released by Swansea City.
Swindon midfielder Massimo Luongo has become Chris Ramsey's first permanent signing at QPR.
Forest Chairman Omar Al Hasawi told the club's website: "Greg is another important component in the squad that Sean is assembling and we're delighted he chose to join us."
Halford, who can operate at the right and centre of defence, as well as in midfield or as a striker, made his name at Colchester before making moves to Premier League sides Reading and Sunderland.
He later had loan spells at Charlton and Sheffield United before joining Wolves in 2009, and eventually made his move to Fratton Park permanent after a successful loan spell.