自制 mini linux


思路


先装载一块硬盘,按照上面两个实验的部分结果,创建各个目录

在/boot 里面添加内核 ,添加initramfs.img文件添加grub组件  ,创建grub.conf  
然后复制bash  ,ls  ,cp  等,命令和响应的库文件,并在启动的时候指定第一个进程为/bin/bash
顺便加载一个网卡驱动,复制ping命令和ifconfig命令,测试能否ping通

步骤

(1)添加一个硬盘20G,分区 格式化  挂载
     echo ‘- – -‘ >  /sys/class/scsi_host/host2/scan
     分两个区,一个/boot     一个/root  大小分别为 100M 和 10G
      格式化为ext4
      在/mnt下面创建两个目录,一个叫/mnt/boot  另外一个叫 /mnt/root
     将两个分区挂载
(2)分别复制内核文件和initramfs.img文件到/mnt/boot目录下面安装grub文件 ,配置grub.conf 
     配置的时候需要注意的是写root路径的时候不要写
     成了当前磁盘在本机上的分区标号,应该写成/dev/sda,因为启动的时候只有一块硬盘
     grub-install  –root-directory=/mnt/   /dev/sdb
(3)创建需要的目录(FHS),拷贝必要的文件至/mnt/root下面
     mkdir  /mnt/root/{bin,sbin,root,boot,lib,lib64,home,etc,dev,mnt,var,usr,proc,sys,tmp}
     利用脚本来复制各种需要的命令和库文件  ls   cp  mount  vim  insmod  mkdir  ping  ifconfig
     umount  ip  reboot   mv  rm  bash  tree  kill  cat  df  
     复制所需要的网卡驱动,
     dmesg  | grep eth  找到网卡驱动的名字 
     locate   网卡驱动的名字          找到网卡驱动的路径
     cp /path/to/file    /mnt/root/lib/  
(4)确定第一个进程
     在grub.conf配置文件中内核参数那一栏确定第一启动的进程为/bin/bash
(5)切换硬盘,进行测试,配置IP,测试ping命令

操作流程

(1)添加硬盘,分区,格式化,挂载

     要求/boot为  +100M  /root为  +1G

自制 mini  linux


2)分别复制内核文件和initramfs.img文件到/mnt/boot目录下面安装grub文件 ,配置grub.conf

     cp /boot/initramfs.img    /mnt/boot
     cp /boot/vmlinuz   /mnt/boot
     cd  /boot    
     grub-install  –root-directory=/mnt/  dev/sdb(本次测试的为/dev/sdb)
     vim  /mnt/boot/grub/grub.conf
     编写配置文件:
 
defaults=0
timeout=3
title  yang linux
     kernel    /vmlinuz   ro  root=/dev/sda2  init=/bin/bash
     initrd  /initrdramfs.img  

 查看里面的目录结构 

自制 mini  linux


(3)创建需要的目录(FHS),拷贝必要的文件至/mnt/root下面
     由于这里复制的条目很多,编写一个脚本来完成相应的功能

#!/bin/bash
#
#Author:Double.f
#Date:2017-5-9
cpcmd()
 {
    path_root=/mnt/root/
    DIR=$(echo $1 | egrep -o '^/.*/')
    [ -z $DIR ] || mkdir -p ${path_root}${DIR}   &> /dev/null
    [ -z $1 ] && echo "$1 is existed" || cp $1 ${path_root}$1   

}

read -p "please input a command: "  CMD
if which $CMD &> /dev/null;then
    until [ $CMD == 'quit'  ];do
        path_command=`which $CMD | grep -oE '/[[:alnum:]].*/?[[:alnum:]]'`
        REV=`ldd $path_command | egrep -o '/.*/?.*[[:space:]]'`
        cpcmd $path_command   
        for I in `echo $REV`;do
            cpcmd $I
        done
        read -p "please input command or quit :" CMD
    done
else
    echo "Command  not  found"
    exit 1 fi

复制网卡驱动模块
cd /lib/mop /lib/modules/2.6.32-642.el6.x86_64/kernel/drivers/net/e1000/e1000.ko   /mnt/root/lib
(4)进入调试
进入之后首先装载网卡驱动模块
insmod  /lib/eth1000.ko
然后给网卡配一个ip   172.16.0.5,将虚拟机的网络调为桥接,用ping命令来测试

自制 mini  linux

原创文章,作者:Double f,如若转载,请注明出处:http://www.178linux.com/75528

(1)
Double fDouble f
上一篇 2017-05-14 14:53
下一篇 2017-05-14 19:59

相关推荐

  • 正则表达式的如何使用

    简述:正则表达式主要用于文本的搜索,它表示了搜索文本的过滤条件。根据这些条件,对目标文本朱行进行匹配检查,最后对输出匹配到符合过滤条件的行。 使用:正确高效的使用正则表达式,需要掌握以下基本知识点         1:语法 grep [OPTION] PATTERN FILE……

    Linux干货 2017-06-04
  • 网络接口配置-bonding

    网络接口配置-bonding •Bonding 就是将多块网卡绑定同一IP地址对外提供服务,可以实现高可用或者负载均衡。当然,直接给两块网卡设置同一IP地址是不可能的。通过bonding,虚拟一块网卡对外提供连接,物理网卡的被修改为相同的MAC地址。 Bonding的工作模式 •Mode 0 (balance-rr) 轮转(Round-robin)策略:从头…

    Linux干货 2016-09-05
  • linux-系统自动化安装

    一、安装程序及配置 CentOS 系统安装 系统启动流程: bootloader–>kernel(initramfs)–>rootfs–>/sbin/init anaconda: 系统安装程序 tui:  基于图形库curses 的文本 窗口 gui :图形窗口 安装程序启动过程 MB…

    Linux干货 2016-09-26
  • CIDR,子网掩码以及划分子网超网

    对于中小企业,假如有两千台机器,给他分个B类地址,6万多个,太浪费了,分个C类地址,一个C类地址254个,又不够,又得多申请几个,所以A,B,C类IP地址划分太过僵硬,很不灵活,因此又提出无类域间路(CIDR)由划分IP地址的方法。 无类域间路由(CIDR) 传统划分IP地址的方法都是8位划分的,要不就是前8位网络ID,后24位主机ID;或前16位网络ID,…

    2017-09-16
  • 马哥教育网络班20期+第2周课程练习

    1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。 cp复制, mv剪切, rm移除 语法格式: cp复制  cp [OPTION]… [-T] SOURCE DEST  常用选项: -i:交互式 -r: 递归复制目录及内部的所有内容 -a: 归档   演示: …

    Linux干货 2016-07-12
  • 第十八周作业

    1、为LNMP架构添加memcached支持,并完成对缓存效果的测试报告; 环境准备: 1)LNMP(php-fpm)环境已搭建完毕 2)Wordpress已部署完成 1.在memcache服务器上安装memcached包并启动服务 ]# yum install memcached -y ]# systemctl start memcached.servic…

    2017-06-22