这不是无聊的测试。之前论坛里有朋友寻问deepin如何把cd制作成iso,有提问就应该有需求,一般大神的回答只是提示几个关键词,所以我们小白是理解不透的。
为了搞清楚这个问题,老陌本着实事求事的态度测试了一下,最终老陌测试成功,收获了知识与喜悦。下面把我的测试步骤整理分享一下:
由于没有光驱,老陌早上起来在虚拟机里安装了深度操作系统,这样在虚拟机中就有光驱了,解决了硬件窘迫的问题。
对于这个需求,就是制作光盘镜像。在windows下有相关的软件,在deepin中我不知道用什么软件可以实现,但我想一定有一款可以实现的。 不过根据这位网友的提示,他用dd命令解决,所以我想他应该想在命令行上处理这个问题,那老陌就按这个套路走下去。
老陌通过之前的学习,知道了/dev/sda设备节点就表示硬盘,那么光驱也应该有对应的设备节点,在centos中(我看的资料是centos,因为deepin的资料太少)光驱设备节点是/dev/cdrom,只要对这个设备进行dd命令就可以了。
如图:
因为centos中/dev/cdrom是设备节点,所以
dd if=/dev/cdrom of=deepin.iso bs=4M
但网友按这种方法却失败了,看来deepin和centos在设备节点是不一样的。根据网友的提示,deepin能自动挂载,也能查看到里面的内容,那咱们就从这个地方下手,找一下设备节点。
一、查找设备节点
首先老陌把光盘插入光驱:(为了测试方便,老陌找一个live系统,因为很小,制作起来节省时间)
之后打开文件管理器你会发现在下面多了一个图标,这说明自动挂载上了。
双击打开,单击地址栏看到挂载的目录:/media/vlinux/ISOIMAGE
有了这个我们可以方便的查看出挂载的设备节点了。
在linux中用mount命令可以查看所有挂载信息,只要在终端输入mount就行。
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就可以)
通过观察,我们发现成功了。
四、继续
为什么还要继续,因为老陌之前学过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。