同一磁盘使用 ln 创建硬链接提示 Invalid cross-device link?
- 0次
- 2021-06-17 16:13:00
- idczone
环境:群晖 DS918+
cat /etc/fstab
none /proc proc defaults 0 0
/dev/root / ext4 defaults 1 1
/dev/md3 /volume2 btrfs auto_reclaim_space,synoacl,relatime 0 0
/dev/md2 /volume1 btrfs auto_reclaim_space,synoacl,relatime 0 0
出错信息
ln: failed to create hard link ‘/volume2/TM/TV/Normal People (2020)/@eaDir/Normal.People.S01E04.2020.1080p.WEB-DL.x265.10bit.AC3 £ [email protected]/SYNOPHOTO_THUMB_S.jpg’ => ‘/volume2/TV/Normal People (2020)/@eaDir/Normal.People.S01E04.2020.1080p.WEB-DL.x265.10bit.AC3 £ [email protected]/SYNOPHOTO_THUMB_S.jpg’: Invalid cross-device link
虽然是同一磁盘,但你这是不同设备(分区)啊……
没特殊需求就用软链接吧
请问下不是 /volume2 的两个文件夹吗?怎么是不同设备(分区)?
Linux 下可以随意把不同磁盘挂载到不同文件夹,你要看看 /volume2/TM/TV/和 /volume2/TV/这两个文件夹是否指向不同的磁盘
有什么命令能看吗,谢谢?按说不应该啊,/volume2 是一个存储空间,TM,TV 都是用群晖创建的共享文件夹
stat /volume2/TM/TV
stat /volume2/TV
这个 device 不一样是不同的吧?
stat /volume2/TV
File: ‘/volume2/TV’
Size: 1762 Blocks: 0 IO Block: 4096 directory
Device: 26h/38d Inode: 256 Links: 1
stat /volume2/TM/
File: ‘/volume2/TM/’
Size: 64 Blocks: 0 IO Block: 4096 directory
Device: f4h/244d Inode: 256 Links: 1
df 命令
df -h | head -1 && df -h | grep /volume2
TV 和 TM 是 subvolume 吧?在 btrfs 里,不同的 subvolume,就是不同的 device
btrfs 是不管物理磁盘或者物理分区的,只看逻辑上的。btrfs 里,磁盘、物理分区、逻辑分区都是多对多的关系了。
搜了下好像是这样,谢谢。看来只能在共享文件夹下面再建文件夹了。
btrfs 不同 subvol 之間不能 hardlink,不過可以 reflink 。cp --reflink=always 就行了