Копирование файлов между 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
.