自制 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

相关推荐

  • Linux – 计算机基础知识体系

    一、认识计算机的组成      计算机组成(computer composition)指的是系统结构的逻辑实现,包括机器机内的数据流和控制流的组成及逻辑设计等。 计算机一般是由硬件系统和软件系统这两部分组成,硬件系统包括:CPU、内存、硬盘、输入和输出设备(键盘鼠标、显示器等),软件系统包括:系统软件自身、用…

    Linux干货 2017-02-19
  • Ansible+Corosync+Pacemaker+nfs实现http高可用

    目录: (一)实验环境 (二)准备工作 (三)为node1和node2配置基础配置 (四)使用ansible部署nfs (五)使用ansible部署corosync和pacemaker (六)使用ansible安装crmsh工具 (七)使用crmsh配置http高可用 (八)验证 (九)需要注意的地方 (一)实验环境 1.1、环境拓扑 1.2、所需系统 4台…

    Linux干货 2016-04-29
  • iptables

    练习:基于状态放行telnet, ftp, ssh, http, samba, icmp等服务 (1) 对本机的ping请求每分钟不得超出20个 (2) 每客户端对本机的ssh的并发连接数不得超过3个 (3) 本机的telnet服务仅允许工作时间内访问 [root@node1 ~]# vim iptables.sh iptabl…

    Linux干货 2016-10-22
  • 第十五周作业

    温故知新 1、总结sed和awk的详细用法 sed [OPTION]… ‘script’ [input-file] …script:地址定界编辑命令 常用选项:-n:不输出模式空间中的内容至屏幕;-e script, –expression=script:多点编辑;-f /PATH/TO/SED_S…

    Linux干货 2017-12-04
  • Mariadb之SELECT语法练习

    一 、导入hellodb.sql生成数据库后实现以下操作     # mysql -uroot -h172.16.23.23 -pcento.123 < hellodb.sql     mysql>&nbsp…

    Linux干货 2014-08-25
  • VMware虚拟机设置网络(包含简单安装)

    1.下载VMware虚拟机 2.创建一个虚拟机,选择下载好的linux系统,我这里选择的是CentOS版本,之后一直按着步骤设置一般都选择默认就好                               &…

    2017-09-02