一、原理图
二、新增磁盘(对应上图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大小左右
··