利用tar或dd在不同操作系统间传输文件的另类方法

简介:
  在不同操作系统之间进行文件传送的方式有很多种。如果网络可通,可以使用FTP、SFTP、NFS、SAMBA(CIFS)、HTTP等方式进行传输;如果网络不通,则可以使用两个操作系统之间共同支持的文件系统进行传输,比如软盘、光盘或最常用的FAT文件系统等;还可以使用两个操作系统共同支持的备份设备进行传输,比如磁带备份(严格讲,也是基于共同支持的依赖于硬件的文件系统)。
  可现在我遇到的一个XENIX系统就麻烦得多了:网络不工作(可能是我不会,呵呵),mkdev dos也不支持,试图mount一个msdos文件系统也不成功,又没有磁带机等设备,数据量也很大,软盘备份也不太可靠。
  这个系统已经很老了,客户已经报废了这套系统,但里面的数据希望能拷贝出来,迁移到新的系统上(新系统应该是现在主流的WINDOWS\LINUX或UNIX,传入文件都不是大问题)。
  我接手时,遇到很多问题,系统无法启动,硬盘损坏等,后来虽然全部解决了(解决过程稍后有机会记录),但COPY文件真是为难了我了。
  一个好的办法是,自己写个文件系统的解释程序(类似于驱动),这个方式会麻烦一些,同时需要对文件系统底层结构做下深入研究。这种做法我也做成功了,但毕竟适用性差,有点大材小用。先不讲这个,看另外的方法:利用所有操作系统对硬盘IO的兼容性,用dd或tar直接在祼设备上进行文件传输:
  dd是一个向设备进行字节完整输入输出的程序。
  tar是一个备份/打包/压缩程序。
  为了操作方便,我在虚拟机下完成这个任务。
  1、将原数据硬盘挂接到新建的一个虚拟机环境下,在虚拟机环境下建一个flat硬盘(创建时即完全分配空间的硬盘,硬盘的大小应略大于导出数据总和),启动xenix系统(这个系统和硬件关系不大)。
  2、启动后执行mkdev hd对新硬盘自动mknod,分不分区无所谓。完成后,通过ls /dev/rhd* 以及 fdisk -f /dev/rhdXXX获取新硬盘设备路径。
  3、进行数据迁移。
  第一种方法:
    用dd if= 要备份的文件 of=/dev/rhdXXX 就可以把文件复制到/dev/rhdXXX这块硬盘上了,把这块硬盘挂到要导入数据的系统上,从硬盘(在虚拟机看来,实际上是外部操作系统下的一个文件)开头用WINHEX截取 要备份文件大小成目标文件即可。
  第二种方式(可以导出大量文件):
    tar -cvf /dev/rhdXXX / (把/下所有的文件打包输出到/dev/rhdXXX设备上),然后操作同上,在另外的系统上截取数据即可(如果是在虚拟机里,可以直接用tar或RAR等文件解压vmdf文件,不需截取数据)
  第三种方式(tar与dd联合):
    tar -cvf - / | dd of=/dev/rhdXXX (利用管道操作,与第二种方式相同)
 




本文转自 张宇 51CTO博客,原文链接:http://blog.51cto.com/zhangyu/161426,如需转载请自行联系原作者
目录
相关文章
|
Linux
Linux制作deb格式安装包教程
Linux制作deb格式安装包教程
1250 0
|
网络协议 安全 数据安全/隐私保护
交换机访问控制列表(ACL)详解
交换机访问控制列表(ACL)详解
1315 0
|
Web App开发 前端开发 JavaScript
构建跨浏览器兼容的前端应用:技术实践与挑战
【5月更文挑战第16天】构建跨浏览器兼容的前端应用是应对浏览器差异和多样性的挑战。使用现代框架(如React、Vue)能自动转换代码,编写可移植的Web标准代码,结合浏览器兼容性测试工具和Polyfill解决旧浏览器支持问题。关注浏览器更新,应对性能、API差异和样式问题,采用渐进增强、条件判断和CSS Reset策略确保应用在各种浏览器上运行良好。
|
运维 Kubernetes Linux
10分钟搭建Kubernetes容器集群平台(kubeadm)
10分钟搭建Kubernetes容器集群平台(kubeadm)
|
网络架构 架构师 网络协议
《IP组播(第1卷)》一导读
本书包含了基本IP组播原理和路由技术,尤其是Cisco路由器和交换机使用的组播技术,其中切合实际地讨论了 IP 组播网络的常见特性、部署模型和实战经验,之后讨论了 Cisco IP组播网络在实施和排错时使用的命令和方法。
2229 0
|
安全 CDN
三天完成企业官网ICP备案与公安备案-详细流程
三天完成企业官网ICP备案与公安备案-详细流程
607 0
三天完成企业官网ICP备案与公安备案-详细流程
|
机器学习/深度学习 人工智能 PyTorch
【Pytorch神经网络理论篇】 29 图卷积模型的缺陷+弥补方案
多层全连接神经网络被称为万能的拟合神经网络。先在单个网络层中用多个神经元节点实现低维的数据拟合,再通过多层叠加的方式对低维拟合能力进行综合,从而在理论上实现对任意数据的特征拟合。
647 0
Windows cmd窗口改变字体或背景颜色
Windows cmd窗口改变字体或背景颜色
Windows cmd窗口改变字体或背景颜色
|
Kubernetes Linux 容器
Linux 主机巡检脚本(包含 k8s)
Linux 主机巡检脚本(包含 k8s)
454 0
mac启动terminal终端快捷键
mac启动terminal终端快捷键
365 0