Поиск по сайту:

Копирование файлов между Linux и FreeDOS


Вот как я передаю файлы между моей виртуальной машиной FreeDOS и настольной системой Linux.

Я использую Linux в качестве основной операционной системы и загружаю FreeDOS на виртуальной машине. Большую часть времени я использую QEMU в качестве эмулятора ПК, но иногда я провожу другие эксперименты с GNOME Boxes (который использует QEMU в качестве серверной виртуальной машины) или с VirtualBox.

Мне нравится играть в классические игры для DOS, и иногда я запускаю любимое приложение для DOS. Я веду курс по информационным системам управления (MIS), где рассказываю об истории вычислений, и иногда записываю демонстрацию использования FreeDOS и устаревшего приложения DOS, такого как As-Easy-As (моя любимая электронная таблица DOS, когда-то выпущенная). как «условно-бесплатное программное обеспечение», но теперь оно доступно бесплатно на сайте TRIUS, Inc).

Но использование FreeDOS таким образом означает, что мне нужно передавать файлы между моей виртуальной машиной FreeDOS и моей настольной системой Linux. Позвольте мне показать вам, как я это делаю.

Доступ к образу с помощью Guestmount

Раньше я получал доступ к образу своего виртуального диска, вычисляя смещение до первого раздела DOS, а затем вызывая команду Linux mount с правильным сочетанием параметров, соответствующих этому смещению. Это всегда было подвержено ошибкам и не очень гибко. К счастью, есть более простой способ сделать это. Программа guestmount из пакета libguestfs-tools позволяет вам получить доступ к образу виртуального диска или монтировать из Linux. Вы можете установить libguestfs-tools с помощью этой команды в Fedora:

$ yum install libguestfs-tools libguestfs

Использовать guestmount не так просто, как двойной щелчок по файлу в файловом менеджере GNOME, но использовать командную строку не так уж и сложно. Основное использование guestmount следующее:

$ guestmount -a image -m device mountpoint

В этом случае image – это образ виртуального диска, который нужно использовать. В моей системе я создал образ виртуального диска QEMU с помощью команды qemu-img . Программа guestmount может читать этот формат образа диска, а также формат образа QCOW2, используемый GNOME Boxes, или формат образа VDI, используемый в VirtualBox.

Параметр устройство указывает раздел на виртуальном диске. Представьте себе, что вы используете этот виртуальный диск как настоящий жесткий диск. Вы получите доступ к первому разделу как /dev/sda1, ко второму разделу как /dev/sda2 и т. д. Это синтаксис guestmount. По умолчанию FreeDOS 1.3 RC4 создает один раздел на пустом диске, поэтому доступ к этому разделу осуществляется как /dev/sda1.

А точка монтирования  — это место для «монтирования» файловой системы DOS в вашей локальной системе Linux. Обычно я создаю временный каталог для работы. Точка монтирования вам понадобится только при доступе к виртуальному диску.

Объединив все это, я использую этот набор команд для доступа к моему образу виртуального диска FreeDOS из Linux:

$ mkdir /tmp/freedos
$ guestmount -a freedos.img -m /dev/sda1 /tmp/freedos

После этого я смогу получить доступ к своим файлам FreeDOS через каталог /tmp/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 для доступа к виртуальному диску

(Джим Холл, CC-BY SA 4.0 )

Например, чтобы скопировать несколько исходных файлов C из моего каталога Linux projects в 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 .

Статьи по данной тематике: