一、制作小linux
1.在宿主机上添置一块新硬盘
制作小Linux_第1张图片

选择默认配置即可,如:SCSI。选择保存路径及文件名称,硬盘大小4G左右即可。
制作小Linux_第2张图片

启动宿主机
(添置的硬盘需要MBR-bootloader、grub、/boot下kernel、initrd)
2、在宿主机中对新盘分区格式化
fdisk /dev/sdb
制作小Linux_第3张图片引导分区100M即可,根分区200M,w保存退出。
制作小Linux_第4张图片

  partprobe  /dev/sdb探测更新分区
分区格式化:
mkfs -t ext3 /dev/sdb1
mkfs -t ext3 /dev/sdb2
3、在宿主机/mnt中创建boot、sysboot目录并将新盘分区分别挂载到这两个目录上

安装grub,mnt不需指定boot,因为此命令自动寻找boot。指定硬盘/dev/sdb

拷贝宿主机/boot下内核文件到 /mnt/boot下
cp /boot/vmlinuz-2.6.18-164.el5 /mnt/boot/vmlinuz
在/tmp下创建initrd目录,并在此目录中展开宿主机下的/boot/initrd-2.6.18-164.el5.img 文件
编辑/tmp/initrd/init
制作小Linux_第5张图片

制作小Linux_第6张图片

并且当前目录重新封装,sync同步信息
find . | cpio --quiet -H newc -o | gzip -9 -n > /mnt/boot/initrd.gz 
编辑/mnt/boot/grub/grub.conf文件并sync同步信息到硬盘
制作小Linux_第7张图片

4、/mnt/sysroot下创建etc lib bin sbin dev tmp proc sys 等目录
chmod 1777 tmp     sync同步一下
cp /bin/bash /mnt/sysboot/bin
cp /sbin/init /mnt/sysboot/sbin
tree  

制作小Linux_第8张图片

查看/bin/bash及/sbin/init需要哪些库文件,并添加这些库文件
ldd /bin/bash
ldd /sbin/init    

制作小Linux_第9张图片

 制作小Linux_第10张图片
5、编辑/mnt/sysboot/etc/inittab

在/mnt/sysboot/etc下创建rc.d目录
cd rc.d
vim rc.sysinit   chmod a+x rc.sysinit给予执行权限  sync同步

6、挂起宿主机,新建虚拟机(注意使用已创建的硬盘sdb)并启动
制作小Linux_第11张图片
制作小Linux_第12张图片

看见此画面,宣告小Linux制作成功,但是还需要一些改善。

二、向Linux添加ls功能
1、which ls 查看ls命令出处
ldd /bin/ls
制作小Linux_第13张图片

cp /bin/ls bin/
cp /lib/librt.so.1 lib/
cp /lib/libacl.so.1 lib/
cp /lib/libattr.so.1 lib/
cp /lib/libpthread.so.0 lib/
sync

2、which mingetty
ldd /sbin/mingetty
cp /sbin/mingetty /mnt/sysboot/sbin
which login
cp /bin/login /mnt/sysboot/bin/login
ldd /bin/login
cp /lib/libcrypt.so.1 lib/
cp /lib/libpam.so.0 lib/
cp /lib/libpam_misc.so.0 lib/
cp /lib/libaudit.so.0 lib/

vim /mnt/sysboot/etc/inittab
追加1:3:respawn:/sbin/mingetty tty1
  2:3:respawn:/sbin/mingetty tty2
vim /mnt/sysboot/etc/rc.d/rc.sysinit
/bin/bash 注释掉
echo "linux" > /proc/sys/kernel/hostname

vim /mnt/sysboot/etc/passwd
root:x:0:0::/root:/bin/bash

head -1 /etc/shadow > /mnt/sysboot/etc/shadow

sync