您的位置:首页 > 运维架构 > Linux

Linux系统裁剪

2014-03-09 19:59 417 查看
手动安装linux操作系统 LFS──Linux from Scratch,就是一种从网上直接下载源码,从头编译LINUX的安装方式。它不是发行版,只是一个菜谱,告诉你到哪里去买菜(下载源码),怎么把这些生东西( raw code) 作成符合自己口味的菜肴──个性化的linux,不单单是个性的桌面。 LFS 存在的一个重要原因是可以帮助人们学习 linux 系统的内部是如何工作的。构建一个 LFS 系统会帮助演示是什么使 linux 运转,各种组件如何在一起互相依赖的工作。最好的事情之一,是这种学习的经历给予的是一种能力,能够定制满足您自己需要的 linux。在虚拟中可以借助一个宿主机来安装一个小型的linux操作系统,其步骤是:
在一切开始之前,我们需要先安装一个虚拟机,这里我们以CentOS6.4来模拟手动安装Linux。虚拟机的具体安装步骤这里就不提了,相信大家都很清楚,那咱们就直接切入正题。
第一步是:添加grub
在宿主机上添加一新的磁盘并划分三个分区:sdb1、sdb2、sdb3分别为100M 、512M、128M ,以ext3的文件系统形式来格式化。在宿主机上创建两个目录#mkdir /mnt/boot #mkdir /mnt/sysroot。把sdb1挂载到/mnt/boot中#monut /dev/sdb1 /mnt/boot 第二步是:复制kernel 到磁盘上。
#mount /dev/sdb1 /mnt/boot
#cp /boot/vmlinuz-2.6.18-164.el5 /mnt/boot/vmlinuz
第三步是:解压initrd-2.6.18-164.el5.img
#mkdir /tmp/linux
#cp /boot/ initrd-2.6.18-164.el5.img /tmp/linux
#cd /tmp/linux
#mv initrd-2.6.18-164.el5.img initrd-2.6.18-164.el5.img.gz
#gzip –d initrd-2.6.18-164.el5.img.gz
#cpio –id < initrd-2.6.18-164.el5.img
因为这个文件不能直接使用,要编辑此目录下的init这个脚本
vim init
把有/dev/vol0/root 改为/dev/sda2
第三步创建目录
#mount /dev/sdb2 /mnt/sysroot
#cd /mnt/sysroot
#mkdir –pv {/etc/rc.d,bin,sbin,usr,var,proc,sys,tmp,lib,mnt,media,misc,opt,dev,srv}
#cp /sbin/init sbin/
#cp /bin/bash bin/
#vim etc/inittab
{
id:3:initdefault:
si::sysinit:/etc/rc.d/rc.sysinit
}
#vim etc/rc.d/rc.sysinit
{
#!/bin/bash
Echo –e “\tWelcome to LLinux”
/bin/bash
}
为rc.sysinit增加执行权限
#chmod +x etc/rc.d/rc.sysinit
第四步复制所需的库文件
用ldd可查看一个命令所依赖的库文件,并复制所需的库文件到/mnt/sysroot/lib中
#ldd bin/bash
#ldd bin/init
第六步是封装
在/tmp/linux目录中有initrd-2.6.18-164.el5.img这个文件
把这个文件删除
#rm initrd-2.6.18-164.el5.img
还有:bin dev etc init lib proc sbin sys sysroot
这些文件重新封装一下
#find . | cpio –o –H newc –quit | gzip -9 > /mnt/boot/initrd.gz
最后是为grub提供配置文件 #cd grub# vim /mnt/boot/grub/grub.conf
default=0
timeout=5
title welcome
root (hd0,0)
kernel /vmlinuz ro root=/dev/sda2 quiet selinux=0 init=/bin/bash
initrd /initramfs.img

用chroot 来测试一下是否能够启动
如果想要系统能装载网卡驱动,则需要迁移e1000网卡驱动模块
通过lsmod命令查看网卡驱动模块的情况










复制该模块到我们的Linux中安装 [root@station57 sysroot]# cp /lib/modules/2.6.32-358.el6.x86_64/kernel/drivers/net/e1000/e1000.ko /mnt/sysroot/lib/modules/
[root@station57 sysroot]# ls /mnt/sysroot/lib/modules/
e1000.ko
最后就是使用init脚本对以上的配置进行自动化装载,可以省去很多麻烦;[root@station57 mnt]# vim /mnt/sysroot/sbin/init #!/bin/bash # echo -e "\t\033[31;5mwelcome\033[0m" insmod /lib/modules/e1000.ko && echo -e "Moduless e1000 loding\033[60G\033[32m[ ok ]\033[0m " || echo "Moduless e1000 loging error"
6 ifconfig lo 127.0.0.0/16 && echo -e "The ip lo add ...\033[60G\033[32m[ ok ]\033[0m " || echo "ip of lo add error" ifconfig eth0 172.16.20.11/16 && echo -e "The ip eth0 add ...\033[60G\033[32m[ ok ]\033[0m " || echo "ip of eth0 add error"最后启动shell

本文出自 “在路上” 博客,请务必保留此出处http://junfengwang.blog.51cto.com/8611434/1371423
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: