DD명령으로 2개의 bin을 합쳐 floppy 이미지를 만드려면??
글쓴이: hwiorb / 작성시간: 수, 2011/05/18 - 1:20오전
안녕하세요.
현재, 커널 공부를 하고 있습니다.
제가 궁금한게 bootloader와 kernel 바이너리 이미지를 부팅가능한 floppy.img로 만드려고 합니다.
dd로 2개의 바이러리 파일로 floppy 이미지를 만들면, Virtualbox에서 인식을 못하더라구요
(파일 크기가 안맞는 건지..)
현재 제가 찾은 방법은 이것인데요.
1. mkfs.dos -C floppy.img 1440 2. dd if=boot.bin of=floppy.img count=1 bs=512 3. dd if=kernel.bin of=floppy.img seek=1
현재 2번을 해버리면 1.44M에서 512Byte로 바뀌어 버리네요
Windows에서는 copy를 이용해서 바이너리를 묶어서 쓸수가 있던데,
리눅스에서는 어떻게 하면 될까요?
바이너리 파일을 묶거나, dd를 이용했을 때, byte를 dump해버리면 될것 같은데... 이런 건 없을까요?
Forums:
cat
DOS창에서 copy /b로 묶으셨다면 dd말고 cat으로 해결 가능합니다.
cat intput1 input2 > combined_output
---
input2를 만들기 위해 혹시 512 바이트를 파일의 앞에서 자르셔야 한다면 dd의 skip 옵션을 사용해서 준비하실 수 있습니다.
dd로 자르기
http://kldp.org/node/120238
dd를 이용해서 byte를 덮어쓸때, 1.44M라는
그렇다면, dd를 이용해서 byte를 덮어쓸때, 1.44M라는 용량은 늘어나지도 줄어들지도 않고,
해당하는 위치에 값들을 덮어쓸 수 있을까요?
Virtualbox에서 512바이트로 MBR만 덮어쓸 땐, floppy 이미지로 인식했는데,
뒤에 kernel 이미지가 추가되니, floppy 이미지 크기가 안맞아서 그런건지 인식을 못하더라구요.
nil.
Loopback mount
Floppy image를 loopback mount한 후 loopback device에 dd를 사용하시면 플로피의 boot record를 변경하실 수 있겠죠.
그 다음 loopback device를 input으로 잡고 (마운트된 floppy image를 원본으로 삼아) dd로 새 floppy image를 만드시면 아마 될 것 같습니다.
---
근데 이거보다 dd로 자르기가 편할 듯요.
댓글 달기