宿主机linux,宿主机上安装小linux

今天自己利用vmwere软件做了一个小型的linux,下面把实验心得写出来分享给大家。

实验环境:使用vmwere软件,在已经创建的一个虚拟机中再添加一块硬盘,5G左右就已经足够(为了以后实验别太吝啬自己的空间哟)。

实验操作:

打开此虚拟机,以root或管理员身份登录后,使用fdisk –l命令查看硬盘分区情况,此时发现新添加的硬盘未分区(这里我们假设第一块硬盘是/dev/sda,第二块硬盘是/dev/sdb),此处便是/dev/sdb未做任何处理,

72532dd3fc66caa2b9660c685ed76288.png

然后对此块硬盘进行分区,由于实验需要,暂时我们将此硬盘分为两个分区(根分区和boot分区)/dev/sdb1及/dev/sdb2,方便操作以及后期的使用,此处我们将这两个分区格式化为ext3格式,

fdisk /dev/sdb

mke2fs –j/dev/sdb1

mke2fs –j /dev/sdb2

(此处硬盘规划:将/dev/sdb1创建为500M大小,为以后的boot分区,/dev/sdb1创建为512M大小为以后的根分区/)

aeda6d8c87b44425520fd25c0c891055.png

然后建立两个挂载点,/mnt/boot及/mnt/sysroot,分别将先前的两个分区挂载在这两个挂载点上,

mkdir /mnt/boot

mkdir /mnt/sysroot

mount /dev/sdb1 /mnt/boot

mount /dev/sdb2/mnt/sysroot

86dd9818d771512522101fc15042dcfe.png

然后我们就可以在第一块分区上创建系统引导程序(这里我们使用grub-install命令创建grub),

grub-install –root-directory=/mnt/dev/sdb

cd/mnt/boot

af62e565c05b41510f57113a2adadaff.png切换到/mnt/boot目录下,我们就发现已经多了几个文件,更包含grub目录,此时grub目录下面并没有grub.conf配置文件,稍后我们将作配置,这时系统肯定无法启动,

接下来我们再将系统中的vmlinuz-2.6.18-164.el5(此处因为版本不同可能会和您的版本号不同)文件拷到/mnt/boot目录下,

cpvmlinuz-2.6.18-164.el5.img.

此时我们需要对另外一个文件initrd-2.6.18-164.el5.img作一定的处理,切换到系统/tmp目录中,创建一个目录:

mkdirinitrd

cp/boot/ initrd-2.6.18-164.el5.img/tmp/initrd

切换到此目录下利用zcat和cpio命令展开此文件

zcat initrd-2.6.18-128.el5.img |cpio –id

fe43858c2a45b2bec223ff7a237f60ff.png

然后编辑展开目录下的init文件中

修改mkrootdev -t ext3 -o defaults,ro /dev/vol0/root

为mkrootdev -t ext3 -o defaults,rosda2

保存退出(此处sda2为要创建文件的根目录)

然后再将此目录下的文件归档并压缩到指定目录,命名为initrd.gz

rm –finitrd-2.6.18-164.el5.img

find . |cpio -H newc -o --quiet |gzip -9 > /mnt/boot/initrd.g

31af1b9ddb5d3160416cd0caaa15c189.png

这时再来编辑grub配置文件grub.conf

default=0

timeout=10

title kingshuo's little linux

root (hd0,0)

kernel /vmlinuz ro root=/dev/sda2quiet

initrd /initrd.gz

然后进入/mnt/sysroot目录中创建系统必需的目录

mkdir -p {boot,proc,sys,dev,home,root,etc/{rc.d,sysconfig,init.d},bin,sbin,lib,usr/{bin,sbin,lib,include},var/{log,run},tmp,mnt,opt,media

08ded246be0122910bed3218365391c6.png

再编辑/mnt/sysroot/etc/inittab文件

id:3:initdefault:

si::sysinit:/etc/rc.d/rc.sysinit

保存退出

再编辑/mnt/sysroot/etc/rc.d/rc.sysinit文件

#!/bin/bash

echo -e echo -e "\t\tWelcome to \033[31;1mLittle\033[0m Linux..."

/bin/bash

因为此文件是个系统初始化启动脚本故需要添加执行权限

chmod+x/mnt/sysroot/etc/rc.d/rc.sysinit

此时系统还没有运行环境,需要使用拷贝bash

ede3f504efa3ad500c4f1ff1b8c157ff.png

还需要拷贝与bash运行调用的库函数

ldd /bin/bash

cp /bin/bash/mnt/sysroot/bin/bash

cd/mnt/sysroot/bin/

cp /lib/libtermcap.so.2 /mnt/sysroot/lib/

cp /lib/libdl.so.2/mnt/sysroot/lib/

cp /lib/libc.so.6/mnt/sysroot/lib/

cp /lib/ld-linux.so.2/mnt/sysroot/lib/

然后进入/mnt/boot/bash,建立链接

ln–svbash sh

这时您就可以在当前虚拟机上测试了

aa87f52175fe47d47a85f9a0dba1d222.png

这时您还不太相信吧,接下来您可以再新建一个虚拟机,利用现有的虚拟磁盘

aaf33f6a2b27bece15553fa2e2c58e46.png

准备停当后打开刚建的虚拟机,见证奇迹的时刻到了!

f4d55665a9a110bcf0fe267a1fbdd4e8.png

5b5e91dab1b5641c3df89f1dd6e4c5fd.png

当然在这个系统中不能实现过多的命令,当您想实现更多的功能,想要添加相应的命令时,按照上述命令执行相应命令及函数的拷贝,自己赶快实验吧!

由于能力有限,可能某些细节及原理上叙述的不是很清楚,也难免有错误,欢迎大家指正!下面有个小脚本能够实行小linux的创建,有兴趣的话可以尝试一下!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值