/ devディレクトリ外のデバイスファイルからハードリンクを作成できないのはなぜですか?

/ devディレクトリ外のデバイスファイルからハードリンクを作成できないのはなぜですか?

/home私のディレクトリにハードリンクを作成したいときモードでは、Linuxは次のエラーメッセージを表示します。

ln: failed to create hard link ‘my_sdb’ => ‘/dev/sda1’: Invalid cross-device link

上記のエラーメッセージは次のとおりです。

# cd /home/user/
# ln /dev/sda1 my_sdb

ただし、他のディレクトリではなく、そのディレクトリにのみハードリンクを作成できます/dev

sdb1これで、ディレクトリ(または他のディレクトリ)にある既存のデバイスファイル(たとえば)からハードリンクを作成する方法がわかります。/home

ベストアンサー1

ただし、/ devディレクトリにのみハードリンクを作成でき、他のディレクトリでは作成できません。

エラーメッセージが示すように、他のファイルシステムではハードリンクを作成できません。ソフト(シンボリック)リンクのみを作成できます。

たとえば、/homeパーティションがルートパーティションと異なる/tmp/foo場合/home/user/

@RichardNeumannが指摘したように、/devこれは通常devtmpfsファイルシステムとしてマウントされます。この例を見てください。

[dr01@centos7 ~]$ df
Filesystem                      1K-blocks    Used Available Use% Mounted on
/dev/mapper/centos_centos7-root  46110724 3792836  42317888   9% /
devtmpfs                          4063180       0   4063180   0% /dev
tmpfs                             4078924       0   4078924   0% /dev/shm
tmpfs                             4078924    9148   4069776   1% /run
tmpfs                             4078924       0   4078924   0% /sys/fs/cgroup
/dev/sda1                         1038336  202684    835652  20% /boot
tmpfs                              815788      28    815760   1% /run/user/1000

したがって、/dev私のファイルへのハードリンクのみを生成できます/dev

おすすめ記事