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

相关推荐

  • 让运维工程师不再蓝瘦、香菇

    最近广西一小哥失恋后录的视频风靡互联网,也让“蓝瘦、香菇”这两个词火了一把。虽然原故事男主角是因为失恋才蓝瘦、香菇,但想想作为运维“狗”的我们也时常因强大的工作压力而蓝瘦,常常在晚上睡得香呼呼的时候因为要处理故障从温暖的被窝爬起来,看着铝朋友鄙视的眼神,真的好香菇……本来作为技术大牛的我们,工作应该是很酷的事情,享受的应该是小白美铝们崇拜的眼神,可现在却那么…

    系统运维 2017-01-09
  • Linux系统终端类型

    引言 终端(Terminal)也称终端设备,是计算机网络中处于网络最外围的设备,主要用于用户信息的输入以及处理结果的输出等。在早期计算机系统中,由于计算机主机昂贵,因此一个主机一般会配置多个终端,这些终端本身不具备计算能力,仅仅承担信息输入输出的工作,运算和处理均由主机来完成,在个人计算机时代,个人计算机可以运行称为终端仿真器的程序来模仿一个终端的工作。 &…

    Linux干货 2016-10-19
  • 解决CentOS SSH 连接慢

    1、关闭DNS反向解析在linux中,默认就是开启了SSH的反向DNS解析,这个会消耗大量时间,因此需要关闭。配置文件路径 vim /etc/ssh/sshd_configUseDNS=no 在配置文件中,虽然UseDNS yes是被注释的,但默认开关就是yes 2、关闭SERVER上的GSS认证在authentication gssapi-with-mic…

    Linux干货 2018-01-10
  • linux终端类型

    人机交互界面:GUI、CLI GUI: gnome:c,gtk kde:c++,qt CLI: bash,zsh,sh,csh,ksh 不同CLI间跳转:alt+f1\f2\f3\f4   终端类型: 物理终端、控制台终端:/dev/console,控制台console 计算机显示器通常被称为控制台终端(Console) 虚拟终端:/dev/tty…

    Linux干货 2016-10-14
  • 程序包管理:rpm、yum以及(make)源代码编译安装

    程序包管理:rpm、yum以及(make)源代码编译安装 在Linux上安装程序一般都有三种方法:源代码编译安装,rpm包安装和rpm包的前端安装yum, (rpm,和yum程序包管理器是针对CentOS6平台的) 程序包管理方式都大同小异:  源代码–>目标二进制格式(二进制程序、库文件、配置文件、帮助文件)–&gt…

    Linux干货 2017-01-10
  • 第二周

    第二周 1. Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。 cp 复制文件和目录语法格式:cp [OPTION]… [-T] SOURCE DESTcp [OPTION]… SOURCE… DIRECTORYcp [OPTION]… -t DIRECTORY SOURCE&#8230…

    Linux干货 2017-07-21