当前位置: 首页 > 科技观察

在Linux和FreeDOS之间复制文件

时间:2023-03-15 22:51:05 科技观察

以下是我在FreeDOS虚拟机和Linux桌面系统之间传输文件的方法。我运行Linux作为我的主要操作系统,并在虚拟机中启动FreeDOS。大多数时候,我使用QEMU作为我的PC模拟器,但有时我使用GNOMEBoxes(使用QEMU作为后端虚拟机)或VirtualBox运行其他实验。我喜欢玩经典的DOS游戏,有时我也会调出一个最喜欢的DOS应用程序。我在我的MIS课程中教授计算机历史,有时我会使用FreeDOS和传统的DOS应用程序录制演示,例如As-Easy-As(我最喜欢的DOS电子表格,用作“共享软件”版本,但现在免费可从TRIUSCorporation获得)。但以这种方式使用FreeDOS意味着我需要在我的FreeDOS虚拟机和我的Linux桌面系统之间传输文件。让我展示一下这是如何完成的。使用guestmount访问图像我过去常常通过计算访问我的虚拟磁盘图像第一个DOS分区的偏移量,然后使用正确的选项组合调用Linuxmount命令以匹配该偏移量。这总是容易出错并且不是很灵活。幸运的是,有一种更简单的方法可以做到这一点。guestmount程序来自libguestfs-tools软件包允许您从Linux中访问或挂载虚拟磁盘映像。您可以使用以下命令在Fedora上安装libguestfs-tools:$yuminstalllibguestfs-toolslibguestfs使用guestmount并不那么简单就像从GNOME文件管理器中双击文件一样,但是从命令行使用它并不困难。guestmount的基本用法是:$guestmount-aimage-mdevicemountpoint在这个用法中,image是要使用的虚拟磁盘映像。在我的系统上,我使用qemu-img命令创建了一个QEMU虚拟磁盘映像。guestmount程序可以读取这种磁盘镜像格式,也可以读取GNOMEBoxes使用的QCOW2镜像格式,或者VirtualBox使用的VDI镜像格式。设备选项表示虚拟磁盘上的一个分区。想象一下将此虚拟磁盘用作真实硬盘。您可以使用/dev/sda1访问第一个分区,/dev/sda2访问第二个分区,依此类推。这是guestmount的语法。默认情况下,FreeDOS1.3RC4在空驱动器上创建一个分区,因此/dev/sda1用于访问该分区。挂载点是DOS文件系统在本地Linux系统上“挂载”的位置。我通常创建一个临时目录来工作。您只需要安装点来访问虚拟磁盘。综上所述,我使用这组命令从Linux访问我的FreeDOS虚拟磁盘映像:$mkdir/tmp/freedos$guestmount-afreedos.img-m/dev/sda1/tmp/freedos之后,我可以通过/tmp/freedos目录访问我的FreeDOS文件,在Linux上使用普通工具。我可以从命令行执行ls/tmp/freedos,或者使用桌面文件管理器打开/tmp/freedos挂载点。$ls-l/tmp/freedostotal216drwxr-xr-x。5根root8192May1015:53APPS-rwxr-xr-x。1rootroot85048Apr3007:54COMMAND.COM-rwxr-xr-x。1rootroot103May1315:48CONFIG.SYSdrwxr-xr-x。5rootroot8192May1516:52DEVELdrwxr-xr-x。2rootroot81925月15日13:36EDLIN-rwxr-xr-x。1根根1821年5月10日15:57FDAUTO.BAT-rwxr-xr-x。1rootroot7405月13日15:47FDCONFIG.SYSdrwxr-xr-x。10rootroot8192May1015:49FDOS-rwxr-xr-x。1rootroot46685Apr3007:54KERNEL.SYSdrwxr-xr-x。2rootroot81925月10日15:57SRC-rwxr-xr-x。1rootroot3190May1608:34SRC.ZIPdrwxr-xr-x。3rootroot8192May1118:33TEMP使用GNOME文件管理器访问虚拟磁盘比如我把我的Linuxprojects目录下的几个C源文件复制到虚拟磁盘镜像的C:\SRC中,这样我就可以以后可以在FreeDOS下使用这些文件,我可以使用Linuxcp命令:$cp/home/jhall/projects/*.c/tmp/freedos/SRC虚拟驱动器上的文件和目录在技术上是不区分大小写的,所以你可以参考用大写或小写字母给他们。但是,我发现以全部大写形式键入DOS文件和目录更为自然。$ls/tmp/freedosAPPSCONFIG.SYSEDLINFDCONFIG.SYSKERNEL.SYSSRC.ZIPCOMMAND.COMDEVELFDAUTO.BATFDOSSRCTEMP$ls/tmp/freedos/EDLINEDLIN.EXEMAKEFILE.OW$ls/tmp/freedos/edlinEDLIN。EXEMAKEFILE.OW使用guestmount卸载在虚拟机中再次使用虚拟磁盘映像之前,您应该始终卸载它。如果在运行QEMU或VirtualBox时挂载映像,则可能会弄乱文件。guestmount附带的命令是guestunmount,用于卸载磁盘映像。只需提供您要卸载的挂载点:$guestunmount/tmp/freedos请注意该命令的拼写与Linux的umount略有不同。