打造一个属于自己的linux

   现在的linux已经非常强大了可以做很多的工作,但是如果我只需要用linux的少数功能但是要稳定高效,如果还是用现在功能比较齐全的操作系统,我们知道这时非常浪费的,而且很有可能因为运行的东西太多而影响需要的工作效率,基于这方面的考虑,价值linux的模块化管理我们可以打造一个属于自己的简单实用又个性化的自己的linux

主要步骤:

1,在宿主机上增加一块硬盘,容量自己定,这里用40G的,保存文件方式放置一个容易找到的地方

磁盘名:sdb

分区:sdb1    +500m(引导分区)         ; sdb2      +1G (根分区)    ; sdb3     +500m  (类型 82   扩展分区)

2,对磁盘进行格式化

[root@localhost ~]# mkfs -t ext3 /dev/sdb1

[root@localhost ~]# mkfs -t ext3 /dev/sdb2

3,在磁盘上建立文件夹  /mnt/boot    /mnt/sysroot

4挂载硬盘    mount /dev/sdb1   /mnt/boot    新的系统的引导分区

             mount /dev/sdb2   /mnt/sysroot   新的系统的根分区

5,建立系统的第二部分  

Grub-instsall --root-directory=/mnt  /dev/sdb

6,建立系统的第一部分

Grub

Grub> root   (hd1,0)  此时在宿主机上为第二块硬盘所以为(hd1,0)放在心得机器时就是(hd0,0)

Grub>setup   (hd1)

7,建设grub的引导菜单

[root@localhost ~]#cd  /mnt/boot

140044289.png

[root@localhost ~grub]#vim grub.conf

default=0

timeout=5

title    mylinux

 root(hd0,0)

 kernel /vmlinuz-2.6.18-164.el5 ro root=/dev/sda2 quiet   指明内核

  Initrd /initrd.gz   指明驱动

#######把宿主机的内核考到新的机器的硬盘   /mnt/boot



140045110.png

#######建一个临时挂载点

140045273.png

#######查看宿主机的驱动并把它解压到当前目录


140045333.png

#######编辑 init   主要是调用的信息

#######看着这一行  我们的sdb3没有格式化和卷标为了避免出错我们要把它注释掉

140045321.png

#######把修改后的init文件打包压缩复制到/mnt/boot目录下并命名为initrd.gz

#######进入 /mnt/boot目录可以看到新的机器的内核和驱动已经准备好了


140045750.png

#######进入新的机器的根分区建立相应的目录和宿主机相对应

Sysroot]#mkdir bin boot dev etc home lib media misc mnt net opt proc root sbin selinux srv sys tftpboot tmp usr var

Sysroot]#mkdir usr/bin

Sysroot]#mkdir usr/sbin

Sysroot]#mkdir etc/rc.d

140046365.png

#######利用脚本文件 f1.sh  把宿主机的相应的文件及库文件考到新的机器的根目录

#######要考的文件为:init bash ls cat

#######查看文件是否复制正确   可以看到已经ok

140046737.png

#######编辑inittab

140046397.png

si::sysinit:/etc/rc.d/rc.sysinit

10:0:wait:/etc/rc.d/rc 0

16:6:wait:/etc/rc.d/rc 6

#######建立rc.sysinit


140047931.png

#!/bin/bash

echo  -e  \033[31m  mylinux  \033[0m

/bin/bash

#######rc.sysinit一个可执行权限

140054680.png

#######把信息同步到磁盘

140055443.png

#######把宿主机暂停  现在去你的新机器把 记住不要启动把它的硬盘拿出来用我们刚刚#######在宿主机上复制的硬盘看看可以启动了它已经是一个最基本的linux

140056986.png

#######简单测试一下

140056344.png

#######但此时你要想执行关机和重启能不能实行呢不妨看一下

140056198.png

#######

#######报错    应为我们根本就没有建立关于重启和关机的任何信息

#######现在去宿主机上拷贝吧

140057684.png

140057962.png

140057373.png

#######编辑sysshutdown脚本

#!/bin/bash

exec   /sbin/halt    -p

#######编辑reboot脚本

#!/bin/bash

exec   /sbin/reboot  -f

#######为以上两个脚本文件增加可执行权限

140059682.png

#######利用脚本f1.sh把以上两个脚本文件拷贝到新的机器上

/mnt/sysroot/sbin

140059497.png


#######把新的信息sync同步到 新的机器上

#######在去新的机器上进行重启和关机看一下已经可以了

#######为新的机器增加主机名称  网络功能  ping

#######同理还是利用f1..sh 去宿主机上吧对应的文件及库文件靠呗  要拷贝的文件为:hostname ifconfig  ping

#######把宿主机上的关于网络的文件拷到新的机器上的对应的文件




140100591.png

#######

#######同步一下在去新的机器上看一下已经有了

140100505.png

#######在宿主机上把关于网络功能的模块靠呗

140100820.png

142452490.png

#######对初始化化文件进行编辑设置网络功能为开机自启  新机器的初始化文件在/etc/rc.d/rc.sysinit

#vim /etc/rc.d/rc.sysinit

#!/bin/bash

   echo  -e  \033[31m  mylinux  \033[0m

if [ -f /etc/sysconfig/network ]; then

        . /etc/sysconfig/networklinux

     fi

    if [ -z "$HOSTNAME" -o "$HOSTNAME" = "(none        )" ]; then

        HOSTNAME=localhost

fi

    set    -p

/sbin/insmod    /lib/modules/mii.ko

/sbin/insmod    /lib/modules/pcnet32.ko

/sbin/ifconfig eth0 192.168.1.44/24

/sbin/ifconfig lo  127.0.0.1/8

    /bin/hostname  &HOSTNAME

     /bin/bash

#######再次利用脚本文件把相应的文件拷贝

140100778.png

#######同步一下去新机器测试吧

#######已经具有网络功能了吧


140101477.png

#######测试ping命令

140101758.png

#######

#######实现ftp服务

#######在宿主机上安装ftp服务器

140103479.png

#######启动ftp服务器应为我们的新的机器上并没有太多的命令可供选择只能采用如下方#######

140103956.png

#######关闭ftp服务

140103693.png

#######ftp进行一些设置我们只要最简单的功能

140103525.png

#######把这一项功能注释掉

140104347.png

#######vsftpd拷贝到新的机器的硬盘

143026915.png


#######查看是否拷贝成功     成功

143104673.png

#######在新的机器上新建一个vsftpd的文件夹并把宿主机的vsftpd的配置文件拷贝到新的#######机器的vsftpd目录下

143147491.png

#######ftp匿名访问的根目录为/var/ftp所以我们要在新的机器上建立同样的根目录便于匿#######名访问

143224798.png

#######把宿主机的passwd    shadow    group    文件拷到新的机器上

#######如果没有这几个文件存在你的服务器是不能被访问的

143318364.png

#######为新的机器增加一些常用好用的简易功能便于操作

143356452.png

#######在新的机器的 /mnt/sysroot/etc 创建一个配置文件nsswitch.conf

#######文件内容为

143516324.png

#######nesswich.con配置文件所需要的库文件及连接靠配到新的机器上

143550630.png

#######利用tree命令在/mnt/sysroot/etc下查看拷贝是否成功

#######进入vsftpd的配置文件把他的这两行给注释掉






143929331.png

143929185.png

143930971.png

#######创建如下文件






144305845.png

#######Sync同步到新机器  现在把新机器重启一下已经可以启用ftp服务器了

#######注意应为我们的机器没有restart  等之类的命令所以开启和关闭ftp的命令就只有利#######用他的配置文件了命令如下

#######开启ftp

144305420.png

#######关闭ftp

144305453.png

#######

#######现在我们可以用另一台机器来访问我的新机器看到如下结果ftp已经在的哦机器上#######可以简单的运行了

144305179.png



以下是用于复制用的脚本文件

/bin/cp -f $COMMANDPATH/$COMMANDNAME /mnt/sysroot$COMMANDPATH

for i in `/usr/bin/ldd $COMMANDSTRING`;do

     if        echo $i |grep /lib &>/dev/null; then

    LIBSTRING=`echo $i |grep /lib `

    LIBNAME=${LIBSTRING##*/}

    LIBPATH=${LIBSTRING%/*}

      /bin/cp -f $LIBPATH/$LIBNAME  /mnt/sysroot$LIBPATH

    fi

 done

 done