Summary: | Mounting an ISO with multiple partitions always mounts the wrong partition | ||
---|---|---|---|
Product: | [Applications] dolphin | Reporter: | Oded Arbel <oded> |
Component: | plugins: ISO mounting | Assignee: | Kwon-Young Choi <kwon-young.choi> |
Status: | RESOLVED UPSTREAM | ||
Severity: | normal | CC: | kfm-devel |
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | Other | ||
OS: | Linux | ||
URL: | https://github.com/storaged-project/udisks/issues/725 | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: |
Description
Oded Arbel
2020-08-13 18:33:52 UTC
Hello, First of all, the mountiso is just a frontend to `udisksctl` which means that if the iso is not mounted correctly, it is probably because of `udisksctl`. On my machine, I tried to create an HFS/Joliet iso image using `mkisofs`: ``` $ mkisofs -o test.iso -R -J -hfs test ``` where the `test` directory contains a single file. But I was not able to mount this iso using `udisksctl` (but `fuseiso` and `mount` worked). So I have the following questions: * Can you mount your iso file using only `udisksctl` commands? (you can use `udisksctl loop-setup -f image.iso` to create a loop device and `udisksctl mount --block-device /dev/loop1` to mount the loop device) * Could you provide an iso file with which I could reproduce your results? You can mail it to me directly at my email address if you want (kwon-young.choi@hotmail.fr) (In reply to Kwon-Young Choi from comment #1) > First of all, the mountiso is just a frontend to `udisksctl` which means > that if the iso is not mounted correctly, it is probably because of > `udisksctl`. The issue is not with the "mount iso" feature - sorry about the confusion, specifically about the component chosen, I just don't know which other component to choose. The issue is what happens after "mount iso" completes its work - i.e. when clicking the newly attached device. As mentioned in the report - the same behavior is observed with other methods of "mounting an iso". > On my machine, I tried to create an HFS/Joliet iso image using `mkisofs`: ... > But I was not able to mount this iso using `udisksctl` (but `fuseiso` and > `mount` worked). I have the same issue as well - I have yet to manage to use mkisofs to create an ISO that `udisksctl` and/or Dolphin can successfully mount - i.e. make it appear in the "Devices" list in Dolphin, even though `solid-hardware5 list` does show a device (though it doesn't look correct in some ways, compared to a commercial ISO). I can mount the ISO manually using mount or fuseiso after using udisksctl (or Dolphin) but it is not the same behavior and even if I make a hybrid HFS ISO, mounting manually always goes for the Joliet/RockRdige file system. None the less, the problem I reported reproduces 100% with commercial ISOs that I have. > * Can you mount your iso file using only `udisksctl` commands? Yes, but only the second partition: after `loop-setup`, I have /dev/loop24, /dev/loop24p1 and /dev/loop24p2. with `sudo mount` I can mount either /dev/loop24 (Joliet/ISO9660 file system) or /dev/loop24p2 (HFS filesystem). I'm not sure what /dev/loop24p1 is - maybe the isolyzer or solid-hardware output from above has some clues. When using `udisksctl mount`, only /dev/loop24p2 successfully mounts. So I have a feeling this is indeed not a Dolphin problem but a udisks2 problem. > * Could you provide an iso file with which I could reproduce your results? > You can mail it to me directly at my email address if you want > (kwon-young.choi@hotmail.fr) It is commercial software, so I'm not sure that is a good idea, and it is also very large. I'll email you privately and we can discuss there. (In reply to Oded Arbel from comment #2) > > > * Can you mount your iso file using only `udisksctl` commands? > > Yes, but only the second partition: after `loop-setup`, I have /dev/loop24, > /dev/loop24p1 and /dev/loop24p2. with `sudo mount` I can mount either > /dev/loop24 (Joliet/ISO9660 file system) or /dev/loop24p2 (HFS filesystem). > I'm not sure what /dev/loop24p1 is - maybe the isolyzer or solid-hardware > output from above has some clues. When using `udisksctl mount`, only > /dev/loop24p2 successfully mounts. So I have a feeling this is indeed not a > Dolphin problem but a udisks2 problem. Could you share the output of the following commands: ``` $ udisksctl info --block-device /dev/loop24 $ udisksctl info --block-device /dev/loop24p1 $ udisksctl info --block-device /dev/loop24p2 ``` `udisksctl` has often more detailed informations than `solid-hardware`. From what I understand of `udisksctl`, /dev/loop24 represent the partition table of the image and each additional loop device loop24p1, loop24p2 represent an different partition. I found this issue at the udisks project page: https://github.com/storaged-project/udisks/issues/725 but I am not sure if it is the exact same problem. For now, I think it is fair to say that this is a problem coming from udisks and maybe you could add a comment on that udisks issue thread. > > * Could you provide an iso file with which I could reproduce your results? > > You can mail it to me directly at my email address if you want > > (kwon-young.choi@hotmail.fr) > > It is commercial software, so I'm not sure that is a good idea, and it is > also very large. I'll email you privately and we can discuss there. Since I'm a new contributor and you do not know me, I 100% understand that. Moreover, I might not be the best person to help you since I don't know a lot about this stuff. I guess the other solution would be to switch to from udisks to another tool like fuseiso, but that would be a enormous amount of work. (In reply to Kwon-Young Choi from comment #3) > Could you share the output of the following commands: $ udisksctl loop-setup -r -f 'XXXXXXXX.iso' Mapped file XXXXXXXX.iso as /dev/loop36. $ udisksctl info --block-device /dev/loop36 /org/freedesktop/UDisks2/block_devices/loop36: org.freedesktop.UDisks2.Block: Configuration: [] CryptoBackingDevice: '/' Device: /dev/loop36 DeviceNumber: 1828 Drive: '/' HintAuto: false HintIconName: HintIgnore: false HintName: HintPartitionable: true HintSymbolicIconName: HintSystem: true Id: IdLabel: INSTALL IdType: iso9660 IdUUID: 2004-08-12-14-36-55-00 IdUsage: filesystem IdVersion: Joliet Extension MDRaid: '/' MDRaidMember: '/' PreferredDevice: /dev/loop36 ReadOnly: true Size: 654561280 Symlinks: /dev/disk/by-label/INSTALL /dev/disk/by-uuid/2004-08-12-14-36-55-00 UserspaceMountOptions: org.freedesktop.UDisks2.Loop: Autoclear: false BackingFile: /home/odeda/XXXXXXXX/XXXXXXXX.iso SetupByUID: 1000 org.freedesktop.UDisks2.PartitionTable: Partitions: ['/org/freedesktop/UDisks2/block_devices/loop36p1', '/org/freedesktop/UDisks2/block_devices/loop36p2'] Type: mac $ udisksctl info --block-device /dev/loop36p1 /org/freedesktop/UDisks2/block_devices/loop36p1: org.freedesktop.UDisks2.Block: Configuration: [] CryptoBackingDevice: '/' Device: /dev/loop36p1 DeviceNumber: 66313 Drive: '/' HintAuto: false HintIconName: HintIgnore: false HintName: HintPartitionable: true HintSymbolicIconName: HintSystem: true Id: IdLabel: IdType: IdUUID: IdUsage: IdVersion: MDRaid: '/' MDRaidMember: '/' PreferredDevice: /dev/loop36p1 ReadOnly: true Size: 1024 Symlinks: UserspaceMountOptions: org.freedesktop.UDisks2.Partition: Flags: 0 IsContained: false IsContainer: false Name: MRKS Number: 1 Offset: 512 Size: 1024 Table: '/org/freedesktop/UDisks2/block_devices/loop36' Type: Apple_partition_map UUID: $ udisksctl info --block-device /dev/loop36p2 /org/freedesktop/UDisks2/block_devices/loop36p2: org.freedesktop.UDisks2.Block: Configuration: [] CryptoBackingDevice: '/' Device: /dev/loop36p2 DeviceNumber: 66314 Drive: '/' HintAuto: false HintIconName: HintIgnore: false HintName: HintPartitionable: true HintSymbolicIconName: HintSystem: true Id: IdLabel: XXXXXXXX Install IdType: hfs IdUUID: dbd5a3ea-5614-384e-8d15-045117946523 IdUsage: filesystem IdVersion: MDRaid: '/' MDRaidMember: '/' PreferredDevice: /dev/loop36p2 ReadOnly: true Size: 628582400 Symlinks: /dev/disk/by-label/XXXXXXXX\x20Install /dev/disk/by-uuid/dbd5a3ea-5614-384e-8d15-045117946523 UserspaceMountOptions: org.freedesktop.UDisks2.Filesystem: MountPoints: Size: 0 org.freedesktop.UDisks2.Partition: Flags: 0 IsContained: false IsContainer: false Name: Toast 5.2 HFS Optimizer Number: 2 Offset: 25977856 Size: 628582400 Table: '/org/freedesktop/UDisks2/block_devices/loop36' Type: Apple_HFS UUID: > I found this issue at the udisks project page: > https://github.com/storaged-project/udisks/issues/725 but I am not sure if > it is the exact same problem. I will review. Thank you. > I guess the other solution would be to switch to from udisks to another tool > like fuseiso, but that would be a enormous amount of work. yea, that does not seem very feasible. IMO fixing udisks is the way to go. If the above linked issue is not relevant, I'll open a new ticket there. Do you think this bug report should be closed? or would you rather have it open and blocking on a possible update from udisks? Thanks for your additional input. For now, I'll mark this bug as resolved and add a link to the udisks issue. If you happen to open a new issue, let me know so that I can update the url. |