在 Linux 和 FreeDOS 之间复制文件
创始人
2024-03-02 07:41:38
0

下面是我如何在我的 FreeDOS 虚拟机和 Linux 桌面系统之间传输文件。

我运行 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 file manager

使用 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中国 荣誉推出

相关内容

FreeDOS 基础:从 ...
我很高兴分享我最喜欢的 26 个 FreeDOS 命令。我家最早的...
2024-03-02 17:39:24
在 FreeDOS 上如何...
在 FreeDOS 上使用 C 语言编程与在 Linux 上使用 ...
2024-03-02 15:09:30
FreeDOS 的 16 ...
为什么文本只能使用这些有限的颜色显示,为什么 FreeDOS 使用...
2024-03-02 12:38:29
如何使用 FreeDOS ...
FreeDOS 提供了一个叫做 FreeDOS Edit 的用户友...
2024-03-02 11:45:14
在 FreeDOS 中聆听...
Mplayer 是 Linux、Windows、Mac 和 DOS...
2024-03-02 11:15:01
硬核观察 #555 以太坊...
以太坊创始人说,加密货币冬天将受到顶级开发者的欢迎最近几周,加密货...
2024-03-02 10:04:13

热门资讯

Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
使用 KRAWL 扫描 Kub... 用 KRAWL 脚本来识别 Kubernetes Pod 和容器中的错误。当你使用 Kubernet...
JStock:Linux 上不... 如果你在股票市场做投资,那么你可能非常清楚投资组合管理计划有多重要。管理投资组合的目标是依据你能承受...
Epic 游戏商店现在可在 S... 现在可以在 Steam Deck 上运行 Epic 游戏商店了,几乎无懈可击! 但是,它是非官方的。...
《Apex 英雄》正式可在 S... 《Apex 英雄》现已通过 Steam Deck 验证,这使其成为支持 Linux 的顶级多人游戏之...
从 Yum 更新中排除特定/某... 作为系统更新的一部分,你也许需要在基于 Red Hat 系统中由于应用依赖排除一些软件包。如果是,如...
通过 SaltStack 管理... 我在搜索Puppet的替代品时,偶然间碰到了Salt。我喜欢puppet,但是我又爱上Salt了:)...
如何在 Github 上创建一... 学习如何复刻一个仓库,进行更改,并要求维护人员审查并合并它。你知道如何使用 git 了,你有一个 G...
Opera 浏览器内置的 VP... 昨天我们报道过 Opera 浏览器内置了 VPN 服务,用户打开它可以防止他们的在线活动被窥视。不过...
如何检查你的 Linux 系统... 不知道在使用哪个初始化系统?以下是方法。每个主流 Linux 发行版(包括 Ubuntu、Fedor...