硬连结的用途

楼主: HILL33LOVE (就是爱希尔)   2020-05-08 21:36:39
最近看软连结跟硬连结的比较,有整理一下笔记资讯,对于硬连结的观念是都使用同一个
inode,省硬盘空间等等,但是对于”实务”上还是不是很了解大家平常都使用在那边?
再请大家给点指教,谢谢
[Linux笔记] 软连结与硬连结
# /与/home位于不同的partition
[email protected]:~/workspace$ df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda1 7092728 5093676 1615720 76% /
none 4 0 4 0% /sys/fs/cgroup
udev 2013844 4 2013840 1% /dev
tmpfs 404788 1036 403752 1% /run
none 5120 0 5120 0% /run/lock
none 2023940 88 2023852 1% /run/shm
none 102400 24 102376 1% /run/user
/dev/sda3 17414428 1007348 15499356 7% /home
# 分别在/与~家目录建立档案与目录
[email protected]:~/workspace$ sudo touch /file1
[email protected]:~/workspace$ touch file2
[email protected]:~/workspace$ mkdir folder1
# 硬连结不支援跨partition
[email protected]:~/workspace$ ln /file1 hardfile1
ln: failed to create hard link ‘hardfile1’ => ‘/file1’: Invalid cross-devi
ce link
[email protected]:~/workspace$ ln -s /file1 softfile1
[email protected]:~/workspace$ ln file2 hardfile2
# 硬连结不支援目录
[email protected]:~/workspace$ ln folder1 hardfolder1
ln: ‘folder1’: hard link not allowed for directory
[email protected]:~/workspace$ ln -s folder1 softfolder1
# 软连结的档案inode不同(965, 667577),硬连结的档案inode相同(667572)
# 软连结的属性不同为变777(rwx),硬连结的属性相同(-rw-rw-r
作者: idisnothing   2020-05-09 07:38:00
我也很好奇hard link到底都用在哪些地方
作者: bitlife (BIT一生)   2020-05-09 11:54:00
soft link有可能会断炼而hard link不会,可以想成hardlink是一群人共同保有1个档案,直到最后1个人丢弃(delete)该档案之前,档案都会一直存在,任何1人也不用担心别人删除让自己没得用
作者: lantw44 (#######################)   2020-05-09 14:17:00
以前有的时候会用硬连结在不分享资料夹的情况下分享单一档案给别人,还有的时候有些程式遇到软连结和硬连结的行为会不太一样,例如函式库搜寻路径可能不同之类的。话说 FreeBSD 跟 Linux 相比好像很喜欢用硬连结,连功能
作者: s9209122222 (海海海)   2020-05-09 14:24:00
现在还会常用到吗?看起来好像不好用
作者: lantw44 (#######################)   2020-05-09 14:24:00
类似 busybox 的程式都是硬连结个 146 次而不用软连结。什么东西还会常用到吗?
作者: qoopichu (非洲边缘鲁蛇)   2020-05-09 16:11:00
所以就是在不占用空间的情况下复制档案的意思?这样我很好奇的是如果在A磁区上的档案在B磁区建立了硬连这样是不是我删除A磁区上的档案后却仍无法释出空间?
作者: kenduest (小州)   2020-05-09 19:01:00
hard link 建立只能够在同个磁区属于区块空间提供共用.系统会建立建立几个人共用。删除时参考建立数值会减少,当为0时候空间才真正删除释出
作者: Bencrie   2020-05-09 19:35:00
被 pbuilder 搞爆一次 rootfs 就不敢玩 hardlink 了 XD
作者: qoopichu (非洲边缘鲁蛇)   2020-05-10 04:17:00
原来不同磁区就不能硬连,感谢解说
作者: bitlife (BIT一生)   2020-05-10 10:34:00
上面推文应该是要讲partition/分区, 磁区是sector,早年软硬盘的储存资料最小单位. CHS(Cylinder/Head/Sector)模式后来改LBA模式sector这单字就少用了
作者: kenduest (小州)   2020-05-10 11:32:00
谢谢楼上.只是目前架构复杂lvm等,用分割区也有点怪
作者: idisnothing   2020-05-10 12:27:00
看来就档案系统这用词最恰当了(?
作者: bitlife (BIT一生)   2020-05-10 19:08:00
楼上其实是正解.我只是因为看到推文中提及磁区,才用分区来对应,通常一分割区一档案系统,但像raid,lvm这些状况,一个档案系统包含数个分割区,所以hard link不能跨档案系统才是正确说法
作者: s9209122222 (海海海)   2020-05-10 23:42:00
LVM 不是很危险吗?话说看别人介绍 openZFS 看起来和 LVM 好像
作者: pizzahut (...)   2020-05-11 00:50:00
我也很好奇 LVM 到底适不适合用.. 之前也听说过很危险但我现在管理的环境满满的 LVM... 不知道该说什么好不过我是使用在 VM 里面的虚拟硬盘就是了
作者: Bencrie   2020-05-11 01:51:00
LVM 大概跟你硬盘坏掉一样危险
作者: kenduest (小州)   2020-05-11 10:00:00
lvm是volume管理一种常见管理方式,担心硬盘故障你传统需要后端搭配适当的硬件raid与定期备份机制. 其实目前lvm 也可以用多个硬盘来源当基底再上面建立 raid5这种架构,这年头的lvm已经不是当年的阿蒙了
作者: s9209122222 (海海海)   2020-05-11 21:10:00
那 openZFS 呢,看起来逻辑很像然后如果重灌,LVM 会出事吗?
作者: Bencrie   2020-05-11 21:53:00
我的不会 XD
作者: kenduest (小州)   2020-05-11 23:34:00
zfs在linux上面还不适合当production环境
作者: g5637128 (帮QQ)   2020-05-12 18:42:00
BT不同站点辅种时会用hard link
作者: s9209122222 (海海海)   2020-05-12 19:16:00
为何?不是比 LVM 好吗?
作者: kenduest (小州)   2020-05-12 19:36:00
zfs在linux本来就不是稳定的东西,再者lvm目前许多功能都涵盖了,像是快照与raid都都是,正式上线环境还比较单纯与稳定
作者: fuyuanli (FuYuan)   2020-05-12 21:06:00
说 ZFS on Linux 不稳定的人真的有用过 ZFS 吗? 呵呵欢迎来 pve.tw 参观各种使用 ZFS on Linux 的Production Datacenter
作者: lecheck (小调皮)   2020-05-12 22:53:00
想知道btrfs和zfs的比较
作者: s9209122222 (海海海)   2020-05-12 23:47:00
查了一下,原来坏轨在 LVM 是有救的,我还以为他和RAID0 一样会没救所以 ZFS 和 LVM 究竟……
作者: qoopichu (非洲边缘鲁蛇)   2020-05-13 03:48:00
btrfs当初看有人分析各种档案系统整体看起来最优就用了速度和空间的使用都还满不错的,但是爆炸只能用自己工具来救,像testdisk就没办法侦测到里面任何东西
作者: Bellkna (柔弱气质伪少女)   2020-05-13 06:04:00
开机碟用btrfs有点后悔就是XD grub不能储存开机选项XD
作者: kenduest (小州)   2020-05-13 11:36:00
data center 用 zfs in linux 的确值得观摩,想参观。记得当初 zfs licence 争议部分目前不知道是否解了
作者: s9209122222 (海海海)   2020-05-13 12:02:00
可是他名称有个 open 耶,所以其实他不够 open 吗?openZFS
作者: bitlife (BIT一生)   2020-05-13 13:21:00
通常前面有加open的套件,多半是有对应的封闭原始码套件,如solaris/opensolaris, jdk/openjdk 等等
作者: lantw44 (#######################)   2020-05-13 22:43:00
ZFS 的 license 争议是指 CDDL 和 GPL 之间的问题吧
作者: kenduest (小州)   2020-05-14 02:55:00
对的。此外目前进行中的 linux kernel 5版本要使用 zfs目前也有问题。只能够说 Oracle 收购 Sun 之后真的后续一堆事情,Java 就是....
作者: holishing   2020-05-14 13:24:00
所以现在OpenZFS用另外维护kernel module的方式开发加上有Canonical爸爸撑腰就确定没问题了吧?现在连 FreeBSD stable/current 都可以再装 OpenZFS 了
作者: newversion (海纳百川)   2020-05-14 18:39:00
rsync 可用hardlink做 incremental backup
作者: k0001 (弑卍叶大雄卍神)   2020-05-15 21:22:00
虚拟分身和实体分身
作者: lantw44 (#######################)   2020-05-16 15:49:00
前几天听说 OpenZFS 终于出新版支援 Linux 5.6 了
作者: holishing   2020-05-17 02:12:00
但 5.7 差不多也要出来了...
作者: frogbsd (null)   2020-05-17 23:03:00
git checkout 跟 worktree 就是用硬连结做的
作者: andrew43 (讨厌有好心推文后删文者)   2020-05-23 15:44:00
MacOS的内建备份工具也是

Links booklink

Contact Us: admin [ a t ] ucptt.com