아직 livecd 단계(현재 시작할 수 없음)에 있는 젠투 설치는 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'
나는 또한 다음을 발견했습니다.
- 경고, 더 이상 /sbin/lvm 및 /sbin/dmsetup을 다음으로 덮어쓰지 않습니다.
- 정적 버전. 정적 바이너리가 필요한 경우,
- 파일 이름에 .static을 추가해야 합니다!
무슨 뜻이에요? 파일 이름에 ".static"을 어떻게 추가할 수 있나요?
같은 질문을 했지만 대답이 없는 사람을 봤습니다.http://archives.gentoo.org/gentoo-user/msg_eb40f5d76161fda72d134551cc26d989.xml
나는 또한 다음 스레드를 발견했습니다.http://forums.gentoo.org/viewtopic-p-4892618.html?sid=e41b07d9b8554c10430619e1f51d564a
LDFLAGS="-lrt" 내보내기를 시도했습니다.
그러나 아무것도 변경되지 않는 것 같습니다. 여전히 동일한 오류가 발생합니다.
답변1
나에게는(젠투에서는) 잘 작동 하지만, initramfs 단계에서는 udev가 중요하지 않기 때문에 해결 방법으로 lvm2에서 useflag를 제거해 ~amd64
보십시오 . udev
정적 바이너리를 호출합니다 /sbin/lvm.static
(빌드 useflag 필요 static
). 다음을 ldd
사용하여 바이너리가 정적인지 확인할 수 있습니다.
echo sys-fs/lvm2 static -udev >> /etc/portage/package.use
또한 static-libs
정적으로 빌드하려는 패키지의 종속성에 대해 useflag가 활성화되어 있는지 확인하십시오. 일반적으로 ebuild는 이러한 종속성을 확인해야 하지만 다시 확인하는 것이 더 좋습니다.