initramfs에 컬을 추가하도록 initramfs-tools를 구성하고 Ubuntu 10.04 서버의 intitrd에 있는 동안 부팅 시 스크립트에서 컬을 실행합니다.

initramfs에 컬을 추가하도록 initramfs-tools를 구성하고 Ubuntu 10.04 서버의 intitrd에 있는 동안 부팅 시 스크립트에서 컬을 실행합니다.

initramfs의 작동 방식과 구성 방법을 배우려고 노력 중입니다. initramfs에서 사용 가능한 패키지에 컬을 추가하고 부팅 중에 컬을 사용하는 스크립트를 실행하고 싶습니다(이는 네트워크가 그 전에 설정되어야 함을 의미합니다).

어떻게 해야 하나요? (커널을 업그레이드할 때도 작동하려면 이 기능이 필요합니다.)

답변1

initramfs 후크를 편집해야 합니다. 다음과 같이 자신만의 파일을 생성하세요:

$ cat /usr/share/initramfs-tools/hooks/curl
#!/bin/sh -e
PREREQS=""
case $1 in
        prereqs) echo "${PREREQS}"; exit 0;;
esac
. /usr/share/initramfs-tools/hook-functions
copy_exec /usr/bin/curl /bin

initramfs를 다시 빌드하세요.

$ sudo update-initramfs -u
update-initramfs: Generating /boot/initrd.img-3.8.0-4-generic

실제로 거기에 도착했는지 확인하십시오.

$ lsinitramfs -l /boot/initrd.img-3.8.0-4-generic | grep curl
-rw-r--r--   1 root     root       385704 Nov 28 18:32 usr/lib/x86_64-linux-gnu/libcurl.so.4
-rwxr-xr-x   1 root     root       150344 Nov 28 18:32 bin/curl

답변2

가장 먼저 알고 싶은 것은 Ubuntu가 전통적인 init 대신 Upstart라는 시스템을 사용하고 있다는 것입니다. 초기 램디스크는 계속 사용되지만 init 대신 upstart를 재구성하게 됩니다.

둘째, initrd의 맥락 내에서 이 작업을 완전히 수행하시겠습니까? 그렇다면 이것은 훨씬 더 복잡해질 것입니다.

관련 정보