2012-03-02 13 views
7

क्या संपीड़ित कर्नेल छवि से समान जानकारी को निकालने का कोई अच्छा तरीका है? मैं चाहता हूं कि यह एक एम्बेडेड लिनक्स सिस्टम पर निष्क्रिय एमटी में बैठे कर्नेल के कुत्ते टैग को जांचने में सक्षम हो और वर्तमान में चल रहे कर्नेल से इसकी तुलना करें।एक संपीड़ित कर्नेल छवि से अनजान जानकारी प्राप्त करना

उत्तर

10

लिनक्स छवि gzip के साथ संपीडित के लिए, इस का उपयोग करें: संकुचित के अंत के बाद

dd if=arch/arm/boot/zImage bs=1 skip=$(LC_ALL=C grep -a -b -o $'\xFD\x37\x7A\x58\x5A\x00' arch/arm/boot/zImage | head -n 1 | cut -d ':' -f 1) | xzcat | grep -a 'Linux version' 

क्योंकि छवि फ़ाइल डेटा शामिल हैं:

dd if=arch/arm/boot/zImage bs=1 skip=$(LC_ALL=C grep -a -b -o $'\x1f\x8b\x08\x00\x00\x00\x00\x00' arch/arm/boot/zImage | cut -d ':' -f 1) | zcat | grep -a 'Linux version' 

लिनक्स छवि XZ साथ संकुचित के लिए, इस का उपयोग स्ट्रीम, आपको एक त्रुटि मिलेगी जिसे आप अनदेखा कर सकते हैं।

http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=blob;f=init/version.c;hb=HEAD#l40

+0

मेरे लिए काम नहीं करता:

स्ट्रिंग लगातार दिखाई देता है जमे हुए यूज़रस्पेस दिखाई कर्नेल एपीआई का हिस्सा बनने का। संदर्भित यूआरएल में स्ट्रिंग निरंतर नहीं मिला और न ही संस्करण.c के इतिहास में। 'फाइल' शो: कर्नेल/zImage: लिनक्स कर्नेल एआरएम बूट निष्पादन योग्य zImage (थोड़ा-एंडियन) –

+0

स्ट्रिंग स्थिरांक वहां है: http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git /tree/init/version.c?id=HEAD#n47 –

+0

@ डैनियल एल्डर आपकी छवि का किस प्रकार का संपीड़न उपयोग करता है? –

3

$ mkimage -l uImage

Image Name: Linux-2.6.39 
Created:  Wed Jun 6 13:49:58 2012 
Image Type: ARM Linux Kernel Image (uncompressed) 
Data Size: 3091036 Bytes = 3018.59 kB = 2.95 MB 
Load Address: 80008000 
Entry Point: 80008000 
+1

zImage के लिए भी काम करता है – chrisvarnz

+0

'यू-बूट-टूल्स' के अंदर आता है – sanmai

संबंधित मुद्दे