Мне удалось найти решение, которое сработало бы для меня, и я подумал, что подробно опишу здесь, на случай, если оно кому-нибудь поможет. Большое спасибо Mr.Wizard, Wierd_w и patrickvacek за их посты, которые предоставили важную информацию.
Моя установка включает в себя машину Arch Linux, на которой размещается VirtualBox, где будет работать виртуальная машина Windows 98. Я также использовал машину с Windows 10 для создания, а затем прочитал VHD в формате FAT32 (Windows 7, вероятно, достаточно). Сжатые диски, к которым я хотел получить доступ, были в виде старых дисков ZM 100M. Я купил USB-накопитель, который я установил на машине с Linux. Я уверен, что было бы возможно выполнить весь этот процесс на одной или другой платформе, адаптируясь соответствующим образом, но я так и сделал.
Я не использовал инструмент winimage, упомянутый Wierd_w, и не использовал scandisk / mount. Изначально я пришел к выводу точного сообщения об ошибке, упомянутого patrickvacek, и его ключ к drvspace.ini имеет решающее значение. Чтобы обойти это, нужно создать загрузочный виртуальный диск c :, содержащий содержимое загрузочного диска Win98, и создать файл drvspace.ini в c :. Затем виртуальный жесткий диск с содержимым дискового пространства будет автоматически подключен при запуске виртуальной машины.
Следующее - процесс, который работал для меня в болезненных деталях. Это зависит от моих настроек, но должно быть легко адаптируемым.
Создайте виртуальную машину Windows 98
скачать образ загрузочного диска Windows 98, я получил его здесь: http://www.allbootdisks.com/downloads/Disks/Windows_98_Boot_Disk_Download49/Diskette%20Images/Windows98_SE_No_Ramdrive.img
в VirtualBox создайте новую виртуальную машину для размещения Windows 98
- создайте новый виртуальный IDE-диск в качестве основного мастера, он станет загрузочным (например, win98.vdi)
- создать новый оптический привод в качестве вторичного мастера
- загрузить Windows 98 ISO в оптический привод
- убедитесь, что порядок загрузки включает в себя оптический привод до жесткого диска
- запустить ВМ, которая должна загрузиться с оптического привода
- fdisk для создания нового раздела для загрузочного диска c:
- (1) создать раздел DOS, (1) создать первичный раздел DOS, (Y) использовать максимальный размер, выйти из fdisk [ESC], [ESC], [ESC]
- перезагрузить ВМ
отформатировать загрузочный диск (/ S делает его загрузочным)
format c: /S /V:win98
скопируйте файлы с оптического привода Win98 на загрузочный диск C: (для меня оптический привод монтируется как r :)
xcopy r: c: /S /E /V
выключить виртуальную машину
- удалить Windows 98 ISO с оптического привода
запустить виртуальную машину, теперь она должна загружаться с жесткого диска
файл drvspace.ini необходим в c: \ для монтирования сжатых дисков дискового пространства из c: \
edit drvspace.ini
Добавьте следующую строку, сохраните и выйдите
ActivateDrive=E,D0
Для получения дополнительной информации см .: http://www.vfrazee.com/ms-dos/6.22/help/drvspace.htm
Для каждого сжатого диска
Хранилище виртуальных машин будет настроено так:
- IDE Pri Master: win98.vdi (загрузочный диск)
- IDE Pri Slave: enc_001.vdi (образ дискового пространства, скопированный с CD iso)
- IDE Sec Master: 001.iso (компакт-диск, содержащий образ сжатого zip-диска)
- IDE Sec Slave: unenc_001.vhd (назначение для несжатого zip-изображения)
Iso используется для переноса содержимого дискового пространства на enc_001.vdi. Диски vdi и vhd создаются для каждого диска, который необходимо расшифровать.
Zip Drive на машине с Linux
- подключите USB-накопитель
вставьте диск
найти устройство zip-накопителя (например, / dev / sdf4)
lsblk
крепление на молнии
sudo mount -o gid=users,fmask=113,dmask=002 /dev/sdf4 /media/guest
скопировать zip-содержимое (drvspace.000) в локальную папку
rsync -av /media/guest/ /media/bass/bu/zip_drive/012/zip_img
размонтировать zip-диск
sudo umount /media/guest
создать iso из локальной папки на zip-диске
genisoimage -V "001" -J -r -o 001.iso ./zip_img
На Windows машине создайте VHD для несжатых файлов
- открытая консоль управления дисками
- действие | создать VHD
- unenc_001.vhd, 300 МБ, формат VHD, фиксированный размер
- инициализировать диск, MBR
- создать новый простой том, формат FAT32
- отстранить VHD
- скопируйте unenc_001.vhd на машину linux
В VirtualBox настроить диски для ВМ
- создайте новый виртуальный жесткий диск для сжатого содержимого и установите его в качестве основного ведомого IDE: VDI, фиксированный размер 103,03 МБ, например с именем enc_001.vdi
- добавить VHD для незашифрованного содержимого, созданного выше (например, unenc_001.vhd), и установить в качестве вторичного подчиненного IDE
- загрузить ISO-образ сверху в виртуальный оптический привод (например, 001.iso)
Хранилище IDE теперь должно быть:
- IDE Pri Master: win98.vdi (загрузочный диск)
- IDE Pri Slave: enc_001.vdi (место для образа дискового пространства)
- IDE Sec Master: 001.iso (CD iso, содержащий образ диска, который нужно распаковать)
- IDE Sec Slave: unenc_001.vhd (назначение для несжатого zip-изображения)
запустить ВМ, а в ВМ:
- fdisk, включить большие блоки Y
- (5) диск Chage, (2) выберите диск 100M (enc_001.vdi)
- (1) создать раздел DOS, (1) создать первичный раздел DOS, (Y) использовать максимальный размер, выйти из fdisk (ESC), (ESC), (ESC)
следующий
- сбросить (перезапустить) ВМ
форматировать раздел enc_001.vdi
dir d: should give invalid media error (abort) format d: /V:enc_001, (Y) proceed dir d: should now show empty 100M drive
проверьте, что unenc_001.vhd смонтирован
dir e: should show empty 300M drive
проверьте, что iso образ смонтирован:
dir r: should show drvspace.000 and readthis.txt files
скопировать zip-образ с CD iso
xcopy r: d: /S /E /V
сбросить ВМ
в виртуальной машине, дисковод должен быть подключен и доступен
dir d: should show zip drive contents (!) dir e: should show empty 300M drive dir f: is the compressed drivespace drive, but shows only readthis.txt
копировать несжатый zip-контент в unenc_001 VHD
xcopy d: e: /S /E /V
выключение ВМ
- скопируйте unenc_001.vhd на компьютер с Windows
На машине Windows
Обратите внимание, что для меня длинные имена файлов Windows не сохранились, они отображаются как 8.3 имен, таких как longna ~ 1.txt. Я не преследовал вопрос, доступны ли длинные имена каким-либо образом. Если кто-нибудь знает, мне было бы интересно услышать.
В любом случае, как говорит Wierd_w, решение было очень простым. Теперь, чтобы просмотреть мои 15-летние файлы.