Doing an internal restore is having postgresql up and running and then inserting all the records.
An external restore is with the db offline and then everything is just a file.
and for that you can use rsync or tar or whatever floats your boat. As long as the db is cold.