一:原理

      每隔主机都需要硬盘,操作系统存在于硬盘上,操作系统主要包括内核、库文件以及应用。在宿主机上新增添一块硬盘,将内核、库文件以及应用都放到新增添的硬盘上,最后将该硬盘信息导入新建主机上

二:配置步骤

首先将宿主机上新添一块硬盘,将该硬盘

1:[root@lyt ~]# fdisk –l         #查看磁盘分区

2:[root@lyt ~]# fdisk /dev/sdb      #将新添加的硬盘进行分区

无标题1

3:[root@lyt ~]# cat /proc/partitions     #查看新建分区信息是否被读取

[root@lyt ~]# mkfs -t ext3 /dev/sdb1    #格式化sdb1

[root@lyt ~]# mkfs -t ext3 /dev/sdb2    #格式化sdb2

4:[root@lyt ~]# mkdir /mnt/boot          #在宿主机上为sdb1引导分区创建一个挂载点

[root@lyt ~]# mount /dev/sdb1 /mnt/boot/      #将sdb1挂载到宿主机上

[root@lyt ~]# mkdir /mnt/sysroot         #在宿主机上为sdb2根分区创建一个挂载点

[root@lyt ~]# mount /dev/sdb2 /mnt/sysroot/     #将sdb2挂载到宿主机上

5:[root@lyt ~]# grub-install --root-directory=/mnt/ /dev/sdb    #在/dev/sdb上创建MBR,安装grub,并将grub菜单的第二段存放在/mnt/boot中

[root@lyt ~]# ll /mnt/boot/                  #查看grub目录是否创建

6:[root@lyt grub]# cp /boot/vmlinuz-2.6.18-164.el5  /mnt/boot/         #将内核文件拷贝到/mnt/boot中

[root@lyt grub]# cp /boot/initrd-2.6.18-164.el5.img  /mnt/boot/           #将硬件驱动文件拷贝到/mnt/boot中

7:[root@lyt grub]# cd /mnt/boot/               #切换到该目录下

[root@lyt boot]# vim grub/grub.conf             #在grub目录中创建菜单文件grub.conf

引入指令:

无标题2

编辑grub.conf文件:

无标题8

8:[root@lyt grub]# cd /mnt/sysroot/              #切换到此目录中,相当于新建主机的根分区

[root@lyt sysroot]# mkdir bin boot dev etc home lib proc root sbin sys tmp usr var       #在/mnt/sysroot/目录下创建根分区应有的目录

[root@lyt sysroot]# cd /                #切换到宿主机的根分区

[root@lyt /]# ll                    #查看宿主机的文件权限(tmp目录比其他目录多了一个sticky权限)

无标题4

[root@lyt /]# cd /mnt/sysroot/                #切换到新建主机的根分区下

[root@lyt sysroot]# chmod o+t tmp         #更改tmp的其他用户的权限

[root@lyt sysroot]# cp /sbin/init sbin/       #将宿主机上的内核启动的用户级进程/sbin/init拷贝到/mntsysroot/sbin目录中

[root@lyt sbin]# ldd /sbin/init                   #查看宿主机内核启动的用户级进程init的系统调用

[root@lyt sbin]# cp /lib/libsepol.so.1 /mnt/sysroot/lib/       #将init的系统调用拷贝到/mnt/sysroot/lib中

[root@lyt sbin]# cp /lib/libselinux.so.1 /mnt/sysroot/lib/     #将init的系统调用拷贝到/mnt/sysroot/lib中

[root@lyt sbin]# cp /lib/libc.so.6 /mnt/sysroot/lib/             #将init的系统调用拷贝到/mnt/sysroot/lib中

[root@lyt sbin]# cp /lib/libdl.so.2 /mnt/sysroot/lib/            #将init的系统调用拷贝到/mnt/sysroot/lib中

[root@lyt sbin]# cp /lib/ld-linux.so.2 /mnt/sysroot/lib/       #将init的系统调用拷贝到/mnt/sysroot/lib中

9:[root@lyt etc]# cd /mnt/sysroot/etc/                         #切换到该目录中

[root@lyt etc]# cp /etc/inittab/ ./                               #将宿主机中的inittab文件拷贝到当前目录中

[root@lyt etc]# vim inittab                       #编辑inittab文件

无标题5

10:[root@lyt etc]# mkdir rc.d            #如上图中所示需要创建创建rc.d目录

[root@lyt rc.d]# vim rc.sysinit           #创建rc.sysinit文件,并编辑内容如下图

[root@lyt rc.d]# chmod a+x rc.sysinit    #将rc.sysinit赋予可执行权限

无标题6

11:[root@lyt ~]# cp /bin/bash /mnt/sysroot/bin/             #将宿主机的/bin/bash拷贝到/mntsysroot/bin中

[root@lyt bin]# ldd /bin/bash             #查看bash的系统调用

[root@lyt bin]# cp /lib/libtermcap.so.2 /mnt/sysroot/lib/     #将bash的系统调用拷贝到/mnt/sysroot/lib中

[root@lyt bin]# cp /lib/libdl.so.2 /mnt/sysroot/lib/              #将bash的系统调用拷贝到/mnt/sysroot/lib中

[root@lyt bin]# cp /lib/libc.so.6 /mnt/sysroot/lib/               #将bash的系统调用拷贝到/mnt/sysroot/lib中

 

[root@lyt bin]# cp /lib/ld-linux.so.2 /mnt/sysroot/lib/         #将bash的系统调用拷贝到/mnt/sysroot/lib中

[root@lyt bin]# cd /mnt/sysroot/lib/                                 #将bash的系统调用拷贝到/mnt/sysroot/lib中

12:[root@lyt lib]# sync           #将宿主机的内存中的信息同步到硬盘sdb中

新建一台虚拟机,将其硬盘删除,将刚才在宿主机上建好的硬盘导入到该虚拟机中。

三:测试

系统进入读秒时间:

无标题7

 

系统登录成功:

无标题9

四:附加

此时的系统没有任何指令,如果想使用指令则需要将指令以及系统的相关调用导入新添的硬盘中。这里以ls指令为例:

1:[root@lyt ~]# cp /bin/ls  /mnt/sysroot/bin/       #将宿主机中的ls指令拷贝到新建主机中

[root@lyt ~]# cp /lib/librt.so.1 /mnt/sysroot/lib/                     #将ls的系统调用拷贝到/mnt/sysroot/lib中

[root@lyt ~]# cp /lib/libacl.so.1 /mnt/sysroot/lib/                   #将ls的系统调用拷贝到/mnt/sysroot/lib中

[root@lyt ~]# cp /lib/libselinux.so.1 /mnt/sysroot/lib/             #将ls的系统调用拷贝到/mnt/sysroot/lib中

[root@lyt ~]# cp /lib/libc.so.6 /mnt/sysroot/lib/                     #将ls的系统调用拷贝到/mnt/sysroot/lib中

[root@lyt ~]# cp /lib/libpthread.so.0 /mnt/sysroot/lib/            #将ls的系统调用拷贝到/mnt/sysroot/lib中

[root@lyt ~]# cp /lib/ld-linux.so.2 /mnt/sysroot/lib/                #将ls的系统调用拷贝到/mnt/sysroot/lib中

[root@lyt ~]# cp /lib/libattr.so.1 /mnt/sysroot/lib/                  #将ls的系统调用拷贝到/mnt/sysroot/lib中

[root@lyt ~]# cp /lib/libdl.so.2 /mnt/sysroot/lib/                     #将ls的系统调用拷贝到/mnt/sysroot/lib中

[root@lyt ~]# cp /lib/libsepol.so.1 /mnt/sysroot/lib/                #将ls的系统调用拷贝到/mnt/sysroot/lib中

2:[root@lyt ~]# sync                      #将信息同步

测试系统指令导入成功与否:

无标题10

五:为系统设置登录界面的图片

1:[root@lyt grub]# mkdir /mnt/cdrom                                 #建立光盘挂载点

[root@lyt grub]# mount /dev/cdrom /mnt/cdrom/                  #挂载光盘

[root@lyt grub]# cd /mnt/cdrom/Server/                               #切换到该目录中

[root@lyt Server]# ll gimp**            #查找linux自带的图片处理工具gimp

[root@lyt Server]# vim /etc/yum.repos.d/rhel-debuginfo.repo    #编辑yum安装工具,这里不使用虚拟化VT、群集Cluster和存储ClusterStorage,所以不用修改这三项

无标题12

[root@lyt Server]# yum install gimp         #使用yum安装gimp

2:[root@lyt Server]# yum install vsftpd-2.0.5-16.el5.i386.rpm    #使用yum安装ftp服务器

[root@lyt Server]# service vsftpd start        #开启ftp服务器

如果使用ftp服务器向虚拟机内传东西,则必须满足:1:/etc/vsftpd/vsftpd.conf中第27行anon_upload_enable=yes。2:将ftp默认目录/var/ftp/pub改为可读可写

[root@lyt ~]# vim /etc/vsftpd/vsftpd.conf    #编辑ftp服务器配置脚本如下图

无标题13

[root@lyt ftp]# chmod a+w pub         #修改ftp的默认目录/var/ftp/pub权限为可读可写

[root@lyt ftp]# service vsftpd restart    #重启ftp服务器

3:进入图形界面,找到图片,用gimp打开

无标题14

4:在导航“图像”中,选择“画布大小”,修改图片分辨率

无标题15

5:在导航“图像”中选择“模式”的索引,修改为14

无标题16

6:选择保存,将图片保存为xpm格式

7:[root@lyt ~]# gzip AK-47.xpm     #用gzip将图片压缩

[root@lyt ~]# cp AK-47.xpm.gz /mnt/boot/grub/   #将文件拷贝到该目录下,因为/mnt/boot/grub/grub.conf文件要调用该压缩图片

[root@lyt ~]# vim /mnt/boot/grub/grub.conf     #编辑该文件如下图所示

无标题17

8:[root@lyt ~]# sync    #同步到硬盘中

测试设置登录界面是否成功

无标题18