Ketika saya ingin membuat tautan keras di /home
direktori saya dalam mode root , Linux menunjukkan pesan kesalahan berikut:
ln: failed to create hard link ‘my_sdb’ => ‘/dev/sda1’: Invalid cross-device link
Pesan kesalahan di atas ditunjukkan di bawah ini:
# cd /home/user/
# ln /dev/sda1 my_sdb
Tapi saya hanya bisa membuat tautan keras di /dev
direktori, dan itu tidak mungkin di direktori lain.
Sekarang, saya ingin tahu cara membuat tautan keras dari file perangkat yang ada (seperti sdb1
) di /home
direktori (atau direktori lain)?
/dev
biasanya dipasang sebagaidevtmpfs
sistem file. Dengan demikian Anda hanya dapat membuat tautan ke file di/dev
dalamnya/dev
. Misalnya Anda tidak dapat membuat tautan keras ke/dev/null
dalam/dev/pts
, karena dipasang dengandevpts
sistem file yang berbeda.Tautan keras tidak dapat digunakan untuk mencapai apa yang Anda inginkan, karena tautan keras tidak berfungsi di antara sistem file.
Namun, Anda dapat mencapai apa yang Anda inginkan dengan
mknod
perintah tersebut.Lari
ls -l /dev/devicefile
. Anda akan melihat output seperti ini:1, 9
).mknod /path/to/destination c 1 9
(mengganti nilai yang Anda inginkan).Mengapa ini bekerja?
File perangkat adalah tautan keras yang efektif ke file abstrak yang diimplementasikan oleh kernel atau driver kernel. Meskipun Anda tidak dapat membuat tautan keras ke objek sistem file dari sistem file lain, ini bukan objek sistem file dan karenanya, dengan mengetahui nomor referensi utama dan minornya, Anda dapat membuat referensi untuk mereka dari sistem file apa pun.
sumber
Tautan keras hanya membuat entri lain dalam direktori, menunjuk ke sebuah file (di mana file adalah file seperti benda, seperti direktori). Oleh karena itu hard-link tidak dapat mereferensikan file di sistem file lain.
Soft-link adalah teman Anda dalam hal ini. Gunakan
ln -s
. Softlink dapat melintasi filesystem, dan bahkan dapat menunjuk ke sesuatu yang tidak ada.sumber