The problem is in how tar stores files. So, for example
$ echo hello > a
$ ln a b
$ tar cf foo.tar a b
$ tar tf foo.tar
a
b
The problem happens when you try to extract just one file
$ mkdir Y
$ cd Y
$ tar xvf ../foo.tar b
b
tar: b: Cannot hard link to `a': No such file or directory
tar: Exiting with failure status due to previous errors
What you need to do is look at the verbose content list shows
$ tar tvf foo.tar
-rw-r--r-- sweh/sweh 6 2016-06-13 10:43 a
hrw-r--r-- sweh/sweh 0 2016-06-13 10:43 b link to a
Now you can see that "b" has zero length, has type "h" (first character) and is flagged as " link to ". This tells you the real file you need to extract.
In this case you may want to use the "O" option (send to stdout), so you'd end up doing tar Oxvf ../foo.tar a > b to create a file of the right name.