まだlivecdステージにある(今のところ起動できない)Gentooインストールは、LVMを静的に出現させることができません。 initrdで使用するには、静的にコンパイルされたlvmが必要です。
私のmake.conf:
CFLAGS="-O2 -march=native -pipe"
CXXFLAGS="${CFLAGS}"
CHOST="x86_64-pc-linux-gnu"
USE="bindist mmx sse sse2 static"
出現するコンパイルエラー:
/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3/../../../../lib64/libudev.a(time-util.o): In function `now': (.text.now+0x8): undefined reference to `clock_gettime'
私も注意します:
これは何を意味するのでしょうか?この「.static」をファイル名に追加するにはどうすればよいですか?
この人にも同じ問題があったようですが、答えはありません: http://archives.gentoo.org/gentoo-user/msg_eb40f5d76161fda72d134551cc26d989.xml
このスレッドにも気づきました: http://forums.gentoo.org/viewtopic-p-4892618.html?sid=e41b07d9b8554c10430619e1f51d564a
LDFLAGS = "-lrt"をエクスポートしてみました
しかし、それは何も変更していないようで、それでも同じエラーです。
私にとっては(~AMD64
Gentooで)問題なく動作しますが、回避策としてlvm2からudev
useflagを削除してみてください。udevはinitramfsの段階では重要ではないためです。静的バイナリは/sbin/lvm.static
と呼ばれます(ビルドするにはstatic
useflagが必要です)。 ldd
を使用して、バイナリが静的であるかどうかを確認できます。
echo sys-fs/lvm2 static -udev >> /etc/portage/package.use
また、静的にビルドするパッケージの依存関係について、static-libs
useflagが有効になっているかどうかを確認してください。通常、ebuildはそれらの依存関係をチェックする必要がありますが、再確認することをお勧めします。