jor1k는 vmlinux.bin과 함께 제공됩니다.. 나는 그것이 어디에 있을지 모르기 때문에 거기에 initrd가 있다고 생각합니다. 변경할 수 있도록 파일 시스템 이미지를 추출하려고 하는데 방법을 모르겠습니다.
Linux 소스 배포판에서 extract-vmlinux를 사용해 보았지만 Cannot find vmlinux
.
답변1
cpio newc 헤더(로 시작)를 찾을 수 있습니다 0707010
.
$ grep -abo 0707010 vmlinux.bin | head -n1
2531404:0707010
-a
( all 파일의 경우, 바이너리 파일도 포함), ( yte 오프셋 -b
의 경우 b) 및 -o
( o일치 부분만 해당(일치 부분을 포함하는 줄이 아닌 일치 부분의 바이트 오프셋을 보고))은 비표준 GNU 확장이지만 grep
편리하게 사용할 수 있습니다. 파일에서 주어진 문자열의 위치를 알아냅니다( grep
다른 많은 구현과 달리 GNU는 grep
텍스트가 아닌 파일(즉, 두 파일 사이에 임의로 긴 바이트 시퀀스가 있을 수 있는 0바이트 값을 포함할 수 있는 파일)도 지원합니다) LF 문자는 LF 문자로 끝날 수 없거나 현재 로케일에서 유효한 문자를 구성하지 않는 바이트 또는 바이트 시퀀스를 포함할 수 있습니다. 이는 이와 관련된 요구 사항입니다.
$ tail -c +2531405 vmlinux.bin| cpio -t | head
bin
bin/sleep
bin/kill
bin/watch
bin/deluser
bin/getopt
bin/uname
bin/nice
bin/zcat
bin/cpio
( grep -b
오프셋은 0에서 시작하고 tail -c
오프셋은 1에서 시작합니다).
답변2
첫 번째 단계는 입니다 file vmlinux.bin
.
죄송합니다. "vmlinux.bin:data"는 일반적으로 이에 대해 많은 의미를 갖습니다. 파일이 인식되지 않으면 file
표준 유틸리티가 도움을 줄 수 없습니다.
그러나 다운로드 페이지를 보면 이는 Linux 커널의 OpenRISC 1000 버전인 것으로 보입니다. 그러므로 file
그것을 인식하지 못하는 것은 완전히 의미가 있습니다.
OpenRISC 1000에 대해서는 모르지만 이 특별한 경우에는 initrd가 필요하지 않은 것 같습니다.