真实主机制作小linux,基于HOST宿主机制作一个简单的可启动的Linux

本文详细介绍了如何从头开始在HOST上创建一个简单的可启动Linux系统,包括磁盘分区、安装GRUB、复制内核和initrd文件、创建根文件系统、配置GRUB和init脚本,以及手动安装网卡驱动和配置IP地址。整个过程分为多个步骤,最终实现了Linux系统的启动和网络功能。
摘要由CSDN通过智能技术生成

基于HOST制作一个简单的可启动的Linux

能装载网卡驱动,并配置IP地址。使用init脚本

一、准备工作

HOST:宿主机

Target:目标机

1、首先需要在宿主机上添加一个新目标磁盘

2、给目标磁盘分区

分成:/dev/sdb1(100M), /dev/sdb2 (1G)

命令:fdisk/dev/sdb

5ce27bb7a9e7ea792fbfd0e9aef89217.bmp

格式化两个分区:

命令:mke2fs-t ext4 /dev/sdb1

mke2fs-t ext4 /dev/sdb2

3、将/dev/sdb1挂载至/mnt/boot

将/dev/sdb2挂载至/mnt/sysroot

命令:mkdir /mnt/boot

mount/dev/sdb1 /mnt/boot/

mkdir /mnt/sysroot

mount/dev/sdb2 /mnt/sysroot/

二、安装grub至目标磁盘

命令:grub-install  --root-directory=/mnt  /dev/sdb

98f90e5ad1af4461e8c0d1292de528a5.bmp

三、复制内核和initrd文件

命令:

cp  /boot/vmlinuz-2.6.32-358.el6.x86_64  /mnt/boot/vmlinuz

cp /boot/initramfs-2.6.32-358.el6.x86_64.img   /mnt/boot/initramfs.img

e3aae2c290f76255563eda2703d03659.bmp

四.创建根文件,复制根文件系统

1、先创建目标主机的根文件系统

命令:

mkdir-pv /mnt/sysroot/{etc/rc.d,usr,proc,sys,dev,lib,lib64,bin,sbin,boot,srv,mnt,media,home,root}

2cfc8894cf5a9fa5615692e78b4c1df8.bmp

2、接着去移植bash

写拷贝命令的脚本,这里给大家提供一个移植命令并且能让其正常工作的脚本cpcmd.sh

#!/bin/bash

#

target=/mnt/sysroot

clearCmd() {

ifwhich $cmd &> /dev/null;then

cmdPath=`which--skip-alias $cmd`

else

echo"No such command"

return5

fi

}

cmdCopy() {

cmdDir=`dirname$1`

[ -d${target}${cmdDir} ]|| mkdir -p ${target}${cmdDir}

[ -f${target}${1} ] || cp $1 ${target}${cmdDir}

}

libCopy() {

forlib in `ldd $1 | grep -o "/[^[:space:]]\{1,\}" `;do

libDir=`dirname$lib`

[-d ${target}${libDir} ] || mkdir -p ${target}${libDir}

[-f ${target}${lib} ] || cp $lib ${target}${libDir}

done

}

while true;do

read-p "Enter a command:  " cmd

if ["$cmd" == "quit" ];then

echo"quit"

exit 6

fi

clearCmd $cmd

cmdCopy $cmdPath

libCopy $cmdPath

done

1ebb0b6ef6cf2d212dc718720da5182f.bmp

ls,cat,mkdir,mv,bash,mount,umount,insmod,rmmod,ifconfig,ip,ping,passwd,vim

使用“quit”退出脚本

复制个人需要使用到的命令

建立软链接sh -> bash

e72ffea246dcbf5889ee5a31a2e32ad1.bmp

检验命令能否正常使用

cac491cd58248302c3af2139ef89f860.bmp        可以正常使用

五、为grub提供配置文件

命令: vim /mnt/boot/grub/grub.conf

脚本:

default=0

timeout=5

title MagEdu  Little  Linux

root(hd0,0)

kernel /vmlinuz ro root=/dev/sda2 quiet selinux=0 init=/sbin/init

initrd /initramfs.img

bbdcd19f1ea0418e5bfa935bc2613c94.bmp

六、配置init脚本

命令:vim /mnt/sysroot/sbin/init

脚本:

#!/bin/bash

#

echo –e  “\tWelcometo \033[034mMageEdu Tiny\033[0m Linux”

mount –n –t proc proc /proc

mount –n –t sysfs sysfs /sys

mount –n –o remount,rw /dev/sda2

/bin/bash

bf679a64ff08e9d5448f2a737d3348b0.bmp

加执行权限chmod +x /mnt/sysroot/sbin/init

以上操作完成之后,执行sync:将内存数据存入硬盘

七、启动目标机

1、挂起宿主机

2、建立一个新的目标机,使用一个已存在的磁盘,选择目标磁盘

8dbe3ccfaf6fc6adedc95c111375b175.bmp

3、启动

193daa781b46dab888e87f3c1de752d7.bmp

八、为目标机配置网卡、IP

这里有两种方法:

先手动复制从宿主机复制网卡驱动至目标机

命令:

mkdir /mnt/sysroot/lib/modules

cp /lib/modules/2.6.32-358.el6.x86_64/kernel/drivers/net/e1000/e1000.ko/mnt/sysroot/lib/modules/

4d5af74f1f0859b4d7eaf7ed04727fac.bmp

第一种方法:

1、在目标机上手动安装网卡驱动

命令:

insmod /lib.modules/e1000.ko

37ebee495beb66d748a3495d3edd11be.bmp

2、配置ip

ifconfig eth0 172.16.88.8/16

371643e0e1377c78367aef564792fd05.bmp

第二种方法:

在init配置文件中自动安装网卡驱动,自动配置IP

脚本:

#!/bin/bash

#

echo -e "\tWelcome to \033[034mMageEdu Tiny\033[0m Linux"

mount -n -t proc proc /proc

mount -n -t sysfs sysfs /sys

insmod /lib/modules/e1000.ko

ifconfig lo 127.0.0.1/8

ifconfig eth0 172.16.88.8/16

mount -n -o remount,rw /dev/sda2

/bin/bash

7ae566a80e1cf06482faf804751d8689.bmp

重启目标机

查看ip

ea02e4d36e7b2120404548c165aa9e16.bmp

网卡驱动自动安装成功,ip自动配置成功。

以上就是基于HOST制作一个简单的可启动的Linux

原文:http://lemidi.blog.51cto.com/8601832/1368797

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值