这不是无聊的测试。之前论坛里有朋友寻问deepin如何把cd制作成iso,有提问就应该有需求,一般大神的回答只是提示几个关键词,所以我们小白是理解不透的。

为了搞清楚这个问题,老陌本着实事求事的态度测试了一下,最终老陌测试成功,收获了知识与喜悦。下面把我的测试步骤整理分享一下:

由于没有光驱,老陌早上起来在虚拟机里安装了深度操作系统,这样在虚拟机中就有光驱了,解决了硬件窘迫的问题。

对于这个需求,就是制作光盘镜像。在windows下有相关的软件,在deepin中我不知道用什么软件可以实现,但我想一定有一款可以实现的。 不过根据这位网友的提示,他用dd命令解决,所以我想他应该想在命令行上处理这个问题,那老陌就按这个套路走下去。

老陌通过之前的学习,知道了/dev/sda设备节点就表示硬盘,那么光驱也应该有对应的设备节点,在centos中(我看的资料是centos,因为deepin的资料太少)光驱设备节点是/dev/cdrom,只要对这个设备进行dd命令就可以了。

如图:

怎么将e01镜像文件转化为虚拟机文件格式 镜像文件esd怎么变iso_设备节点

因为centos中/dev/cdrom是设备节点,所以

dd if=/dev/cdrom of=deepin.iso bs=4M

但网友按这种方法却失败了,看来deepin和centos在设备节点是不一样的。根据网友的提示,deepin能自动挂载,也能查看到里面的内容,那咱们就从这个地方下手,找一下设备节点。

一、查找设备节点

首先老陌把光盘插入光驱:(为了测试方便,老陌找一个live系统,因为很小,制作起来节省时间)

怎么将e01镜像文件转化为虚拟机文件格式 镜像文件esd怎么变iso_centos_02

之后打开文件管理器你会发现在下面多了一个图标,这说明自动挂载上了。

双击打开,单击地址栏看到挂载的目录:/media/vlinux/ISOIMAGE

怎么将e01镜像文件转化为虚拟机文件格式 镜像文件esd怎么变iso_centos_03

有了这个我们可以方便的查看出挂载的设备节点了。

在linux中用mount命令可以查看所有挂载信息,只要在终端输入mount就行。

怎么将e01镜像文件转化为虚拟机文件格式 镜像文件esd怎么变iso_设备节点_04

mount会打印输出很多挂载信息,为了查看方便,我们用grep进行过滤,也就是说发现了/media/vlinux字样的才打印出来。通过查看信息得知设备节点是/dev/sr0。

二、制作镜像文件

root@vdeepin:~# dd if=/dev/sr0 of=live.iso bs=4M
96+1 records in
96+1 records out
403701760 bytes (404 MB, 385 MiB) copied, 2.8208 s, 143 MB/s
root@vdeepin:~#

通过dd命令制作成功,为了验证一下这个镜像能不能引导系统,我们还需要进行测试,如果引导不了,那不白做了……

我在虚拟机中以root用户身份制作的iso文件 ,文件路径: /root/live.iso,现在需要把live.iso复制到虚拟机的外面,之后放到虚拟机光驱里测试一下。深度已经提供了上传和下载的功能,这个老陌不在废话,直接复制出来。

插曲

在终端添加服务器,连接深度虚拟机时出错,不让连接。
解决办法:

1.安装ssh:

sudo apt install ssh

2.修改配置文件,否则不让root登录

vi /etc/ssh/sshd\_config

将PermitRootLogin的值改成yes,并保存。之后重启一下服务:

systemctl restart ssh.service

三、测试镜像文件

再次添加服务器成功,登录之后下载到本地磁盘。之后放到虚拟机的光驱里,重启电脑进行测试,看看这个live能不能引导系统。老陌用的是virtualbox的虚拟机,开机之后按f12,选择cdrom(按C就可以)

怎么将e01镜像文件转化为虚拟机文件格式 镜像文件esd怎么变iso_centos_05

怎么将e01镜像文件转化为虚拟机文件格式 镜像文件esd怎么变iso_linux_06

通过观察,我们发现成功了。

四、继续

为什么还要继续,因为老陌之前学过cat命令的重定向,学过less -f的强制读取,看看他们的表现如何。

root@vdeepin:~# cat /dev/sr0 > live2.iso
root@vdeepin:~# diff live2.iso live.iso
root@vdeepin:~#

利用cat命令生成了live2.iso, 通过diff命令对比了一下live2.iso与live.iso发现完全一样。

再来看看less -f的表现:

root@vdeepin:~# less -f /dev/sr0 >live3.iso
root@vdeepin:~# diff live3.iso live.iso
root@vdeepin:~#

利用less命令生成live3.iso,通过diff命令对比了一下live3.iso与live.iso发现完全一样。

至此,此项测试任务完成,通过这次的测试,让我感觉到帮助别人,就是自己成长的过程。不过99%的问题,老陌还搞不定,只能挑一些老陌力所能及的问题。

总结一下所得:

  • 想要做低级访问,需要访问设备节点。
  • 设备节点:/dev/sr0表示的是光驱。
  • 设备节点:/dev/cdrom表示的是光驱(centos中),老陌ls一下/dev/cdrom发现是一个软连接,目标还是sr0,这圈子绕的有些大。
  • 想要远程访问:目标主机要装ssh。
  • 远程root访问不了,要修改/etc/ssh/sshd_config,将PermitRootLogin的值改成yes。