Initrd文件制作的老方法
2008-06-23 14:38
295 查看
1.内核编译
cd /usr/src/....
make mrproper
make menuconfig-----请注意一定加入RAM disk support 和initial RAM disk (initrd) support 的支持
make dep
meke clean
make bzImage
没有加入对modules的支持,生成的bzImage文件在usr/src/linux/arch/x86_64/
2.busybox
#cp busybox-1.00.tar.gz /tmp/ada
#cd /tmp/ada
#tar xvfz busybox-1.00.tar.gz
#cd busybox-1.00
#make menuconfig
下面是需要编译进busybox的功能选项,其他的可以根据需要自选,但是同样不要太贪心.
General Configuration应该选的选项
Show verbose applet usage messages
Support for SUID/SGID handling里面的:
Runtime SUID/SGID configuration via /etc/busybox.conf
Build Options
Build BusyBox as a static binary (no shared libs)
这个选项是一定要选择的,这样才能把busybox编译成静态链接的可执行文件,运行时才独立于其他函数库.否则必需要其他库文件才能运行,在单一个linux内核不能使他正常工作.
Installation Options
Don't use /usr
这个选项也一定要选,否则make install 后busybox将安装在原系统的/usr下,这将覆盖掉系统原有的命令.选择这个选项后,make install后会在busybox目录下生成一个叫_install的目录,里面有busybox和指向他的链接.
其他选项都是一些linux基本命令选项,自己需要哪些命令就编译进去,一般用默认的就可以了.
配置好后退出并保存.
make
make install
编译好后在busybox目录下生成子目录_install,里面的内容:
drwxr-xr-x 2 root root 4096 11月 24 15:28 bin
lrwxrwxrwx 1 root root 11 11月 24 15:28 linuxrc -> bin/busybox
drwxr-xr-x 2 root root 4096 11月 24 15:28 sbin
其中可执行文件busybox在bin目录下,其他的都是指向他的符号链接.
3.制作自己的root fs
1.目录结构
mkdir /mnt/myOS/rootfs
cd /mnt/myOS/rootfs
mkdir etc usr var tmp proc home root dev
其中etc,proc和dev是一定要建的,bin和sbin不用建,因为busybox中已经有了.
其他的可以象征性的建几个就可以了.
拷贝busybox
#cp -R /tmp/ada/busybox-1.00/_install/* /mnt/myOS/rootfs/
2.设备文件
我是直接在redhat系统/dev目录里cp的,方法如下:
#cp -R /dev/console ../rootfs/dev/
#cp -R /dev/null ../rootfs/dev/
#cp -R /dev/zero ../rootfs/dev/
你认为需要的都cp过来
(有的文章说 fd0,hda,ram,ram1,tty1,null,zero,loop1,fb0,fb,tty等是必备的--)
3,建立etc目录下的配置文件
我是直接拷贝busybox自带的例子 (这是我自己试出来的一种方法,不知道标准的怎么做--)
cp -R .../busybox-1.00/examples/bootfloppy/etc/* /mnt/myOS/rootfs/etc
4.制作ramdisk映象文件
cd /mnt/myOS/
dd if=/dev/zero of=/dev/ram0 bs=1M count=4 ------初始化4M内存空间 //这一步可以改一改:否则img最大只能 为4M, of=/tmp/myimg bs=1M count=32
mkfs.ext3 -m0 /dev/ram0 ------格式化为ext3
mkdir /mnt/ram
mount /dev/ram0 /mnt/ram ------挂载到/mnt/ram
cp -R rootfs/* /mnt/ram ------把rootfs写入内存
umount /mnt/ram
dd if=/dev/ram0 of=/mnt/myOS/ramdisk.img ------把内存中的内容以映象方式取出
ok,这个ramdisk.img就是我们的rootfs
1.kernel 一般命名为vmlinuz
就是/usr/src/linux/arch/x86_64/boot/bzImage
2.rootfs 一般命名为initrd.img
已经在这个目录了,就是ramdisk.img
cd /usr/src/....
make mrproper
make menuconfig-----请注意一定加入RAM disk support 和initial RAM disk (initrd) support 的支持
make dep
meke clean
make bzImage
没有加入对modules的支持,生成的bzImage文件在usr/src/linux/arch/x86_64/
2.busybox
#cp busybox-1.00.tar.gz /tmp/ada
#cd /tmp/ada
#tar xvfz busybox-1.00.tar.gz
#cd busybox-1.00
#make menuconfig
下面是需要编译进busybox的功能选项,其他的可以根据需要自选,但是同样不要太贪心.
General Configuration应该选的选项
Show verbose applet usage messages
Support for SUID/SGID handling里面的:
Runtime SUID/SGID configuration via /etc/busybox.conf
Build Options
Build BusyBox as a static binary (no shared libs)
这个选项是一定要选择的,这样才能把busybox编译成静态链接的可执行文件,运行时才独立于其他函数库.否则必需要其他库文件才能运行,在单一个linux内核不能使他正常工作.
Installation Options
Don't use /usr
这个选项也一定要选,否则make install 后busybox将安装在原系统的/usr下,这将覆盖掉系统原有的命令.选择这个选项后,make install后会在busybox目录下生成一个叫_install的目录,里面有busybox和指向他的链接.
其他选项都是一些linux基本命令选项,自己需要哪些命令就编译进去,一般用默认的就可以了.
配置好后退出并保存.
make
make install
编译好后在busybox目录下生成子目录_install,里面的内容:
drwxr-xr-x 2 root root 4096 11月 24 15:28 bin
lrwxrwxrwx 1 root root 11 11月 24 15:28 linuxrc -> bin/busybox
drwxr-xr-x 2 root root 4096 11月 24 15:28 sbin
其中可执行文件busybox在bin目录下,其他的都是指向他的符号链接.
3.制作自己的root fs
1.目录结构
mkdir /mnt/myOS/rootfs
cd /mnt/myOS/rootfs
mkdir etc usr var tmp proc home root dev
其中etc,proc和dev是一定要建的,bin和sbin不用建,因为busybox中已经有了.
其他的可以象征性的建几个就可以了.
拷贝busybox
#cp -R /tmp/ada/busybox-1.00/_install/* /mnt/myOS/rootfs/
2.设备文件
我是直接在redhat系统/dev目录里cp的,方法如下:
#cp -R /dev/console ../rootfs/dev/
#cp -R /dev/null ../rootfs/dev/
#cp -R /dev/zero ../rootfs/dev/
你认为需要的都cp过来
(有的文章说 fd0,hda,ram,ram1,tty1,null,zero,loop1,fb0,fb,tty等是必备的--)
3,建立etc目录下的配置文件
我是直接拷贝busybox自带的例子 (这是我自己试出来的一种方法,不知道标准的怎么做--)
cp -R .../busybox-1.00/examples/bootfloppy/etc/* /mnt/myOS/rootfs/etc
4.制作ramdisk映象文件
cd /mnt/myOS/
dd if=/dev/zero of=/dev/ram0 bs=1M count=4 ------初始化4M内存空间 //这一步可以改一改:否则img最大只能 为4M, of=/tmp/myimg bs=1M count=32
mkfs.ext3 -m0 /dev/ram0 ------格式化为ext3
mkdir /mnt/ram
mount /dev/ram0 /mnt/ram ------挂载到/mnt/ram
cp -R rootfs/* /mnt/ram ------把rootfs写入内存
umount /mnt/ram
dd if=/dev/ram0 of=/mnt/myOS/ramdisk.img ------把内存中的内容以映象方式取出
ok,这个ramdisk.img就是我们的rootfs
1.kernel 一般命名为vmlinuz
就是/usr/src/linux/arch/x86_64/boot/bzImage
2.rootfs 一般命名为initrd.img
已经在这个目录了,就是ramdisk.img
相关文章推荐
- 2.6内核的Initrd文件制作方法
- Arcgis10.1 3种方法快速制作tpk文件 .
- busybox 在制作根文件系统让shell显示主机 用户名和工作目录的方法
- RHEL6通过安装光盘或ISO文件制作本地yum源的方法
- patch文件制作,排除符号链接的方法
- ([\u@\h\W]\# busybox 在制作根文件系统的处理方法
- RHEL通过安装光盘或ISO文件制作本地yum源的方法
- busybox 显示用户名及路径 -----[\u@\h\W]\# busybox 在制作根文件系统的处理方法
- 流媒体地址文件制作方法
- c#程序的安装文件制作方法和打包
- 实验八 作业指令文件的制作方法
- 制作img镜像文件的5种方法
- 屏保文件scr文件制作方法
- 一般软件最小化绿色文件的制作方法:
- 【转】delphi制作资源文件和释放资源文件的方法
- [PCB设计] 2、畸形PCB板子的制作核心——AD14导入dwg格式文件的方法
- 3种方法快速制作tpk文件
- [\u@\h\W]\# busybox 在制作根文件系统的处理方法
- 制作jar文件的方法
- QT在Windows下发布程序的方法(安装文件的制作)