ソースの表示以前のリビジョンバックリンク全て展開する/折り畳む文書の先頭へ Share via Share via... Twitter LinkedIn Facebook Pinterest Telegram WhatsApp Yammer Reddit Teams最近の変更Send via e-Mail印刷パーマリンク × « PortsにNetatalk 3.1.10がキテタ━━━(゚∀゚)━━━ !!!!! FreeBSD 11.0RでZFSの特定プロパティ条件下でkern.proc.pathnameが失敗する » FreeBSD 11.0RにしたらVirtualBoxが動かなくなった(´・ω・`) 先日、家鯖をFreeBSD 11.0-RELEASEに更新してからVirtualBoxが動かなくなった。起動しようとするとVirtualBox: supR3HardenedExecDir: sysctl failedとエラーを吐いて終了する。sysctlに失敗するってどういうこっちゃ。 当該ソースはSUPR3HardenedMain.cppの1243行目付近で、VirtualBox自身の実行ファイルパスを取得してる部分。 # else /* RT_OS_FREEBSD */ int aiName[4]; aiName[0] = CTL_KERN; aiName[1] = KERN_PROC; aiName[2] = KERN_PROC_PATHNAME; aiName[3] = getpid(); size_t cbPath = sizeof(g_szSupLibHardenedExePath); if (sysctl(aiName, RT_ELEMENTS(aiName), g_szSupLibHardenedExePath, &cbPath, NULL, 0) < 0) supR3HardenedFatal("supR3HardenedExecDir: sysctl failed\n"); g_szSupLibHardenedExePath[sizeof(g_szSupLibHardenedExePath) - 1] = '\0'; int cchLink = suplibHardenedStrLen(g_szSupLibHardenedExePath); /* paranoid? can't we use cbPath? */ # endif 何の変哲もないコードだし、特に最近変わったような雰囲気もない。原因切り分けのため、上記コードと同じ事をする簡単なテストコードをでっちあげて実行してみたら、同じように失敗する。 #include <sys/param.h> #include <sys/sysctl.h> #include <stdio.h> int main(void) { int pid = getpid(); int mib[4] = { CTL_KERN, KERN_PROC, KERN_PROC_PATHNAME, pid }; printf("pid = %d\n", pid); size_t bufSize = 1024; char buf[bufSize]; int result = sysctl(mib, 4, buf, &bufSize, NULL, 0); if (result < 0) { perror("sysctl"); } return 0; } -------- 実行結果 -------- $ ./sysctltest pid = 66245 sysctl: No such file or directory supR3HardenedExecDirでググるとprocfsをマウントし忘れてんじゃね?という投稿が出てくるが、今回の問題箇所はprocfsを不要とするための部分なのでprocfsをマウントしようがしまいが変わらない(大体今までprocfsマウントしてなくても動いてたし…)、と思いつつ藁をも掴む思いでマウントしてみたけど、やっぱり何の解決にもならなかった\(^o^)/ portsでソースからのインストールも試みたけどビルドがコケるし、もぅマヂ無理。リスカしょ…。 参考サイト [Call For Testing] VirtualBox for FreeBSD! [vbox-dev] [patch] FreeBSD without procfs VirtualBoxが起動しなかった | サーバいじくり雑記 Comments Name E-Mail Website 人間の証明として、ボックス内の全ての文字を入力してください。 この項目は空のままにして下さい:Preview Comment blog/2016/2016-11-08.txt 最終更新: 2016-11-09 16:45by Decomo