왜 오류가 발생하는지 이해가 되지 않습니다.초기화 파일( 이것초기화 파일clonezilla ISO 파일의 원본 파일입니다.
cp initrd.img /tmp
zcat /tmp/initrd.img | cpio -idm
zcat: initrd.img: not in gzip format
cpio: premature end of archive
내가 수행한 전체 단계는 다음과 같습니다.
내가 다운로드한 것은clonezilla-live-2.1.2-43-i686-pae.zip웹사이트의 파일: http://clonezilla.org/livepxe.php
그런 다음 나는 다음을 수행하여초기화 파일파일은 다음과 같습니다:
unzip -j clonezilla-live-2.1.2-43-i686-pae.zip live/vmlinuz live/initrd.img live/filesystem.squashfs -d /tftpboot/nbi_img
그런 다음 복사했습니다.
cp /tftpboot/nbi_img/initrd.img /tmp
모든 최종 단계는 다음과 같습니다장소. 여기서 문제가 무엇인지 알려주십시오.
나는 또한 성공하지 않고 이것을 시도했습니다 - :(
관련된:http://www.thegeekstuff.com/2009/07/how-to-view-modify-and-recreate-initrd-img/
mv initrd.img.gz initrd.gz
gunzip initrd.gz
gunzip: initrd.gz: not in gzip format
답변1
앞서 언급했듯이 zcat
gzip 형식이 아닙니다. 실행하여 file
형식을 인식하는지 확인하세요. lzma일 수 있으며, 이 lzcat
경우 zcat
.
답변2
이것이 오래된 주제라는 것을 알고 있지만 여러 사용자 정의 패키지를 포함하도록 다시 만들어진 openSUSE iso에 gpg 키를 추가하는 방법을 찾고 있을 때 이 주제를 발견했습니다. 내가 찾고 있는 정보를 찾는 데 문제가 있어서 다른 사람들이 유용하다고 생각할 경우를 대비해 자세한 지침을 추가해야겠다고 생각했습니다. 이 지침의 다른 부분은 다른 웹사이트에서 찾을 수 있습니다. 나는 그것들을 상세한 목록으로 정리했습니다. 그들이 하는 일은 정말 중요합니다.
iso 이미지의 initrd가 아닌 로컬 initrd를 수정하기 위해 작성했지만 과정은 동일합니다.
참고: 다음 지침은 /boot/initrd-3.16.7-24-desktop을 initrd로 사용하는 내 시스템에서 사용하는 지침입니다. 현재 initrd 파일이 /boot/initrd-3.16.7-24-desktop이 아닌 경우 이러한 명령을 수정해야 합니다.
절차는 다음과 같습니다.
/boot/initrd에 긴 목록을 만들어 그것이 가리키는 파일을 확인하십시오.
root@host:~ # ls -l /boot/initrd lrwxrwxrwx 1 root root 24 Sep 10 10:08 /boot/initrd -> initrd-3.16.7-24-desktop
작업할 디렉터리를 만듭니다.
root@host:~ # mkdir -p -m 755 mod-initrd/new-initrd
현재 initrd를 작업 디렉터리에 복사합니다.
root@host:~ # cp /boot/initrd-3.16.7-24-desktop mod-initrd/initrd.xz
initrd가 추출될 디렉토리로 cd합니다.
root@host:~/mod-initrd # cd mod-initrd/new-initrd
initrd 추출:
root@host:~/mod-initrd/new-initrd # xzcat ../initrd.xz | cpio -d -i -m
원하는 대로 변경하세요.
원본 initrd의 복사본을 저장합니다.
root@host:~/mod-initrd/new-initrd # mv ../initrd.xZ ../initrd-original
수정된 내부를 압축합니다.
root@host:~/mod-initrd/new-initrd # find . | cpio -o -H newc | xz --check=crc32 --x86 --lzma2=dict=512KiB > ../initrd.xz
현재 initrd를 수정된 initrd로 교체합니다. 이렇게 하면 수정된 버전이 재부팅 시 적용됩니다.
root@host:~/mod-initrd/newinitrd # mv ../initrd.xz /boot/initrd-3.16.7-24-desktop
변경 사항을 테스트하려면 다시 시작하세요.
root@host:~/mod-initrd/new-initrd # init 6
변경 사항을 테스트하기 전에 추출된 initrd를 삭제하지 마십시오. 이렇게 하면 조정이 필요한 경우 6, 8, 9, 10단계를 따르십시오.
키가 자동으로 신뢰되도록 openSUSE 이미지에 자신의 GPG 키를 추가하려는 사람을 위한 한 가지 방법은 다음과 같습니다.
다음 명령을 실행하여 GPG 키의 ID를 가져옵니다.
gpg --list-keys
줄 중 하나는 pub 2048R/BB6D5E99로 시작해야 합니다.
위 예에서 ID는 "BB6D5E99"입니다.
다음 명령을 실행하여 GPG 공개 키를 내보냅니다.
gpg --export -a "BB6D5E99" > "file-name-for-the-exported-key"
다음 명령을 실행하여 추출된 initrd에 gpg 키를 추가합니다.
echo "file-name-for-the-exported-key" | cpio -o -H newc -A -F "full-path-of-directory-holding-extracted-initrd"