Cannot read MDS image that's not in the local directory #488

Open
opened 2026-01-29 15:20:18 +00:00 by claunia · 0 comments
Owner

Originally created by @darkstar on GitHub (Sep 27, 2020).

Prerequisites

  • Are you running the latest version?
  • Can you reproduce the problem in the debug version?

Check and fill as appropriate:

  • I was running Aaru under Windows 7...
  • ...in 64-bit

Description

When specifying an MDS image that resides in a different path, the corresponding MDF file is only searched in the current directory, not in the directory where the MDS file is

Exact command line used:

aaru filesystem ls "d:\Downloads\some image file.mds"

Expected behavior:

a listing of the files in the image

Actual behavior:

Image format identified by Alcohol 120% Media Descriptor Structure.
Unable to open image format
Error: Cannot open data file

Obviously, it works correctly if I cd to the corresponding directory first

Output of command execution with debug output enabled

k:\>aaru -d filesystem ls "d:\Downloads\some image file.mds"
aaru 5.1.99.3216+b3c57807 built by APPVEYOR-VM in Debug
Copyright © 2011-2020 Natalia Portillo

DEBUG (Ls command): --debug=True
DEBUG (Ls command): --encoding=
DEBUG (Ls command): --input=d:\Downloads\some image file.mds
DEBUG (Ls command): --options=
DEBUG (Ls command): --verbose=False
DEBUG (Ls command): Parsed options:
DEBUG (Format detection): Trying plugin Aaru Format
DEBUG (Format detection): Trying plugin ACT Apricot Disk Image
DEBUG (Format detection): Trying plugin Alcohol 120% Media Descriptor Structure
Image format identified by Alcohol 120% Media Descriptor Structure.
DEBUG (Alcohol 120% plugin): header.signature = MEDIA DESCRIPTOR
DEBUG (Alcohol 120% plugin): header.version = 1.5
DEBUG (Alcohol 120% plugin): header.type = CD
DEBUG (Alcohol 120% plugin): header.sessions = 1
DEBUG (Alcohol 120% plugin): header.unknown1[0] = 0x0002
DEBUG (Alcohol 120% plugin): header.unknown1[1] = 0x0000
DEBUG (Alcohol 120% plugin): header.bcaLength = 0
DEBUG (Alcohol 120% plugin): header.unknown2[0] = 0x00000000
DEBUG (Alcohol 120% plugin): header.unknown2[1] = 0x00000000
DEBUG (Alcohol 120% plugin): header.bcaOffset = 0
DEBUG (Alcohol 120% plugin): header.unknown3[0] = 0x00000000
DEBUG (Alcohol 120% plugin): header.unknown3[1] = 0x00000000
DEBUG (Alcohol 120% plugin): header.unknown3[2] = 0x00000000
DEBUG (Alcohol 120% plugin): header.unknown3[3] = 0x00000000
DEBUG (Alcohol 120% plugin): header.unknown3[4] = 0x00000000
DEBUG (Alcohol 120% plugin): header.unknown3[5] = 0x00000000
DEBUG (Alcohol 120% plugin): header.structuresOffset = 0
DEBUG (Alcohol 120% plugin): header.unknown4[0] = 0x00000000
DEBUG (Alcohol 120% plugin): header.unknown4[1] = 0x00000000
DEBUG (Alcohol 120% plugin): header.unknown4[2] = 0x00000000
DEBUG (Alcohol 120% plugin): header.sessionOffset = 96
DEBUG (Alcohol 120% plugin): header.dpmOffset = 0
DEBUG (Alcohol 120% plugin): session[0].sessionStart = -150
DEBUG (Alcohol 120% plugin): session[0].sessionEnd = 255384
DEBUG (Alcohol 120% plugin): session[0].sessionSequence = 1
DEBUG (Alcohol 120% plugin): session[0].allBlocks = 4
DEBUG (Alcohol 120% plugin): session[0].nonTrackBlocks = 3
DEBUG (Alcohol 120% plugin): session[0].firstTrack = 1
DEBUG (Alcohol 120% plugin): session[0].lastTrack = 1
DEBUG (Alcohol 120% plugin): session[0].unknown = 0x00000000
DEBUG (Alcohol 120% plugin): session[0].trackOffset = 120
DEBUG (Alcohol 120% plugin): session[1].track[160].mode = NoData
DEBUG (Alcohol 120% plugin): session[1].track[160].subMode = None
DEBUG (Alcohol 120% plugin): session[1].track[160].adrCtl = 20
DEBUG (Alcohol 120% plugin): session[1].track[160].tno = 0
DEBUG (Alcohol 120% plugin): session[1].track[160].point = A0
DEBUG (Alcohol 120% plugin): session[1].track[160].min = 0
DEBUG (Alcohol 120% plugin): session[1].track[160].sec = 0
DEBUG (Alcohol 120% plugin): session[1].track[160].frame = 0
DEBUG (Alcohol 120% plugin): session[1].track[160].zero = 0
DEBUG (Alcohol 120% plugin): session[1].track[160].pmin = 1
DEBUG (Alcohol 120% plugin): session[1].track[160].psec = 0
DEBUG (Alcohol 120% plugin): session[1].track[160].pframe = 0
DEBUG (Alcohol 120% plugin): session[1].track[160].extraOffset = 0
DEBUG (Alcohol 120% plugin): session[1].track[160].sectorSize = 0
DEBUG (Alcohol 120% plugin): session[1].track[160].startLba = 0
DEBUG (Alcohol 120% plugin): session[1].track[160].startOffset = 0
DEBUG (Alcohol 120% plugin): session[1].track[160].files = 0
DEBUG (Alcohol 120% plugin): session[1].track[160].footerOffset = 0
DEBUG (Alcohol 120% plugin): session[1].track[161].mode = NoData
DEBUG (Alcohol 120% plugin): session[1].track[161].subMode = None
DEBUG (Alcohol 120% plugin): session[1].track[161].adrCtl = 20
DEBUG (Alcohol 120% plugin): session[1].track[161].tno = 0
DEBUG (Alcohol 120% plugin): session[1].track[161].point = A1
DEBUG (Alcohol 120% plugin): session[1].track[161].min = 0
DEBUG (Alcohol 120% plugin): session[1].track[161].sec = 0
DEBUG (Alcohol 120% plugin): session[1].track[161].frame = 0
DEBUG (Alcohol 120% plugin): session[1].track[161].zero = 0
DEBUG (Alcohol 120% plugin): session[1].track[161].pmin = 1
DEBUG (Alcohol 120% plugin): session[1].track[161].psec = 0
DEBUG (Alcohol 120% plugin): session[1].track[161].pframe = 0
DEBUG (Alcohol 120% plugin): session[1].track[161].extraOffset = 0
DEBUG (Alcohol 120% plugin): session[1].track[161].sectorSize = 0
DEBUG (Alcohol 120% plugin): session[1].track[161].startLba = 0
DEBUG (Alcohol 120% plugin): session[1].track[161].startOffset = 0
DEBUG (Alcohol 120% plugin): session[1].track[161].files = 0
DEBUG (Alcohol 120% plugin): session[1].track[161].footerOffset = 0
DEBUG (Alcohol 120% plugin): session[1].track[162].mode = NoData
DEBUG (Alcohol 120% plugin): session[1].track[162].subMode = None
DEBUG (Alcohol 120% plugin): session[1].track[162].adrCtl = 20
DEBUG (Alcohol 120% plugin): session[1].track[162].tno = 0
DEBUG (Alcohol 120% plugin): session[1].track[162].point = A2
DEBUG (Alcohol 120% plugin): session[1].track[162].min = 0
DEBUG (Alcohol 120% plugin): session[1].track[162].sec = 0
DEBUG (Alcohol 120% plugin): session[1].track[162].frame = 0
DEBUG (Alcohol 120% plugin): session[1].track[162].zero = 0
DEBUG (Alcohol 120% plugin): session[1].track[162].pmin = 56
DEBUG (Alcohol 120% plugin): session[1].track[162].psec = 47
DEBUG (Alcohol 120% plugin): session[1].track[162].pframe = 9
DEBUG (Alcohol 120% plugin): session[1].track[162].extraOffset = 0
DEBUG (Alcohol 120% plugin): session[1].track[162].sectorSize = 0
DEBUG (Alcohol 120% plugin): session[1].track[162].startLba = 0
DEBUG (Alcohol 120% plugin): session[1].track[162].startOffset = 0
DEBUG (Alcohol 120% plugin): session[1].track[162].files = 0
DEBUG (Alcohol 120% plugin): session[1].track[162].footerOffset = 0
DEBUG (Alcohol 120% plugin): session[1].track[1].mode = Mode1
DEBUG (Alcohol 120% plugin): session[1].track[1].subMode = Interleaved
DEBUG (Alcohol 120% plugin): session[1].track[1].adrCtl = 20
DEBUG (Alcohol 120% plugin): session[1].track[1].tno = 0
DEBUG (Alcohol 120% plugin): session[1].track[1].point = 01
DEBUG (Alcohol 120% plugin): session[1].track[1].min = 0
DEBUG (Alcohol 120% plugin): session[1].track[1].sec = 0
DEBUG (Alcohol 120% plugin): session[1].track[1].frame = 0
DEBUG (Alcohol 120% plugin): session[1].track[1].zero = 0
DEBUG (Alcohol 120% plugin): session[1].track[1].pmin = 0
DEBUG (Alcohol 120% plugin): session[1].track[1].psec = 2
DEBUG (Alcohol 120% plugin): session[1].track[1].pframe = 0
DEBUG (Alcohol 120% plugin): session[1].track[1].extraOffset = 464
DEBUG (Alcohol 120% plugin): session[1].track[1].sectorSize = 2448
DEBUG (Alcohol 120% plugin): session[1].track[1].startLba = 0
DEBUG (Alcohol 120% plugin): session[1].track[1].startOffset = 0
DEBUG (Alcohol 120% plugin): session[1].track[1].files = 1
DEBUG (Alcohol 120% plugin): session[1].track[1].footerOffset = 472
DEBUG (Alcohol 120% plugin): track[1].extra.pregap = 150
DEBUG (Alcohol 120% plugin): track[1].extra.sectors = 255384
DEBUG (Alcohol 120% plugin): footer.filenameOffset = 488
DEBUG (Alcohol 120% plugin): footer.widechar = 1
DEBUG (Alcohol 120% plugin): footer.unknown1 = 0x00000000
DEBUG (Alcohol 120% plugin): footer.unknown2 = 0x00000000
DEBUG (Alcohol 120% plugin): footer.filename = *.mdf
DEBUG (Alcohol 120% plugin): ImageInfo.mediaType = CDROM
DEBUG (Alcohol 120% plugin): printing partition map
DEBUG (Alcohol 120% plugin): Partition sequence: 1
DEBUG (Alcohol 120% plugin):    Partition name:
DEBUG (Alcohol 120% plugin):    Partition description: Track 1.
DEBUG (Alcohol 120% plugin):    Partition type: Mode1
DEBUG (Alcohol 120% plugin):    Partition starting sector: 0
DEBUG (Alcohol 120% plugin):    Partition sectors: 255384
DEBUG (Alcohol 120% plugin):    Partition starting offset: 0
DEBUG (Alcohol 120% plugin):    Partition size in bytes: 600663168
DEBUG (Alcohol 120% plugin): Data filename: some image file.mdf
Unable to open image format
Error: Cannot open data file
Originally created by @darkstar on GitHub (Sep 27, 2020). ### Prerequisites * [x] Are you running the latest version? * [x] Can you reproduce the problem in the debug version? ### Check and fill as appropriate: * [x] I was running Aaru under Windows 7... * [x] ...in 64-bit ### Description When specifying an MDS image that resides in a different path, the corresponding MDF file is only searched in the current directory, not in the directory where the MDS file is ### Exact command line used: `aaru filesystem ls "d:\Downloads\some image file.mds"` ### Expected behavior: a listing of the files in the image ### Actual behavior: ``` Image format identified by Alcohol 120% Media Descriptor Structure. Unable to open image format Error: Cannot open data file ``` Obviously, it works correctly if I `cd` to the corresponding directory first ### Output of command execution with debug output enabled ``` k:\>aaru -d filesystem ls "d:\Downloads\some image file.mds" aaru 5.1.99.3216+b3c57807 built by APPVEYOR-VM in Debug Copyright © 2011-2020 Natalia Portillo DEBUG (Ls command): --debug=True DEBUG (Ls command): --encoding= DEBUG (Ls command): --input=d:\Downloads\some image file.mds DEBUG (Ls command): --options= DEBUG (Ls command): --verbose=False DEBUG (Ls command): Parsed options: DEBUG (Format detection): Trying plugin Aaru Format DEBUG (Format detection): Trying plugin ACT Apricot Disk Image DEBUG (Format detection): Trying plugin Alcohol 120% Media Descriptor Structure Image format identified by Alcohol 120% Media Descriptor Structure. DEBUG (Alcohol 120% plugin): header.signature = MEDIA DESCRIPTOR DEBUG (Alcohol 120% plugin): header.version = 1.5 DEBUG (Alcohol 120% plugin): header.type = CD DEBUG (Alcohol 120% plugin): header.sessions = 1 DEBUG (Alcohol 120% plugin): header.unknown1[0] = 0x0002 DEBUG (Alcohol 120% plugin): header.unknown1[1] = 0x0000 DEBUG (Alcohol 120% plugin): header.bcaLength = 0 DEBUG (Alcohol 120% plugin): header.unknown2[0] = 0x00000000 DEBUG (Alcohol 120% plugin): header.unknown2[1] = 0x00000000 DEBUG (Alcohol 120% plugin): header.bcaOffset = 0 DEBUG (Alcohol 120% plugin): header.unknown3[0] = 0x00000000 DEBUG (Alcohol 120% plugin): header.unknown3[1] = 0x00000000 DEBUG (Alcohol 120% plugin): header.unknown3[2] = 0x00000000 DEBUG (Alcohol 120% plugin): header.unknown3[3] = 0x00000000 DEBUG (Alcohol 120% plugin): header.unknown3[4] = 0x00000000 DEBUG (Alcohol 120% plugin): header.unknown3[5] = 0x00000000 DEBUG (Alcohol 120% plugin): header.structuresOffset = 0 DEBUG (Alcohol 120% plugin): header.unknown4[0] = 0x00000000 DEBUG (Alcohol 120% plugin): header.unknown4[1] = 0x00000000 DEBUG (Alcohol 120% plugin): header.unknown4[2] = 0x00000000 DEBUG (Alcohol 120% plugin): header.sessionOffset = 96 DEBUG (Alcohol 120% plugin): header.dpmOffset = 0 DEBUG (Alcohol 120% plugin): session[0].sessionStart = -150 DEBUG (Alcohol 120% plugin): session[0].sessionEnd = 255384 DEBUG (Alcohol 120% plugin): session[0].sessionSequence = 1 DEBUG (Alcohol 120% plugin): session[0].allBlocks = 4 DEBUG (Alcohol 120% plugin): session[0].nonTrackBlocks = 3 DEBUG (Alcohol 120% plugin): session[0].firstTrack = 1 DEBUG (Alcohol 120% plugin): session[0].lastTrack = 1 DEBUG (Alcohol 120% plugin): session[0].unknown = 0x00000000 DEBUG (Alcohol 120% plugin): session[0].trackOffset = 120 DEBUG (Alcohol 120% plugin): session[1].track[160].mode = NoData DEBUG (Alcohol 120% plugin): session[1].track[160].subMode = None DEBUG (Alcohol 120% plugin): session[1].track[160].adrCtl = 20 DEBUG (Alcohol 120% plugin): session[1].track[160].tno = 0 DEBUG (Alcohol 120% plugin): session[1].track[160].point = A0 DEBUG (Alcohol 120% plugin): session[1].track[160].min = 0 DEBUG (Alcohol 120% plugin): session[1].track[160].sec = 0 DEBUG (Alcohol 120% plugin): session[1].track[160].frame = 0 DEBUG (Alcohol 120% plugin): session[1].track[160].zero = 0 DEBUG (Alcohol 120% plugin): session[1].track[160].pmin = 1 DEBUG (Alcohol 120% plugin): session[1].track[160].psec = 0 DEBUG (Alcohol 120% plugin): session[1].track[160].pframe = 0 DEBUG (Alcohol 120% plugin): session[1].track[160].extraOffset = 0 DEBUG (Alcohol 120% plugin): session[1].track[160].sectorSize = 0 DEBUG (Alcohol 120% plugin): session[1].track[160].startLba = 0 DEBUG (Alcohol 120% plugin): session[1].track[160].startOffset = 0 DEBUG (Alcohol 120% plugin): session[1].track[160].files = 0 DEBUG (Alcohol 120% plugin): session[1].track[160].footerOffset = 0 DEBUG (Alcohol 120% plugin): session[1].track[161].mode = NoData DEBUG (Alcohol 120% plugin): session[1].track[161].subMode = None DEBUG (Alcohol 120% plugin): session[1].track[161].adrCtl = 20 DEBUG (Alcohol 120% plugin): session[1].track[161].tno = 0 DEBUG (Alcohol 120% plugin): session[1].track[161].point = A1 DEBUG (Alcohol 120% plugin): session[1].track[161].min = 0 DEBUG (Alcohol 120% plugin): session[1].track[161].sec = 0 DEBUG (Alcohol 120% plugin): session[1].track[161].frame = 0 DEBUG (Alcohol 120% plugin): session[1].track[161].zero = 0 DEBUG (Alcohol 120% plugin): session[1].track[161].pmin = 1 DEBUG (Alcohol 120% plugin): session[1].track[161].psec = 0 DEBUG (Alcohol 120% plugin): session[1].track[161].pframe = 0 DEBUG (Alcohol 120% plugin): session[1].track[161].extraOffset = 0 DEBUG (Alcohol 120% plugin): session[1].track[161].sectorSize = 0 DEBUG (Alcohol 120% plugin): session[1].track[161].startLba = 0 DEBUG (Alcohol 120% plugin): session[1].track[161].startOffset = 0 DEBUG (Alcohol 120% plugin): session[1].track[161].files = 0 DEBUG (Alcohol 120% plugin): session[1].track[161].footerOffset = 0 DEBUG (Alcohol 120% plugin): session[1].track[162].mode = NoData DEBUG (Alcohol 120% plugin): session[1].track[162].subMode = None DEBUG (Alcohol 120% plugin): session[1].track[162].adrCtl = 20 DEBUG (Alcohol 120% plugin): session[1].track[162].tno = 0 DEBUG (Alcohol 120% plugin): session[1].track[162].point = A2 DEBUG (Alcohol 120% plugin): session[1].track[162].min = 0 DEBUG (Alcohol 120% plugin): session[1].track[162].sec = 0 DEBUG (Alcohol 120% plugin): session[1].track[162].frame = 0 DEBUG (Alcohol 120% plugin): session[1].track[162].zero = 0 DEBUG (Alcohol 120% plugin): session[1].track[162].pmin = 56 DEBUG (Alcohol 120% plugin): session[1].track[162].psec = 47 DEBUG (Alcohol 120% plugin): session[1].track[162].pframe = 9 DEBUG (Alcohol 120% plugin): session[1].track[162].extraOffset = 0 DEBUG (Alcohol 120% plugin): session[1].track[162].sectorSize = 0 DEBUG (Alcohol 120% plugin): session[1].track[162].startLba = 0 DEBUG (Alcohol 120% plugin): session[1].track[162].startOffset = 0 DEBUG (Alcohol 120% plugin): session[1].track[162].files = 0 DEBUG (Alcohol 120% plugin): session[1].track[162].footerOffset = 0 DEBUG (Alcohol 120% plugin): session[1].track[1].mode = Mode1 DEBUG (Alcohol 120% plugin): session[1].track[1].subMode = Interleaved DEBUG (Alcohol 120% plugin): session[1].track[1].adrCtl = 20 DEBUG (Alcohol 120% plugin): session[1].track[1].tno = 0 DEBUG (Alcohol 120% plugin): session[1].track[1].point = 01 DEBUG (Alcohol 120% plugin): session[1].track[1].min = 0 DEBUG (Alcohol 120% plugin): session[1].track[1].sec = 0 DEBUG (Alcohol 120% plugin): session[1].track[1].frame = 0 DEBUG (Alcohol 120% plugin): session[1].track[1].zero = 0 DEBUG (Alcohol 120% plugin): session[1].track[1].pmin = 0 DEBUG (Alcohol 120% plugin): session[1].track[1].psec = 2 DEBUG (Alcohol 120% plugin): session[1].track[1].pframe = 0 DEBUG (Alcohol 120% plugin): session[1].track[1].extraOffset = 464 DEBUG (Alcohol 120% plugin): session[1].track[1].sectorSize = 2448 DEBUG (Alcohol 120% plugin): session[1].track[1].startLba = 0 DEBUG (Alcohol 120% plugin): session[1].track[1].startOffset = 0 DEBUG (Alcohol 120% plugin): session[1].track[1].files = 1 DEBUG (Alcohol 120% plugin): session[1].track[1].footerOffset = 472 DEBUG (Alcohol 120% plugin): track[1].extra.pregap = 150 DEBUG (Alcohol 120% plugin): track[1].extra.sectors = 255384 DEBUG (Alcohol 120% plugin): footer.filenameOffset = 488 DEBUG (Alcohol 120% plugin): footer.widechar = 1 DEBUG (Alcohol 120% plugin): footer.unknown1 = 0x00000000 DEBUG (Alcohol 120% plugin): footer.unknown2 = 0x00000000 DEBUG (Alcohol 120% plugin): footer.filename = *.mdf DEBUG (Alcohol 120% plugin): ImageInfo.mediaType = CDROM DEBUG (Alcohol 120% plugin): printing partition map DEBUG (Alcohol 120% plugin): Partition sequence: 1 DEBUG (Alcohol 120% plugin): Partition name: DEBUG (Alcohol 120% plugin): Partition description: Track 1. DEBUG (Alcohol 120% plugin): Partition type: Mode1 DEBUG (Alcohol 120% plugin): Partition starting sector: 0 DEBUG (Alcohol 120% plugin): Partition sectors: 255384 DEBUG (Alcohol 120% plugin): Partition starting offset: 0 DEBUG (Alcohol 120% plugin): Partition size in bytes: 600663168 DEBUG (Alcohol 120% plugin): Data filename: some image file.mdf Unable to open image format Error: Cannot open data file ```
claunia added the bug label 2026-01-29 15:20:18 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: aaru-dps/Aaru-aaru-dps#488