Chroot

chroot 無法啟動服務 - 未找到。什麼不見了?

  • February 25, 2021

我想在 NetBSD 9.1 amd64 系統的 chroot 中執行服務。如果從作業系統呼叫,該服務將執行。有問題的服務是dendrite-monolith-server。為了便於使用,我只是將文件複製start/bin/.

# ldd bin/start 
bin/start:
       -lpthread.1 => /usr/lib/libpthread.so.1
       -lc.12 => /usr/lib/libc.so.12

它們是硬連結的:

# ls -l usr/lib
total 8560
-r--r--r--  2 root  pe  2079984 Feb 22 23:40 lc.12
-r--r--r--  2 root  pe  2079984 Feb 22 23:40 libc.so.12
-r--r--r--  2 root  pe    93656 Feb 22 23:40 libpthread.so.1
-r--r--r--  2 root  pe    93656 Feb 22 23:40 lpthread.1

在 chroot/dev中,確實MAKEDEV all創建了設備。

複製ld.elf_so到chroot/libexec目錄

# ls -l /libexec/
total 324
-r-xr-xr-x  1 0  1000  164344 Feb 22 23:47 ld.elf_so

ksh93 是靜態連結的:

# chroot ./ /bin/ksh93
#
# /bin/start 
/bin/ksh93: /bin/start: not found

有什麼問題或遺漏?

我最終base.tar.xz將 NetBSD 安裝集的包解壓到一個新目錄,將 Web 服務的內容複製到那裡並執行。

引用自:https://serverfault.com/questions/1054735