Buchanan is a town in Botetourt County, Virginia, United States. The population was 1,178 at the 2010 census. It is part of the Roanoke Metropolitan Statistical Area. It was the western terminus of the James River and Kanawha Canal when construction on the canal ended.