Espero que eu possa responder isso de uma forma que faça sentido para você. Um sistema de arquivos no Linux, geralmente é composto de uma partição que é formatada de várias maneiras (você tem que escolher!) Em que você armazena seus arquivos. Seja que seus arquivos de sistema, ou seus arquivos pessoais ... eles são todos armazenados em um sistema de arquivos. Esta parte você parece entender.
Mas e se você particionar seu disco rígido para ter mais de uma partição (pense em cortar a Apple Pie em pedaços), ou adicionar um disco rígido adicional (talvez um pendrive?). Por uma questão de argumento, todos eles têm sistemas de arquivos neles também.
Quando você olha para os arquivos em seu computador, você está vendo uma representação visual dos dados no sistema de arquivos da sua partição. Cada nome de arquivo corresponde ao que é chamado de inode, que é onde seus dados, nos bastidores, realmente vivem. Um link físico permite que você tenha vários "nomes de arquivos" (por falta de uma descrição melhor) que apontem para o mesmo inode. Isso só funciona se esses hard links estiverem no mesmo sistema de arquivos. Em vez disso, um link simbólico aponta para o "nome do arquivo", que é vinculado ao inode que contém seus dados. Perdoe meu trabalho bruto, mas espero que isso explique melhor.
image.jpg image2.jpg
\ /
[your data]
aqui, image.jpg e image2.jpg apontam diretamente para seus dados. Ambos são hardlinks. No entanto ...
image.jpg <----------- image2.jpg
\
[your data]
Neste exemplo (bruto), image2.jpg não aponta para seus dados, aponta para image.jpg ... que é um link para seus dados.
Os links simbólicos podem funcionar nos limites do sistema de arquivos (supondo que o sistema de arquivos esteja conectado e montado, como seu pendrive). No entanto, um link físico não pode. Ele não sabe nada sobre o que está em seu outro sistema de arquivos ou onde seus dados estão armazenados.
Espero que isso ajude a entender melhor.