自己做个迷你型 linux 内核
hda1----新装的 RH9
hdc1----64M 的硬盘,生成的小型 linux 就装在这个盘上,还未分区格式化。
环境:ms 的虚拟机 5.1 版。
先重新编译内核,把不需要的全部去掉,这样模块也只有几 M 了。编译后生成了
内核:vmlinuz-2.4.20-8custom
initrd:initrd-2.4.20-8custom.img(这个没用到,在 GRUB 中使用它反而不能启动了,
提示要加 init 内核参数。)
可加载模块:/lib/modules/2.4.20-8custom
fdisk /dev/hdc 分区,并激活,保存后退出。
mkext2fs /dev/hdc1
mkdir /mnt/hd2
mount /dev/hdc1 /mnt/hd2
mkdir /mnt/hd2/boot/grub -p
cp /boot/vmlinuz.2.4.20-8custom /mnt/hd2/boot/ -a
cp /boot/initrd.2.4.20-8custom /mnt/hd2/boot/ -a
cp /boot/grub/stage? /mnt/hd2/boot/grub/ -a
cp /boot/grub/grub.conf /mnt/hd2/boot/grub/ -a
cp /boot/grub/e2fs_stage1_5 /mnt/hd2/boot/grub/ -a
然后运行:grub
root (hdc1,0)
setup (hdc)
quit
这样,小硬盘就能启动了(不过进不了系统,内核启动完后就死了)。但是记得要配置
一下 grub.conf,改成:
default=1
timeout=10
title linux
root (hd0,0)
kernel /boot/vmlinuz-2.4.20-8custom ro root=/dev/hda1
不能够加入 initrd,要不然会出错的,不清楚原因。有谁知道的可以告诉我吗?
[email]cexoyq1020@163.com[/email],谢谢了。
制作文件系统
建立目录:/home,/mnt,/proc,/lib,/sbin,/bin,/root,/etc,/dev
需要的文件:/dev
/dev/console
系统控制台设备,非常重要。
/dev/fd0 第一个软驱
/dev/hda
/dev/hda[1-8]
IDE 硬盘及分区
/dev/initctl
实际上是一个 FIFO 设备,跟 init 有关(切换运行级别时用于新 init 与原 init 通信)