- 论坛徽章:
- 0
|
很久以来就想按照自己的需求来裁减一个Linux操作系统,但是最近几天才开始动起来。一开始尝试着用LFS的方式去做,但是做了5、6次都没有成功,晕死了。后来参考网络上的制作Mini Linux和USB Linux的方式来做,这个方法也尝试了很多次(不下10多次,本人比较笨,没办法),最后还是成功了!呵呵,开心啊!
第一步,尽量裁减一个小的系统,能够启动,并能进入shell。
这个要求很简单,只要系统能够进入shell,哪怕它什么都做不了,但是它的成功会给后面的裁减带来信心的。
实现的步骤:
step by step
一、准备工作:
1、安装VMware虚拟机(这个步骤很简单,不赘述了)
2、在虚拟机中安装一个发行版Linux,我安装的是Magic Linux 2.0,这个系统安装好后会有编译环境的。
3、另外在虚拟机中再新建一个Linux虚拟机,但是不安装系统。(测试用的)
4、下载Linux内核源代码和busybox到本地硬盘上。
我下载的是:linux-2.6.21.tar.bz2,busybox-1.00.tar.bz2
5、配置好VMware的网络,用来传输源代码和busybox。
我的配置是:
VMware的网络设置成Host-only,VMware Network Adapter VMnet1的IP地址设置成192.168.0.1;
Magic Linux中的网络采用手动的设置,设置成192.168.0.5。
6、将kernel源代码和busybox源码复制到Magic Linux下
通过samba的方式,将linux-2.6.21.tar.bz2,busybox-1.00.tar.bz2复制到/home目录下,然后关闭Magic Linux。
7、在Magic Linux系统中添加一个硬盘,这个硬盘就是我们用来测试的虚拟机硬盘。
在Magic Linux虚拟机中,点击“Virtual Machine Setting”-“Add”-“Hard Disk”-“Use an existing virtual disk”,然后选中Test Linux下面的虚拟硬盘“Other Linux.vmdk”
二、编译内核:
1、启动Magic Linux,在grub中选择(single mode)
2、启动完成后
3、cd /home
tar xvf linux-2.6.21.tar.bz2
cd /usr/src
ln –s /home/linux-2.6.21 linux
cd linux
make mrproper
make menuconfig (详细配置见后面)
make dep
make bzImage
4、内核配置
Code maturity level options 不选中
General Setup
System V IPC选中
其它的不选
Loadable module support
Enable loadable module support
不选中(这样比较简单)
Block layer
IO Schedules里面的全选
其它的都不选中
Processor type and features
Processor family (…)根据你电脑中的CPU型号去选择
Generic x86 support 选中
其它的一概不选中
Power management options
这里面的都不选中
Bus support
PCI support选中
MCA support 项全选中
其它内容都不选中 (选中这两项才可以将SCSI的驱动加到内核中)
Executable file formats
里面的内容全选中
Networking
里面的内容包括子选项里面的内容都不选中
Device drivers
SCSI device support
SCSI device support
SCSI disk support
Input device support
keyboards
XT keyboard
Mouse
PS/2 mouse
Graphics support
Support for frame buffer devices
VESA VGA graphics support
Console display driver support
Frambuffer项选中
这里面就这几项选中,其它的都不选,包括里面的子选项
File system
Ext2和Ext3都选上
ROM file system support选上
其它的都不选中,包括里面的子选项
Kernel hacking及剩下的都不选
然后保存.conifg
三、编译busybox
cd /home
tar xvf busybox-1.00.tar.bz2
cd busybox
make menuconfig(配置的时候选中static link就好了,其它的默认)
make
make install
四、格式化另外一块硬盘
fdisk /dev/sdb
然后依次输入
m
n
p
1
m
w
mkfs.ext3 /dev/sdb1
格式化完毕
五、加载/dev/sdb
mkdir /mnt/test
cd /mnt/test
mkdir boot
mkdir boot/grub
六、建立grub配置文件
cp /boot/grub/stage1 /mnt/test/boot/grub/
cp /boot/grub/stage2 /mnt/test/boot/grub/
cp /boot/grub/e2fs_stage1_5 /mnt/test/boot/grub/
vi /mnt/test/boot/grub/menu.lst
menu.lst:
default=0
timeout=20
title Test Linux
root (hd0,0)
kernel /boot/bzImage noinitrd root=/dev/sda1 rw
编辑完menu.lst后,保存
七、建立文件系统
# cd /mnt/test/
# mkdir dev etc etc/init.d proc mnt tmp var
# chmod 777 dev etc etc/init.d proc mnt tmp var
# chmod 555 proc
# cd dev
# mknod tty c 5 0
# mknod console c 5 1
# chmod 666 tty console
# mknod tty0 c 4 0
# chmod 666 tty0
# mknod ram0 b 1 0
# chmod 600 ram0
# mknod sda1 b 2 0
# chmod 600 sda1
# mknod null c 1 3
# chmod 666 null
建启动配置文件:
/etc/inittab,
/etc/init.d/rcS,
/etc/fstab
initab:
::sysinit:/etc/init.d/rcS
::respawn:/bin/sh
rcS:
#!/bin/sh
echo “Welcome to Test Linux”
mount –a
# chmod 755 init.d/rc.S
fstab:
proc /proc proc defaults 0 0
# cp –arR /home/busybox/_install/* /mnt/test/
# touch /mnt/test/etc/busybox.conf
# cd /
# umount /dev/sdb1 (不卸载的话,安装grub到sdb会出错)
八、安装grub到/dev/sdb1
# grub
Ø root (hd1,0)
Ø setup (hd1)
Ø quit
九、启动Test Linux
先关闭Magic Linux
启动Test Linux
![]()
文件:
裁减Linux系统.pdf
大小:
226KB
下载:
下载
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/34137/showart_433873.html |
|