打造一个属于自己的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
[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
#######建一个临时挂载点
#######查看宿主机的驱动并把它解压到当前目录
#######编辑 init 主要是调用的信息
#######看着这一行 我们的sdb3没有格式化和卷标为了避免出错我们要把它注释掉
#######把修改后的init文件打包压缩复制到/mnt/boot目录下并命名为initrd.gz
#######进入 /mnt/boot目录可以看到新的机器的内核和驱动已经准备好了
#######进入新的机器的根分区建立相应的目录和宿主机相对应
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
#######利用脚本文件 f1.sh 把宿主机的相应的文件及库文件考到新的机器的根目录
#######要考的文件为:init bash ls cat
#######查看文件是否复制正确 可以看到已经ok
#######编辑inittab 表
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
#!/bin/bash
echo -e “\033[31m mylinux \033[0m”
/bin/bash
#######给rc.sysinit一个可执行权限
#######把信息同步到磁盘
#######把宿主机暂停 现在去你的新机器把 记住不要启动把它的硬盘拿出来用我们刚刚#######在宿主机上复制的硬盘看看可以启动了它已经是一个最基本的linux了
#######简单测试一下
#######但此时你要想执行关机和重启能不能实行呢不妨看一下
#######
#######报错 应为我们根本就没有建立关于重启和关机的任何信息
#######现在去宿主机上拷贝吧
#######编辑sysshutdown脚本
#!/bin/bash
exec /sbin/halt -p
#######编辑reboot脚本
#!/bin/bash
exec /sbin/reboot -f
#######为以上两个脚本文件增加可执行权限
#######利用脚本f1.sh把以上两个脚本文件拷贝到新的机器上
/mnt/sysroot/sbin
#######把新的信息sync同步到 新的机器上
#######在去新的机器上进行重启和关机看一下已经可以了
#######为新的机器增加主机名称 网络功能 ping
#######同理还是利用f1..sh 去宿主机上吧对应的文件及库文件靠呗 要拷贝的文件为:hostname ifconfig ping
#######把宿主机上的关于网络的文件拷到新的机器上的对应的文件
#######
#######同步一下在去新的机器上看一下已经有了
#######在宿主机上把关于网络功能的模块靠呗
#######对初始化化文件进行编辑设置网络功能为开机自启 新机器的初始化文件在/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
#######再次利用脚本文件把相应的文件拷贝
#######同步一下去新机器测试吧
#######已经具有网络功能了吧
#######测试ping命令
#######
#######实现ftp服务
#######在宿主机上安装ftp服务器
#######启动ftp服务器应为我们的新的机器上并没有太多的命令可供选择只能采用如下方#######式
#######关闭ftp服务
#######对ftp进行一些设置我们只要最简单的功能
#######把这一项功能注释掉
#######把vsftpd拷贝到新的机器的硬盘
#######查看是否拷贝成功 成功
#######在新的机器上新建一个vsftpd的文件夹并把宿主机的vsftpd的配置文件拷贝到新的#######机器的vsftpd目录下
#######ftp匿名访问的根目录为/var/ftp所以我们要在新的机器上建立同样的根目录便于匿#######名访问
#######把宿主机的passwd shadow group 文件拷到新的机器上
#######如果没有这几个文件存在你的服务器是不能被访问的
#######为新的机器增加一些常用好用的简易功能便于操作
#######在新的机器的 /mnt/sysroot/etc 创建一个配置文件nsswitch.conf
#######文件内容为
#######把nesswich.con配置文件所需要的库文件及连接靠配到新的机器上
#######利用tree命令在/mnt/sysroot/etc下查看拷贝是否成功
#######进入vsftpd的配置文件把他的这两行给注释掉
#######创建如下文件
#######Sync同步到新机器 现在把新机器重启一下已经可以启用ftp服务器了
#######注意应为我们的机器没有restart 等之类的命令所以开启和关闭ftp的命令就只有利#######用他的配置文件了命令如下
#######开启ftp
#######关闭ftp
#######
#######现在我们可以用另一台机器来访问我的新机器看到如下结果ftp已经在的哦机器上#######可以简单的运行了
以下是用于复制用的脚本文件
/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
转载于:https://blog.51cto.com/smilesmile/1268663