硬連結的用途

作者: 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