Semoga saya bisa menjawab ini dengan cara yang masuk akal untuk Anda. Sebuah sistem file di Linux, umumnya terdiri dari partisi yang diformat dalam salah satu dari berbagai cara (harus pilihan cinta!) Tempat Anda menyimpan file Anda. Baik itu file sistem Anda, atau file pribadi Anda ... semuanya disimpan pada sistem file. Bagian ini sepertinya Anda pahami.
Tetapi bagaimana jika Anda mempartisi hard drive Anda untuk memiliki lebih dari satu partisi (bayangkan Apple Pie dipotong-potong), atau tambahkan hard drive tambahan (mungkin USB stick?). Demi argumen, mereka semua memiliki sistem file juga.
Ketika Anda melihat file di komputer Anda, Anda melihat representasi visual dari data pada sistem file partisi Anda. Setiap nama file sesuai dengan apa yang disebut inode, di mana data Anda, di balik layar, benar-benar hidup. Tautan keras memungkinkan Anda memiliki beberapa "nama file" (karena tidak ada deskripsi yang lebih baik) yang mengarah ke inode yang sama. Ini hanya berfungsi jika tautan keras itu berada di sistem file yang sama. Tautan simbolik sebaliknya menunjuk ke "nama file", yang kemudian dikaitkan dengan inode yang menyimpan data Anda. Maafkan karya seni saya yang kasar tetapi semoga ini menjelaskan lebih baik.
image.jpg image2.jpg
\ /
[your data]
di sini, image.jpg, dan image2.jpg keduanya menunjuk langsung ke data Anda. Keduanya adalah hardlink. Namun...
image.jpg <----------- image2.jpg
\
[your data]
Dalam contoh (kasar) ini, image2.jpg tidak menunjuk ke data Anda, itu menunjuk ke image.jpg ... yang merupakan tautan ke data Anda.
Tautan simbolik dapat bekerja melintasi batas-batas sistem file (dengan asumsi sistem file terpasang dan terpasang, seperti stik usb Anda). Namun tautan keras tidak bisa. Ia tidak tahu apa-apa tentang apa yang ada di sistem file Anda yang lain, atau di mana data Anda disimpan.
Semoga ini membantu membuat lebih masuk akal.
chroot(2)
atau containerisasi nyata Anda dapat memiliki beberapa hierarki, yang mungkin tidak ada hubungannya sama sekali.chroot
mengisolasi sebagian hierarki untuk suatu proses dan turunannya, tetapi induk masih memiliki satu hierarki lengkap. Containerisasi dapat melakukannya, tergantung pada seberapa dekat dengan VM itu. Tapi berapa banyak detail yang bisa dimasukkan ke dalam komentar? Terima kasih,Sistem File disusun oleh struktur direktori yang disusun untuk entri direktori untuk mengatur file. Setiap entri direktori mengaitkan nama file dengan inode .
Tautan lunak ( simbolik ) adalah entri direktori yang tidak berisi data, itu hanya menunjuk ke entri lain (file atau direktori dalam sistem file yang sama atau sistem file lainnya). Dan ketika Anda menghapus file runcing, tautan simbolis menjadi tidak dapat digunakan.
Hard link adalah entri direktori yang berisi nama file dan nomor inode . Ketika Anda menghapus tautan keras terakhir, Anda tidak lagi dapat mengakses file.
Kesimpulan:
Karena inode adalah struktur data yang digunakan untuk mewakili objek sistem file, itu internal ke sistem File, dan Anda tidak dapat menunjuk ke inode dari sistem file lain.
Dengan demikian, hard-link hanya valid dalam sistem File yang sama, tetapi soft-link (Symbolic link) dapat menjangkau sistem file karena mereka hanya menunjuk ke entri direktori lain (Antarmuka sistem file, dan bukan objek internal).
sumber
/mnt/myfile
. Jika Anda memasang sistem file lain ke dalam/mnt/
. Tautan lunak akan diselesaikan ke entri sistem file yang dipasang di bawah/mnt/
. Jadi, jika Anda memasang sistem file dari perangkat USB Anda/mnt
, tautan lunak akan menyelesaikan entri pada sistem file itu.Root filesystem dapat terdiri dari beberapa filesystem;
/usr/local
mungkin dipasang pada partisi yang terpisah dan/home
mungkin pada partisi lain pada disk jaringan di tempat lain. Dalam hal ini, tautan keras untuk/usr/local/bin/git
(misalnya) mungkin tidak dibuat di luar/usr/local
, karena akan menjangkau sistem file .Alasan untuk ini adalah bahwa inode dialokasikan secara terpisah untuk
/
,/usr/local
dan/home
(sekali lagi, dalam contoh ini), dan ketika Anda membuat tautan keras Anda benar-benar hanya membuat nama tambahan untuk inode.sumber
Hard link memiliki efek menjaga target mereka tetap hidup. Selama setiap tautan keras dapat dijangkau, sistem akan memastikan bahwa targetnya tidak dapat dirilis. Oleh karena itu perlu bahwa semua media yang dapat berisi tautan keras ke inode tertentu dipasang kapan saja sistem akan mencoba untuk menentukan apakah ada referensi yang ada padanya.
Mengingat bahwa masa pakai inode biasanya ditentukan dengan mempertahankan jumlah referensi daripada memindai untuk referensi, dimungkinkan untuk mengatur beberapa hal agar dua atau lebih sistem file yang memiliki tautan satu sama lain dapat digunakan secara independen asalkan tidak perlu menggunakan tautan yang menjembatani antara sistem, dan asalkan tidak perlu menggunakan fsck pada keduanya. Namun jika inode mengandalkan salah satu sistem yang terganggu, satu-satunya cara untuk membuat sistem itu berguna lagi adalah dengan menggunakan bentuk operasi fsck yang dapat memindai kedua sistem file untuk referensi. Karena kendala itu, walaupun dimungkinkan untuk memungkinkan dua sistem file yang saling terkait dapat digunakan secara mandiri, manfaat melakukan hal itu mungkin akan terlalu terbatas untuk membuatnya berharga.
sumber
Nomor inode tunggal digunakan untuk mewakili file di setiap sistem file. Semua tautan keras berdasarkan nomor inode. Tautan referensi sistem file di sini .
sumber