Linux:论如何在虚拟机上挂载多个镜像?

2023-10-15,,

欢迎来到千汐

 


博客名称:千秋云染
博客网址:https://www.cnblogs.com/skyrainmom

寄语:在混乱不堪的世界里你只管前行,时间替会证明一切

world cookie

我可能是第一个提出这个疑问的人了。。。。。

本人无事,就一个字:任性!我也就“思考分析”这一个爱好了........

问题来源:

以Cent-OS系统为例,我们都知道在搭建openstack平台时需要用到openStack-trian.iso镜像,而对于这个镜像文件,一般我们的做法是通过远程连接控制软件进行文件的上传,将镜像传输到虚拟机里,但是,这个镜像文件有16G之多,传输耗时,那么有没有一种方法可以不用上传,直接实现挂载呢?

问题分析:要做到这一点,最大的问题就是挂载镜像的方式

以rhel-7为例:

挂载镜像的命令一般为:mount /dev/cdrom /media ,但一般我们虚拟机只会连接一个镜像,如果要连接多个镜像,就要在设置里多添加一张光驱:

但是,问题来了,我们无法查到镜像文件在哪个地方!已知的只有桌面上出现的两个镜像,我通过Xftp连接查看目录,也没有在其他目录下找到镜像:

挂载的唯一信息就是/dev/cdrom,经过我查询大量资料,发现/dev/cdrom代表光驱

也就是说,我们将镜像放在了/dev/cdrom里,从某种意义上来讲,/dev/cdrom就代表 了一个镜像,但是当系统有两个镜像时,挂载出现了问题:

第一行没问题,第二行及以下大致的意思是,已经挂载了镜像,但是无法区分该镜像是红帽镜像还是openstack镜像,不过看样子应该是红帽镜像。

查看挂载点信息:

(上图为成功的案例供参考)

讲解一下:首先出现了“16G”,说明该行为openstack镜像挂载点信息,最后一行“3.6G”明显是红帽的镜像,两者都是iso9660,没问题,其中有问题的地方在于/dev/sr1和/dev/sr0,通过查询得知,/dev/sr0是光驱的设备名,cdrom实际上是sr0的软链接,也就是说/dev/sr0==/dev/cdrom,可以通过ll命令查看/dev/cdrom的显示,cdrom指向sr0。

而/dev/sr1就是光驱设备2,也就是连接openstack的那张CD/DVD光驱,/dev/sr0是默认的,因为我们安装红帽系统时连接的第一个镜像就是红帽的镜像,所以/dev/sr0就对应rhel,以此类推,再加一张光驱,就会有/dev/sr2设备名,我没有找到镜像在哪儿,但是我找到了镜像对应的光驱设备,问题解决。

挂载红帽镜像,命令:mount /dev/sr0 /media

挂载openstack镜像,命令:mount /dev/sr1 /mnt

最后rhel+openstack的总包数量:

用Xftp查看/media,和/mnt目录,可以看到一个里面为红帽的文件,另一个里面为Openstack的文件:

测试,基于红帽系统,在拥有openstack镜像的情况下,安装keystone组件:

具体操作:

(1)在虚拟机设置添加一张CD/DVD连接镜像,重启虚拟机

(2)先输入挂载命令,再输入df -hT查看挂载点信息,看镜像属于哪个光驱设备,依照光驱设备名,挂载该镜像:mount /dev/sr1 /mnt

(3)配置yum仓库,以openstack为例

终端输入:vim /etc/yum.repos.d/openstack.repo

写入:

[base]

name=base

naseurl=file:///mnt/base/

enable=1

gpgcheck=0

[extras]

name=extras

baseurl=file:///mnt/extras/

enable=1

gpgcheck=0

[updates]

name=updates

baseurl=file:///mnt/updates/

enable=1

gpgcheck=0

[train]

name=train

baseurl=file:///mnt/train/

enable=1

gpgcheck=0

[virt]

name=virt

baseurl=file:///mnt/virt/

enable=1

gpgcheck=0

(4)清空缓存,检索

终端输入:yum clean all

终端输入:yum repolist

总结:挂载两个镜像是可以实现的,解决了上传费时的问题。

其他问题:(1)连接的openstack镜像,系统识别不出来,问题在于第一张图片中 openstack的镜像名为什么是20220301_215215?

     (2)此次分析是基于红帽系统做的,真正用到两个镜像的是基于Cent-OS系统,在Cent-OS上不知道会不会出错,有待实验。

寄语:掌握“发现问题,分析问题,解决问题”才是一名合格的运维人员,谢谢程姐的教导,为了研究问题,虚拟机已经被我玩坏好几个了.....

Linux:论如何在虚拟机上挂载多个镜像?的相关教程结束。

《Linux:论如何在虚拟机上挂载多个镜像?.doc》

下载本文的Word格式文档,以方便收藏与打印。