====== msxtar ======
Консольная программа для работы с образами дисков [[msx:msx|]]. Copyright (C) 2004 David Heremans
Для работы с сжатыми образами программа использует gzip и bzip2
Такие образы используются в:
* [[openmsx:openmsx|]]
* [[webmsx:webmsx|]]
* [[gotekemulator:flashfloppy|]]
Поддерживаются форматы:
* single-sided
* double-sized
* образы дисков IDE (только FAT12)
[[github>openMSX/msxtar|msxtar]]
{{msxtar-master.zip|Архив репозитория}}
{{msxtar.tgz|Готовый файл программы под x86-64}}
====== Установка ======
Компиляция и установка:
#!/bin/bash
sudo make
sudo cp msxtar /usr/local/bin
sudo chmod a+xr-w /usr/local/bin/msxtar
====== Параметры командной строки ======
msxtar [ПАПАМЕТР(Ы)]… [ФАЙЛ(Ы)]…
Примеры:
* Создать образ диска, взяв файлы/папки из ''foo'' и ''bar''msxtar -cf disk.dsk foo bar
* Получить подробный список всех файлов ''disk.dsk'' msxtar -tvf disk.dsk
* Извлечь все файлы из ''disk.dsk'' msxtar -xf disk.dsk
Основной режим работы:
|<100% 30% 70%>|
|''-t, --list''|получить список файлов образа диска|
|''-x, --extract, --get''|извлечь все файлы из образа диска|
|''-c, --create''|создать новый образ диска|
|''-r, --append''|добавлять файлы в конец образа диска|
|''-u, --update''|добавлять только файлы новее, чем те которые есть в образе диска|
|''-A, --catenate, --concatenate''|добавить файлы в образ диска|
Обработка атрибутов файла:
|<100% 30% 70%>|
|''--owner=ИМЯ''|принудительно использовать ''ИМЯ'' в качестве владельца для добавляемых файлов|
|''--group=ИМЯ''|принудительно использовать ''ИМЯ'' как группу для добавляемых файлов|
|''--mode=CHANGES''|принудительный (символьный) режим ''CHANGES'' для добавленных файлов|
|''-k, --keep''|сохранить существующие файлы, не перезаписывать их|
|''-m, --modification-time''|не извлекать время изменения файла|
Параметры образов:
|<100% 30% 70%>|
|''-f, --file=ФАЙЛ''|использовать ''ФАЙЛ'' как имя файла образа или как имя устройства, по умолчанию имя файла: ''msxdiskimage.dsk''|
|''-S, --size=РАЗМЕР''| ''РАЗМЕР'' может быть задан в виде ''nnnn[S|B|K|M]'' \\ также предопределены следующие значения:
* ''single'' — 360 КБайт
* ''double'' — 720 КБайт
* ''ide'' — 32 МБайт
|
|''-1, --dos1''|использовать загрузочный сектор [[msx:dos:|]], нет поддержки папок|
|''-2, --dos2''|использовать загрузочный сектор [[msx:dos2:|]], можно использовать папки|
|''-M, --msxdir=ИМЯ_ПАПКИ_В_ОБРАЗЕ''|использовать для новых файлов выбранную папку в образе|
|''-P, --partition=РАЗДЕЛ''|использовать выбранный ''РАЗДЕЛ'' при работе, можно задать значение ''all'' для обработки всех разделов|
Вывод информации:
|<100% 30% 70%>|
|''--help''|вывести справочную информацию и завершить программу|
|''--version''|вывести версию программы и завершить программу|
|''-v, --verbose''|выводить подробную информацию о обработанных файлах|
====== Примеры ======
Варианты работы:
* [[#simple_diskimages|Простые образы дискет]]
* [[#diskimages_and_subdirs|Образы дискет с папками]]
* [[#ide-hd_images|Образы дисков IDE]]
Для лучшего понимания прочтите описание в начале каждого примера.
{{anchor:simple_diskimages}}
===== Простые образы дискет =====
Чтобы указать имя файла образа диска используйте параметр ''-f'', иначе будет использоваться имя по умолчанию: ''msxdiskimage.dsk''
Получить список файлов образа диска:
msxtar -tf <ИМЯ_ФАЙЛА_ОБРАЗА>
Извлечь все файлы из образа диска (в текущую папку):
msxtar -xf <ИМЯ_ФАЙЛА_ОБРАЗА>
Создать образ диска:
msxtar -cvf <ИМЯ_ФАЙЛА_ОБРАЗА> <СПИСОК_ФАЙЛОВ ИЛИ ПАПКА_С_ФАЙЛАМИ>
Создать образ диска с указанием его размера (''single'' или ''double''):
msxtar -cvf <ИМЯ_ФАЙЛА_ОБРАЗА> --size=<РАЗМЕР> <СПИСОК_ФАЙЛОВ ИЛИ ПАПКА_С_ФАЙЛАМИ>
Добавление файлов (будут добавлены только те файлы, которых еще нет в образе):
msxtar -Avf <ИМЯ_ФАЙЛА_ОБРАЗА> <СПИСОК_ФАЙЛОВ ИЛИ ПАПКА_С_ФАЙЛАМИ>
Обновление файлов (существующие файлы будут заменены новыми, отсутствующие файлы будут добавлены):
msxtar -uvf <ИМЯ_ФАЙЛА_ОБРАЗА> <СПИСОК_ФАЙЛОВ ИЛИ ПАПКА_С_ФАЙЛАМИ>
{{anchor:diskimages_and_subdirs}}
===== Образы дискет с папками =====
По умолчанию программа работает с корнем диска.
Для отключения режима работы с папкам нужно использовать параметр ''--dos1''
\\ Если вы это сделаете, будет создан новый образ диска, загрузочный сектор также будет содержать загрузочный блок [[msx:dos:|]]!
Чтобы обновить файлы с папке нужно указать её имя на ПК и в образе, для этого нужно использовать параметр ''--msxdir''
msxtar -uvf <ИМЯ_ФАЙЛА_ОБРАЗА> --msxdir=<ИМЯ_ПАПКИ_В_ОБРАЗЕ> <ИМЯ_ПАПКИ_НА_ПК>
Чтобы извлечь только определенную папку из образа нужно использовать следующую команду:
msxtar -xvf <ИМЯ_ФАЙЛА_ОБРАЗА> --msxdir=<ИМЯ_ПАПКИ_В_ОБРАЗЕ>
{{anchor:ide-hd_images}}
===== Образы дисков IDE =====
Программа может управлять файлами образов дисков IDE, предназначенном для MSX-IDE-bios (авторы H.Gilvad и Jon Deschrijder). Эти образы отличаются сигнатурой, записанной программой ''IDEFDISK'' в первом секторе образа диска.
Создание/изменение файл–образов дисков IDE, а также добавление/удаление разделов на них не поддерживается текущей версией msxtar. Для такого рода операций используйте программу ''IDEFDISK.COM'' в эмуляторах MSX. Для получения дополнительной информации смотрите документацию по [[openmsx:openmsx|]] и файл ''IDEFDISK.TXT''
Для того чтобы извлечь все файлы из файла образа диска (каждый раздел будет извлечен в отдельную папку):
msxtar -xvf <ИМЯ_ФАЙЛА_ОБРАЗА> --partition=all <ИМЯ_ПАПКИ_НА_ПК>
Для добавления/обновления файлов/папок в существующие определённом разделе, для его указания нужно использовать параметр ''--partition''
\\ Примечание: параметр ''--partition=all'' работает только при выводе списка и извлечении файлов/папок. Также в этом случае игнорируется параметр ''--msxdir''
====== Ссылки ======
[[msxorg>forum/msx-talk/development/finally-found-a-command-line-disk-image-tool?page=1|Finally found a command line disk image tool. ]]
{{tag>MSX disk_image on_github}}