답변:
이에 대한 일반적인 대답은 iso 파일의 압축을 풀고 수정 한 후 다시 압축하는 것입니다. dv3500ea의 답변에서 언급했듯이 "ISO Master"처럼 보이는 것이 좋습니다.
만약:
그렇다면이 대답은 당신을위한 것입니다!
요약하면 isofs 파일 시스템의 기존 파일을 원하는 파일로 바꿉니다. 원하는 파일은 기존 (대상) 파일보다 작아야하며 후행 공백 (또는 가비지)이 허용 가능해야합니다. 실제로 두 명령 만 필요하지만주의하십시오. 오타는 대상 파일 시스템을 완전히 파괴하거나 소스 파일을 덮어 쓸 수도 있습니다. 백업은 당신의 친구입니다!
필자의 경우 스크립트를 라이브 부팅에 저장하여 매번 다시 입력 할 필요가 없었습니다. 스크립트가에 script.py
있고 내 대상 (USB 스틱)이에 /dev/sdc
있습니다. 스크립트의 크기는 202 바이트이므로 첫 번째 단계는 202 바이트보다 큰 파일을 찾는 것이므로 덮어 쓸 수 있습니다. 에 마운트 한 후에 /mnt
적합한 파일을 찾았습니다 /mnt/info.txt
.
우리는 info.txt
마운트 포인트를 덮어 쓸 수 없으며 읽기 전용 파일 시스템이라고 불평합니다. 우리는 근본이기 때문에 그것이 무엇을 의미하는지 보여 드리겠습니다! info.txt
파일 시스템의 어디에 있는지 알아 내야 합니다. info.txt
예를 들어 고유 한 문자열을 찾아 This is the official distribution CD of X.
디스크에서 검색하십시오.
$ sudo strings -a -t d /dev/sdc | grep 'CD of X.'
2573588480 This is the official distribution CD of X. See INSTALL for how to [...]
또는 grep을 사용하여 훨씬 빠르게 수행 할 수도 있지만 처음부터 지정해야합니다 $ sudo grep -oba 'This is ...' /dev/sdc
.
이제 그것이 어디에 있는지 알았으므로, 그 바이트를 파일로 바꾸면됩니다.
$ sudo dd if=script.py of=/dev/sdc conv=notrunc bs=1 seek=2573588480 count=202
이 줄 :
if
)에서 출력 파일 ( of
)로 바이트를 복사 하며 "모든 것이 파일"이므로 출력 파일이 실제로 장치인지는 상관하지 않습니다.conv=notrunc
우리는 출력 파일을 자르지 말라고 지시합니다. 왜냐하면 우리는 특정 시점부터 파일을 덮어 쓰지 않고 몇 바이트 만 덮어 쓰려고하기 때문입니다.bs=1
블록 크기를 1로 설정합니다. 일반적으로 4k 이상의 블록 크기를 원하지만 둘 다 (인라인) 수학을 수행하지 않고 바이트에 정확한 위치를 지정할 수 있습니다.seek=N
출력 파일에서 특정 지점을 찾습니다 ( 입력 파일에서 바이트를 건너 뛰기 때문에 seek=N
와 다릅니다 ). 물론 대상 텍스트가있는 위치로 설정했습니다.skip=N
skip
count=N
이 많은 바이트 만 복사하십시오. 입력 파일의 끝을 알 수 있기 때문에 이것을 생략 할 수 있다고 생각하지만 확실하게 남겨 두었습니다.그리고 짜잔, 파일을 덮어 씁니다!
그러나 대상 파일이 스크립트보다 크기 때문에 USB 스틱에서 파일은 이제 "run () blah; blah (); yright 2007 X Inc. 후행 쓰레기가 있습니다. 이 문제를 해결하는 두 가지 방법 : 입력 파일을 더 길게 (공백 추가) 또는 끝에 주석 기호를 추가하십시오. 설정할 수 있도록 많은 편집자가, 마지막에 개행을 추가하는 것이 주 count=
에 N-1
바이트 (파일은 이제 203 바이트 인 경우, 당신은 마지막 바이트가 줄 바꿈, 202 세트 수를 것을 알). xxd script.py | tail
마지막 바이트가 0a
(또는 이상한 경우 0d
) 사용 하고 확인 하여 줄 바꿈 파일을 확인할 수 있습니다 .
프로세스는 .iso
파일에 대해 동일하며 정신적으로 대체 /dev/sdc
됩니다 your.iso
.
마운트 지점에서 대상이 작동하는지 확인하기 위해 strings
파일이 여전히 읽기 캐시 에 있으므로 다시 사용해야 합니다 (이번에는 스크립트를 검색해야 함).