在 Linux 和 FreeDOS 之间复制文件
我运行 Linux 作为我的主要操作系统,我在一个虚拟机中启动 FreeDOS。大多数时候,我使用 QEMU 作为我的 PC 模拟器,但有时我会用 GNOME Boxes(它使用 QEMU 作为后端虚拟机)或用 VirtualBox 运行其他实验。
我喜欢玩经典的 DOS 游戏,有时我也会调出一个最喜欢的 DOS 应用。我在管理信息系统(MIS)课上讲计算机的历史,有时我会用 FreeDOS 和一个传统的 DOS 应用录制一个演示,比如 As-Easy-As(我最喜欢的 DOS 电子表格,曾经作为 共享软件 发布,但现在可以 从 TRIUS 公司免费获得)。
但是以这种方式使用 FreeDOS 意味着我需要在我的 FreeDOS 虚拟机和我的 Linux桌 面系统之间传输文件。让我来展示是如何做到这一点的。
用 guestmount 访问镜像我曾经通过计算第一个 DOS 分区的偏移量来访问我的虚拟磁盘镜像,然后用正确的选项组合来调用 Linux 的 mount 命令来匹配这个偏移量。这总是很容易出错,而且不是很灵活。幸运的是,有一个更简单的方法可以做到这一点。来自 libguestfs-tools 包的 guestmount 程序可以让你从 Linux 中访问或 挂载 虚拟磁盘镜像。你可以在 Fedora 上用这个命令安装 libguestfs-tools:
$ yum install libguestfs-tools libguestfs
使用 guestmount 并不像从 GNOME 文件管理器中双击文件那么简单,但命令行的使用并不难。guestmount 的基本用法是:
$ guestmount -a image -m device mountpoint
在这个用法中,image 是要使用的虚拟磁盘镜像。在我的系统中,我用 qemu-img 命令创建了 QEMU 虚拟磁盘镜像。guestmount 程序可以读取这种磁盘镜像格式,以及 GNOME Boxes 使用的 QCOW2 镜像格式,或者 VirtualBox 使用的 VDI 镜像格式。
device 选项表示虚拟磁盘上的分区。想象一下,把这个虚拟磁盘当作一个真正的硬盘使用。你可以用 /dev/sda1 访问第一个分区,用 /dev/sda2 访问第二个分区,以此类推。这就是 guestmount 的语法。默认情况下,FreeDOS 1.3 RC4 在一个空的驱动器上创建了一个分区,所以访问这个分区的时候要用 /dev/sda1。
而 mountpoint 是在你的本地 Linux 系统上 挂载 DOS 文件系统的位置。我通常会创建一个临时目录来工作。你只在访问虚拟磁盘时需要挂载点。
综上所述,我使用这组命令从 Linux 访问我的 FreeDOS 虚拟磁盘镜像:
$ mkdir /tmp/freedos $ guestmount -a freedos.img -m /dev/sda1 /tmp/freedos
之后,我可以通过 /tmp/freedos 目录访问我的 FreeDOS 文件,使用 Linux 上的普通工具。我可以在命令行中使用 ls /tmp/freedos,或者使用桌面文件管理器打开 /tmp/freedos 挂载点。
$ ls -l /tmp/freedos total 216 drwxr-xr-x. 5 root root 8192 May 10 15:53 APPS -rwxr-xr-x. 1 root root 85048 Apr 30 07:54 COMMAND.COM -rwxr-xr-x. 1 root root 103 May 13 15:48 CONFIG.SYS drwxr-xr-x. 5 root root 8192 May 15 16:52 DEVEL drwxr-xr-x. 2 root root 8192 May 15 13:36 EDLIN -rwxr-xr-x. 1 root root 1821 May 10 15:57 FDAUTO.BAT -rwxr-xr-x. 1 root root 740 May 13 15:47 FDCONFIG.SYS drwxr-xr-x. 10 root root 8192 May 10 15:49 FDOS -rwxr-xr-x. 1 root root 46685 Apr 30 07:54 KERNEL.SYS drwxr-xr-x. 2 root root 8192 May 10 15:57 SRC -rwxr-xr-x. 1 root root 3190 May 16 08:34 SRC.ZIP drwxr-xr-x. 3 root root 8192 May 11 18:33 TEMP
使用 GNOME 文件管理器来访问虚拟磁盘
例如,要从我的 Linux projects 目录中复制几个 C 源文件到虚拟磁盘镜像上的 C:/SRC,以便我以后能在 FreeDOS 下使用这些文件,我可以使用 Linux cp 命令:
$ cp /home/jhall/projects/*.c /tmp/freedos/SRC
虚拟驱动器上的文件和目录在技术上是不分大小写的,所以你可以用大写或小写字母来引用它们。然而,我发现使用所有大写字母来输入 DOS 文件和目录更为自然。
$ ls /tmp/freedos APPS CONFIG.SYS EDLIN FDCONFIG.SYS KERNEL.SYS SRC.ZIP COMMAND.COM DEVEL FDAUTO.BAT FDOS SRC TEMP $ ls /tmp/freedos/EDLIN EDLIN.EXE MAKEFILE.OW $ ls /tmp/freedos/edlin EDLIN.EXE MAKEFILE.OW用 guestmount 卸载
在你再次在虚拟机中使用虚拟磁盘镜像之前,你应该总是先 卸载。如果你在运行 QEMU 或 VirtualBox 时让镜像挂载,你有可能弄乱你的文件。
与 guestmount 配套的命令是 guestunmount,用来卸载磁盘镜像。只要给出你想卸载的挂载点就可以了:
$ guestunmount /tmp/freedos
请注意命令拼写与 Linux 的 umount 稍有不同。
via: https://opensource.com/article/21/6/copy-files-linux-freedos
作者:Jim Hall 选题:lujun9972 译者:geekpi 校对:wxy
本文由 LCTT 原创编译,Linux中国 荣誉推出
50412.html
FedoralinuxVirtualBox虚拟机相关文章
- 优化Linux网络参数:加速你的网络体验(linux网络参数的设置)
- Linux下杀死进程的命令指南(linux杀进程命令)
- Linux下启动程序设置指南(linux设置启动程序)
- 揭秘Linux系统进程类型知识(linux系统进程类型)
- 网易 Linux:构建坚实的未来(网易linux)
- Linux查找超大文件(linux查找大于文件)
- Linux下解压.z文件的方法(.z文件解压linux)
- 使用Linux命令行复制文件(linux下复制文件命令)
- 解压Linux中的ZIP文件:快速简便(linux解压zip命令)
- Linux下如何去除文件中的空格(linux去除空格)
- Linux 系统格式化快速攻略(linux格式化教程)
- 如何使用Linux编写Shell脚本(linux编写sh文件)
- Linux下使用剪切命令快速完成文件复制(linux剪切命令)
- Linux分支:探索全新的可能性(linux的分支)
- 掌握Linux:必不可少的软件测试技能(软件测试为什么要学linux)
- Linux的发展史:从分支到繁荣(linux的分支)
- Linux系统下查看文件的方法总结(linux系统文件查看)
- Linux密码安全: /etc/shadow保障您的隐私(linux密码保存文件)
- Linux中View命令:简单而强大的文件查看方式(linux中view命令)
- 『Linux系统下修改文件所有者的方式』(修改linux文件所有者)
- Linux 删除所有文件:一键操作清场(linux删除所有文件)
- 系统Linux多用户环境下的文件共享(linux 多用户文件)
- Linux进程间通信:穿越跨界的数据交流(linux进程之间通信)
- 学习Linux,掌握精彩未来!(linux学堂)
- Linux 快速访问中文文件:一步到位(linux访问中文文件)
- Linux基础入门:从PDF学习开始(linux基础教程pdf)
- 分区Linux下使用ext4分区管理磁盘资源(linux创建ext4)