160 오류로 인해 isoimage 만들기에 실패했습니다.

160 오류로 인해 isoimage 만들기에 실패했습니다.

pxe 부팅에 사용할 새 커널(나중에 자세히 설명)을 빌드하려고 합니다. make를 실행했으므로 이제 필요한 파일을 추출할 수 있도록 make isoimage를 실행하려고 합니다. 내 시도는 다음과 같습니다. 레시피에서 요구하는 사항에 대한 아이디어가 있나요?

bradmin@LinuxDebianLive:/home/kernelbuild/linux-4.12.2$ sudo make isoimage
  CHK     include/config/kernel.release
  CHK     include/generated/uapi/linux/version.h
  CHK     include/generated/utsrelease.h
  CHK     include/generated/bounds.h
  CHK     include/generated/timeconst.h
  CHK     include/generated/asm-offsets.h
  CALL    scripts/checksyscalls.sh
  CHK     scripts/mod/devicetable-offsets.h
  CHK     include/generated/compile.h
  SKIPPED include/generated/compile.h
  LD      arch/x86/boot/compressed/vmlinux
  ZOFFSET arch/x86/boot/zoffset.h
  AS      arch/x86/boot/header.o
  LD      arch/x86/boot/setup.elf
  OBJCOPY arch/x86/boot/setup.bin
  OBJCOPY arch/x86/boot/vmlinux.bin
  BUILD   arch/x86/boot/bzImage
Setup is 17692 bytes (padded to 17920 bytes).
System is 4079 kB
CRC 55a16ccf
Kernel: arch/x86/boot/bzImage is ready  (#2)
rm -rf arch/x86/boot/isoimage
mkdir arch/x86/boot/isoimage
for i in lib lib64 share end ; do \
        if [ -f /usr/$i/syslinux/isolinux.bin ] ; then \
                cp /usr/$i/syslinux/isolinux.bin arch/x86/boot/isoimage ; \
                if [ -f /usr/$i/syslinux/ldlinux.c32 ]; then \
                        cp /usr/$i/syslinux/ldlinux.c32 arch/x86/boot/isoimage ; \
                fi ; \
                break ; \
        fi ; \
        if [ $i = end ] ; then exit 1 ; fi ; \
done
arch/x86/boot/Makefile:160: recipe for target 'isoimage' failed
make[1]: *** [isoimage] Error 1
arch/x86/Makefile:286: recipe for target 'isoimage' failed
make: *** [isoimage] Error 2
bradmin@LinuxDebianLive:/home/kernelbuild/linux-4.12.2$

추가 정보.. 잘못된 포럼에 질문을 게시했습니다.커널을 빌드하려는 이유에 대한 링크 나는 라이브 Clonezilla iso로 시작했습니다. pxe는 부팅할 때 dhcp를 사용하지 않습니다. 어떤 사람들은 커널이 문제일 수 있다고 제안했습니다. 이것이 내가 지금 있는 곳이다. make .config를 만드는 동안 IP에서 dhcp 지원을 활성화하는 매개변수인 커널 수준 자동 구성을 발견했는데, 이로 인해 어려움을 극복할 수 있었습니다. 그래서 make isoimage를 사용하여 iso를 만들기 시작했을 때 실패했고 그것이 현재의 상태입니다.

업데이트: 일부 진단을 위해 스크립트에 일부 에코를 추가했습니다. isolinux.bin 또는 ldlinux.c32를 찾을 수 없는 것 같습니다. 경험이 더 많았더라면 무슨 일이 일어나고 있는지 볼 수 있었을 텐데, 완성된 걸 본 이후로 그 부분은 완성된 것 같아요. 이제 끝을 클릭하면 종료 1(오류)이 발생하는 논리를 이해합니다.

스크립트 변경

isoimage: $(obj)/bzImage
    -rm -rf $(obj)/isoimage
    mkdir $(obj)/isoimage
    echo Start of loop
    for i in lib lib64 share end ; do \
        echo $$i; \
        if [ -f /usr/$$i/syslinux/isolinux.bin ] ; then \
            cp /usr/$$i/syslinux/isolinux.bin $(obj)/isoimage ; \
            if [ -f /usr/$$i/syslinux/ldlinux.c32 ]; then \
                cp /usr/$$i/syslinux/ldlinux.c32 $(obj)/isoimage ; \
            fi ; \
            break ; \
        fi ; \
        if [ $$i = end ] ; then echo "(isolinux.bin or ldlinux.c32) not found"; exit 1 ; fi ; \
    done
    echo start of copy
    cp $(obj)/bzImage $(obj)/isoimage/linux

산출:

Kernel: arch/x86/boot/bzImage is ready  (#2)
rm -rf arch/x86/boot/isoimage
mkdir arch/x86/boot/isoimage
echo Start of loop
Start of loop
for i in lib lib64 share end ; do \
    echo $i; \
        if [ -f /usr/$i/syslinux/isolinux.bin ] ; then \
                cp /usr/$i/syslinux/isolinux.bin arch/x86/boot/isoimage ; \
                if [ -f /usr/$i/syslinux/ldlinux.c32 ]; then \
                        cp /usr/$i/syslinux/ldlinux.c32 arch/x86/boot/isoimage ; \
                fi ; \
                break ; \
        fi ; \
        if [ $i = end ] ; then echo "(isolinux.bin or ldlinux.c32) not found"; exit 1 ; fi ; \
done
lib
lib64
share
end
(isolinux.bin or ldlinux.c32) not found
arch/x86/boot/Makefile:160: recipe for target 'isoimage' failed
make[1]: *** [isoimage] Error 1
arch/x86/Makefile:286: recipe for target 'isoimage' failed
make: *** [isoimage] Error 2
bradmin@LinuxDebianLive:/home/kernelbuild/linux-4.12.2$

답변1

대신에 syslinux를 다운로드해서 make isoimage사용 하시면 될 것 같습니다.보세요"ISOLINUX를 사용하여 부팅 가능한 CD를 만드는 방법은 무엇입니까?"더 많은 정보를 알고 싶습니다. 또한 배포판에 따라 genisoimage대신 사용할 수도 있습니다 mkisofs(옵션은 정확히 동일하지만).

배포판에 예상과 다른 사용자 정의된 syslinux가 있을 수 있습니다. 우분투는 이런 일을 하는 것으로 알려져 있습니다...

관련 정보