一、原理图


二、新增磁盘(对应上图sdb盘)







三、挂载磁盘
主要是四步:查看磁盘,分区磁盘,格式化磁盘,挂载磁盘
1、查看磁盘

2、分区磁盘



3、格式化磁盘


4、挂载磁盘
创建两个备用目录,用于磁盘分区的挂载
其中,boot目录是启动盘,sysroot是根目录盘

挂载分区

参考:https://blog.csdn.net/Brave_heart4pzj/article/details/134423137
四、定制化Linux
就是把sda中的Linux启动相关的主要文件,拷贝到sdb中对应的目录中,制作一个启动引导分区。
1、安装grub工具
grub2-install --root-directory=/mnt /dev/sdb

2、检验grub安装是否成功
hexdump -C -n 512 /dev/sdb

3、拷贝启动目录的相关文件
rm -rf /mnt/boot/*
cp -rf /boot/* /mnt/boot/

4、修改grub.cfg配置文件
cd /mnt/boot/grub2/
cat grub.cfg

注意下图标红处,需要替换UUID和追加内容
替换uuid
对应关系:下图中的sda1是启动目录,替换为sdb1的uuid,sda3的根目录uuid,替换成sdb2的uuid

sed -i 's/62629ed9-28ce-4e8b-8e00-0f61180566ff/fb875777-dd19-43b2-a1c2-1bdef756f5b5/g' grub.cfg
sed -i 's/4576424e-9060-49d8-bb6c-8da404858558/41a1f1fd-2dbe-404d-840a-21f789e56b99/g' grub.cfg
给grub.cfg截图中标记箭头的地方,追加如下内容
selinux=0 init=/bin/bash
最终配置结果

5、创建目标主机根文件系统
mkdir -pv /mnt/sysroot/{etc/rc.d,usr,var,proc,sys,dev,lib,lib64,bin,sbin,boot,srv,mnt,media,home,root}

6、拷贝根目录文件
cp /lib64/*.* /mnt/sysroot/lib64/
cp /bin/bash /mnt/sysroot/bin/

7、创建新虚拟机
移除默认的硬盘,让新虚拟机指向上面制作好的sdb硬盘












做好以上配置后,关闭原虚拟机系统,启动min-centos7系统

出现上图,说明一切顺利。
我这里出现过一个问题,就是在我启动min-centos7系统时,我的电脑直接蓝屏重启了。
然后,我继续启动min-centos7就正常了。

现在只能使用cd命令,ls命令都用不了,因为,我们没有拷贝ls相关的文件到根目录中。
8、定制其他命令
启动原虚拟机,进行相关指令文件的拷贝,定制我们需要的功能
这里以ls、reboot指令为例子。
mount /dev/sdb2 /mnt/sysroot/
cp /bin/ls /mnt/sysroot/bin/
cp /sbin/reboot /mnt/sysroot/sbin/

重启min-centos7
测试ls命令
/bin/ls
直接ls不能用,是因为我们没有配置环境。

五、对比
比对一下定制的虚拟机大小


总共大概1.2G大小左右
··