A single inode number use to represent file in each file system. All hard links 
based upon inode number.

So linking across file system will lead into confusing references for UNIX or 
Linux. For example, consider following scenario

* File system: /home
* Directory: /home/vivek
* Hard link: /home/vivek/file2
* Original file: /home/vivek/file1

Now you create a hard link as follows:
$ touch file1
$ ln file1 file2
$ ls -l

Output:

-rw-r--r--  2 vivek vivek    0 2006-01-30 13:28 file1
-rw-r--r--  2 vivek vivek    0 2006-01-30 13:28 file2

Now just see inode of both file1 and file2:
$ ls -i file1
782263
$ ls -i file2
782263

As you can see inode number is same for hard link file called file2 in inode 
table under /home file system. Now if you try to create a hard link for /tmp 
file system it will lead to confusing references for UNIX or Linux file system. 
Is that a link no. 782263 in the /home or /tmp file system? To avoid this 
problem UNIX or Linux does not allow creating hard links across file system 
boundaries. Continue reading rest of the Understanding Linux file system series 
(this is part VII): 

Reply via email to