ISO on USB has duplicate partition entry

Hi, I know this has been discussed but i’m not able to find the thread here. What is the explanation again? Is that an artifact of the iso9660 filesystem? -When you write the .iso to a flash drive, it has two ‘Qubes…’ partitions with the exact same name. And an EFI partition.

thanks!

Could you provide the way you write an .iso to the drive as well as screenshots of commands/GUI tools showing your situation?

Sure, using Linux

> dd if=Qubes-R4.2.4-x86_64.iso bs=10M conv=fsync status=progress of=/dev/sdi

> lsblk -f /dev/sdi
NAME   FSTYPE  FSVER            LABEL               UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
sdi    iso9660 Joliet Extension QUBES-R4-2-4-X86-64 2025-02-17-04-55-08-00                              
├─sdi1 iso9660 Joliet Extension QUBES-R4-2-4-X86-64 2025-02-17-04-55-08-00                              
├─sdi2 vfat    FAT12            ANACONDA            1296-E980                                           
└─sdi3 iso9660 Joliet Extension QUBES-R4-2-4-X86-64

> fdisk -l /dev/sdi
GPT PMBR size mismatch (14191415 != 30031871) will be corrected by write.
The backup GPT table is not on the end of the device.
Disk /dev/sdi: 14.32 GiB, 15376318464 bytes, 30031872 sectors
Disk model: Ultra           
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 0C1004A4-4BBD-44DA-9BC4-BC40BA548C12

Device        Start      End  Sectors  Size Type
/dev/sdi1        64 14180923 14180860  6.8G Microsoft basic data
/dev/sdi2  14180924 14190751     9828  4.8M EFI System
/dev/sdi3  14190752 14191351      600  300K Microsoft basic data

When you insert the USB you see two hard drives to mount. Only the first works.

IIUC the 300 KiB partition containing only zero bytes is padding automatically created by xorrisofs to accommodate optical disk writers in track-at-once mode somehow. It actually has the GPT partition label Gap1, I don’t know why lsblk doesn’t show it properly.

$ sudo losetup --find --show --read-only --partscan Qubes-R4.2.4-x86_64.iso
/dev/loop0

$ readlink -f /dev/disk/by-partlabel/Gap1
/dev/loop0p3

$ sudo hexdump -C /dev/disk/by-partlabel/Gap1
00000000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
0004b000
1 Like

Ok thanks. Apparently KDE Plasma’s disk notifier GUI uses the same mechanism as lsblk. But fdisk --list-details shows it correctly.

fdisk --list-details /dev/sdi
GPT PMBR size mismatch (14191415 != 120176639) will be corrected by write.
The backup GPT table is not on the end of the device.
Disk /dev/sdi: 57.3 GiB, 61530439680 bytes, 120176640 sectors
Disk model: USB Flash Drive 
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 0C1004A4-4BBD-44DA-9BC4-BC40BA548C12
First usable LBA: 64
Last usable LBA: 14191352
Alternative LBA: 14191415
Partition entries starting LBA: 2
Allocated partition entries: 248
Partition entries ending LBA: 63

Device        Start      End  Sectors Type-UUID                            UUID                                 Name      Attrs
/dev/sdi1        64 14180923 14180860 EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 0C1004A4-4BBD-44DA-9BC5-BC40BA548C12 ISO9660   RequiredPartition LegacyBIOSBootable GUID:60
/dev/sdi2  14180924 14190751     9828 C12A7328-F81F-11D2-BA4B-00A0C93EC93B 0C1004A4-4BBD-44DA-9BC6-BC40BA548C12 Appended2 
/dev/sdi3  14190752 14191351      600 EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 0C1004A4-4BBD-44DA-9BC7-BC40BA548C12 Gap1      RequiredPartition GUID:60