There are
2,937 mi
from Salem, OR to Petersburg, VA
That's the driving distance. It would take 2 days 4 hours to go from Salem, Oregon to Petersburg, Virginia.
The flight distance (direct flight from Salem, OR to Petersburg, VA) is 2,402.36 mi.
2,937 mi = 4,727.40 kms