![RHEL iso에서 initrd 이미지를 추출하고 스크립트를 initrd /bin/에 넣는 방법](https://linux55.com/image/79797/RHEL%20iso%EC%97%90%EC%84%9C%20initrd%20%EC%9D%B4%EB%AF%B8%EC%A7%80%EB%A5%BC%20%EC%B6%94%EC%B6%9C%ED%95%98%EA%B3%A0%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EB%A5%BC%20initrd%20%2Fbin%2F%EC%97%90%20%EB%84%A3%EB%8A%94%20%EB%B0%A9%EB%B2%95.png)
initrd /bin에 넣고 싶은 사용자 정의 셸 스크립트(명령)를 작성한 다음 이를 Linux OS /opt/xyz 디렉터리에 복사하려고 합니다. 여기서 xyz는 설치 중에 생성된 사용자 정의 디렉터리입니다.
이 작업을 어떻게 수행할 수 있습니까?
답변1
어떻게?
Redhat initramfs 예제 가져오기
cp /boot/initramfs-2.6.32-220.el6.x86_64.img initramfs.img
우리는 무엇을 가지고 있습니까?
- initramfs.img: Unix의 gzip 압축 데이터, 마지막 수정: 2015년 10월 22일 목요일 07:04:25, 최대 압축
압축하다
gunzip < initramfs.img > initramfs.stage1
- initramfs.stage1: ASCII cpio 아카이브(CRC가 없는 SVR4)
그것을 추출하다
cpio -icv < initramfs.stage1
(lots of line)
usr/sbin
usr/sbin/eject
usr/sbin/chroot
96258 blocks
내 물건 추가
mkdir opt/xyz
date > opt/xyz/foo.txt
리드 없음 /
!
cpio 리메이크(initramfs.* 파일을 삭제했습니다)
find . -type f -print | cpio -ocv > ../newinitram.stage2
(lots of lines)
./usr/bin/mkfifo
./usr/sbin/eject
./usr/sbin/chroot
96186 blocks
우리는 무엇을 가지고 있습니까?
- ../newinitram.stage2: ASCII cpio 아카이브(CRC가 없는 SVR4)
이제 압축해 보세요.
gzip -9 < ../newinitram.stage2 > newinitrd.stage3
- newinitrd.stage3: Unix의 gzip 압축 데이터, 마지막 수정: 2015년 12월 19일 토요일 06:32:08, 최대 압축
이제 커널 부팅이 쉬워졌습니다.