手动安装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系统裁剪

Linux系统裁剪


复制该模块到我们的Linux中安装

 [[email protected] sysroot]# cp /lib/modules/2.6.32-358.el6.x86_64/kernel/drivers/net/e1000/e1000.ko  /mnt/sysroot/lib/modules/ [[email protected] sysroot]# ls /mnt/sysroot/lib/modules/ e1000.ko


最后就是使用init脚本对以上的配置进行自动化装载,可以省去很多麻烦;

[[email protected] 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


转载于:https://blog.51cto.com/junfengwang/1371423

相关文章: