星期三, 12月 28, 2005

Copy 部份的binary 檔出來 -- 或說是 砍掉檔案的某一部份

因為有廠商送demo image,竟然將bootloader 和 kerenl + root 合在一起的rom image送過來,
這樣就沒辦法mount rootfs 進來看,而且也會破壞掉我原來的bootloader,
所以還是把他分開來。

本以為是用objdump, objcopy,但是這兩個tool好像能對有symbol table, sector information的檔案格式(obj) 操作。

最後,只有想到這個 : dd 這個command

dd 的man 說 option 有..
ibs=BYTES  每次讀取BYTES bytes
if=FILE 從FILE 讀入資料(如果沒指定,就是從stdin)
of=FILE 輸出到FILE (如果沒指定,就輸出到stdout)
skip=BLOCKS 跳過開頭BLOCKS ibs單位的資料不要copy
所以我要從file 的0x00280000 開始copy,copy到最後,command是...
$ dd if=orgimage of=kandr ibs=64k skip=40
因為0x10000 = 64k, 0x28 = 40.
這 樣就可以把orgimage的後半部份(從0x00280000開始)copy出來。
如果是要copy 前半段,就用count=
$dd if=orgimage of=head ibs=1M count=4
就是copy orgimage的前4M出來到head。


另外記一下,分割的方法..split
split -b 1m mySong.mp3  mySong
會把mySong.mp3 分成1M大小的mySone00,mySong01...

合併就用' cat' 啦
cat mySong00 mySong01 mySong02 > mySong.mp3

沒有留言:

網誌存檔