
Born in the Royal Infirmary in Perth, Scotland, McGregor was brought up in the nearby small town of Crieff, where he attended the independent Morrison's Academy. His mother, Carol Diane (née Lawson), is a teacher and school administrator, and his father, James Charles Stuart "Jim" McGregor, is a physical education teacher. He has an older brother, Colin, who is a former Tornado GR4 pilot in the Royal Air Force. He is the nephew of actor Denis Lawson and the late actress Sheila Gish, and the step-cousin of the late actress Lou Gish. McGregor studied drama at the Guildhall School of Music and Drama.








