Initramfs 관련입니다

안녕하세요?/

현재 ubuntu initramfs변경하는 작업중에 있습니다.
그런데 이미지는 잘 만들어 졌는데 reboot시 새로 추가한 스크립트가 실행되지 않는 문제가 발생합니다.
ㅜㅜ 도움 요청드려요,.

작업방법

  1. 스크립트 작성 (단순 디렉토리 생성 스크립트)
    >vi /usr/share/initramfs-tools/hooks/test
  2. 이미지 재압축
    >update-initramfs -u (test 스크립트 실행되며 디렉토리 생성 됨)

문제
rm 명령어로 해당 디렉토리 삭제 > reboot > 디렉토리 생성 안됨

제가 아는 것이라곤, 그런 것 들이 있다더라 정도입니다만… 그래서, 제가 틀렸을지도 모르겠습니다. 감안해서 참고로만 보시고 제가 틀린 부분은 고쳐서 알려주시면 저도 공부되니 좋습니다.

script 안에서 디렉토리를 생성하기 위하여 어떻게 하셨나요? 혹시 mkdir을 쓰셨다면 안될 것입니다.

아시다시피 init ram file system은 초기 file system이며, 하드 디스크의 파일 시스템은 아직 안보입니다. 따라서, 사용하는 모든 program은 initramfs 안에 있어야 합니다. mkdir은 shell 안의 built-in command가 아니므로 mkdir (물론 dll를 쓴다면 그것도)을 initramfs에 넣어야 합니다. 또한, 설사 mkdir을 사용할 수 있다고 하더라도, 이미 언급했듯이 하드 디스크의 파일 시스템은 아직 제대로 마운트된 것이 아니라서 하드 디스크의 파일 시스템에 디렉토리가 만들어질지도 의문입니다. (이것은 해보지 않아서 모르겠습니다.)

잘 아시겠지만, initramfs 안에 무었이 있나 보시고 싶으면 다음과 같이 해 보세요.

[code:2azzwd0c]
$ mkdir tmp
$ cd tmp
$ cp /boot/initrd.img-3.13.0-30-generic .
$ gunzip -c initrd.img-3.13.0-30-generic | cpio -i -d -H newc --no-absolute-filenames
[/code:2azzwd0c]

위 kernel version은 가지고 계신것을 맞추어 하시면 될 것 같고요. cp는 꼭 필요한 것은 아니지만, 혹시 사용하는 것을 망칠까보아서 복사해서 장난치는 것이고요.
위와 같이 하면, tmp 안에 initramfs의 내용이 압축이 풀려서 보이니, 무었이 있는지 살펴볼 수 있겠죠.