Linux

為什麼我不能從 /dev 目錄以外的設備文件創建硬連結?

  • May 26, 2020

當我想以root/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

但是我只能在 /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

因此,您只能在 .in 中創建指向文件的硬/dev連結/dev

引用自:https://unix.stackexchange.com/questions/434278