顯示具有 embedded 標籤的文章。 顯示所有文章
顯示具有 embedded 標籤的文章。 顯示所有文章

2009年2月22日 星期日

密技偷看initrd.gz 或.img 或ramdisk.gz

偷看initrd.gz 或.img 或ramdisk.gz

cp -af /boot/initrd-2.4.20-8.img .
mv initrd-2.4.20-8.img initrd.gz
gunzip initrd.gz
mkdir tmp
mount -o loop initrd tmp
--->tmp目錄下就是RH9的initrd內容
--->修改或參考
umount tmp
gzip initrd
mv initrd.gz initrd-2.4.20-8.img

好用的dd指令

##好用的dd指令
dd if=/dev/zero of=xxx count=8000 bs=1024
mke2fs xxx
mount -o loop xxx 路徑

磁片版linux


磁片檔案結構
***************
MBR
ldlinux.sys
zImage
initrd.gz
syslinux.cfg
***************
過程
#mkdosfs /dev/fb0
#syslinux /dev/fb0 做出 MBR 和 ldlinux.sys

製作busybox
#tar zxfv busybox-1.1.3.tar.gz
#make menuconfig 改 .config
#make;make install
mkdir缺的檔案
/proc /dev /etc
打包 做出initrd.gz
( #mke2fs #dd if=/dev/ram9 of=initrd )

製作kernel
make menuconfig裡的ramdisk和initrd要啟動
改.config
make dep
make zImage 做出zImage

寫syslinux.cfg
開機讀ldlinux.sys後會讀syslinux.cfg

複製到磁片

2009年2月20日 星期五

編譯toolchain和kernel

1. 使用RH9的Kernel config build linux-2.4.20

2. 使用自訂的Kernel config build linux-2.4.20
進階 : 改Makefile init/main.c
3. build 自己的toolchain在過程中,試驗若只有C compiler 是否能build kernel
最終需build出i386-linux toolchain
3-0 clean /usr/local
3-1 kernel header file
3-2 binutils
3-3 gcc-temp ----->試驗build kernel
3-4 glibc
3-5 gcc-final

***中途若有出錯 回3-0


crosstool

adduser xxx
passwd xxx
用xxx登入
tar zxf crosstool-0.43.tar.gz
更改demo-i686.sh , gcc-3.2.3-glibc-2.2.5.dat , i386.dat
./demo-i686.sh
試圖下載gcc , glibc , binutils , kernel
可以先放在downloads
最終的tool /opt/crosstool
mkdir -p /opt/crosstool -p 沒有就創
chown xxx:xxx /opt/crosstool

完成後可加上PATH=$PATH:/opt

刪除kernel
make modules_install
/lib/modules/2.4.20-my
make install
/boot/vmlinux-2.4.20-my
/boot/system.map-2.4.20-my
/boot/initrd-2.4.20-my.img
修改/boot/grub/grub.conf

my-i386-linux-toolchain
/user/local
#rm -rf /usr/local
#mkdir /usr/local

crosstool-i386-linux-toolchain
/opt/crosstool