前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >在 Linux 和 FreeDOS 之间复制文件

在 Linux 和 FreeDOS 之间复制文件

原创
作者头像
用户1685462
修改2021-09-13 11:35:02
1.2K0
修改2021-09-13 11:35:02
举报
文章被收录于专栏:网站教程

用 guestmount 访问镜像

我曾经通过计算第一个 DOS 分区的偏移量来访问我的虚拟磁盘镜像,然后用正确的选项组合来调用 Linux 的 mount 命令来匹配这个偏移量。这总是很容易出错,而且不是很灵活。幸运的是,有一个更简单的方法可以做到这一点。来自 libguestfs-tools 包的 guestmount 程序可以让你从 Linux 中访问或 挂载 虚拟磁盘镜像。你可以在 Fedora 上用这个命令安装 libguestfs-tools

代码语言:javascript
复制
$ yum install libguestfs-tools libguestfs

使用 guestmount 并不像从 GNOME 文件管理器中双击文件那么简单,但命令行的使用并不难。guestmount 的基本用法是:

代码语言:javascript
复制
$ 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 虚拟磁盘镜像:

代码语言:javascript
复制
$ mkdir /tmp/freedos$ guestmount -a freedos.img -m /dev/sda1 /tmp/freedos

之后,我可以通过 /tmp/freedos 目录访问我的 FreeDOS 文件,使用 Linux 上的普通工具。我可以在命令行中使用 ls /tmp/freedos,或者使用桌面文件管理器打开 /tmp/freedos 挂载点。

代码语言:javascript
复制
$ ls -l /tmp/freedostotal 216drwxr-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.SYSdrwxr-xr-x. 5 root root 8192 May 15 16:52 DEVELdrwxr-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.SYSdrwxr-xr-x. 10 root root 8192 May 10 15:49 FDOS-rwxr-xr-x. 1 root root 46685 Apr 30 07:54 KERNEL.SYSdrwxr-xr-x. 2 root root 8192 May 10 15:57 SRC-rwxr-xr-x. 1 root root 3190 May 16 08:34 SRC.ZIPdrwxr-xr-x. 3 root root 8192 May 11 18:33 TEMP

使用 GNOME 文件管理器来访问虚拟磁盘

例如,要从我的 Linux projects 目录中复制几个 C 源文件到虚拟磁盘镜像上的 C:\SRC,以便我以后能在 FreeDOS 下使用这些文件,我可以使用 Linux cp 命令:

代码语言:javascript
复制
$ cp /home/jhall/projects/*.c /tmp/freedos/SRC

虚拟驱动器上的文件和目录在技术上是不分大小写的,所以你可以用大写或小写字母来引用它们。然而,我发现使用所有大写字母来输入 DOS 文件和目录更为自然。

代码语言:javascript
复制
$ ls /tmp/freedosAPPS     CONFIG.SYS EDLIN    FDCONFIG.SYS KERNEL.SYS SRC.ZIPCOMMAND.COM DEVEL    FDAUTO.BAT FDOS     SRC     TEMP$ ls /tmp/freedos/EDLINEDLIN.EXE MAKEFILE.OW$ ls /tmp/freedos/edlinEDLIN.EXE MAKEFILE.OW

用 guestmount 卸载

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 用 guestmount 访问镜像
  • 用 guestmount 卸载
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档