%20%E6%98%AF%E5%90%A6%E9%81%B5%E5%BE%AA%E7%AC%A6%E8%99%9F%E9%80%A3%E7%B5%90%EF%BC%9F.png)
我嘗試將 ld.so.cache 檔案移動到另一個位置時偶然發現了一個問題。我嘗試在其先前的位置為其創建一個符號鏈接 -- /etc/
-- 但加載程序似乎無法遵循此符號鏈接。此外,硬連結也不可行,因為新位置位於另一個分割區上。
我的最終目的是擁有一個只讀根檔案系統,這可能是阻止我這樣做的最後一件事。
先感謝您!
答案1
我可以確認,至少在 Glibc 中,ld.so
打開/etc/ld.so.cache
.代碼在elf/dl-cache.c
在函數中,引用_dl_load_cache_lookup
函數_dl_sysdep_read_whole_file
elf/dl-misc.c
。該函數打開文件並將其映射到記憶體中;它對符號連結沒有任何作用。
避免符號連結需要額外的努力,我想不出任何載入程式會這樣做的原因。
要偵錯您的問題,您可以使用strace
追蹤載入程式正在讀取或嘗試讀取的檔案。