Ferry data from OpenStreetMap can be got using the "Overpass API" - there's a nice friendly interface here:
If you zoom to Scotland and put the following Overpass API query in the box:
This has been generated by the overpass-turbo wizard.
The original search was:
// gather results
// query part for: “route=ferry”
// print results
out skel qt;
and hit "Run" you should see:
The "Export" button will then let you save in various GIS formats. Note that OSM data has a rich data model so is a bit confusing at first when you are used to Shapefiles and other rectangular database formats...
You may need to zoom out more, and its possible if you ask for too much data that the system will timeout - zoom in and get what you can in chunks, then merge unique items in your GIS of choice, or increase the timeout value in the query (although there's probably a hard limit)