Tengo una imagen de disco cruda creada por gddrescue . Estoy fallando en montarlo ya que es una estructura de partición compleja.
Probé primero con losetup
Opción portscan.
# losetup -Pf --show -v silvio-extern.iso
/dev/loop0
# fdisk -lu /dev/loop0
Disk /dev/loop0: 298,1 GiB, 320072933376 bytes, 625142448 sectors
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: dos
Disk identifier: 0x88c8fbd4
Device Boot Start End Sectors Size Id Type
/dev/loop0p1 63 625137344 625137282 298,1G 7 HPFS/NTFS/exFAT
# fdisk -lu /dev/loop0p1
Disk /dev/loop0p1: 298,1 GiB, 320070288384 bytes, 625137282 sectors
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: dos
Disk identifier: 0x444c544e
Device Boot Start End Sectors Size Id Type
/dev/loop0p1p1 ? 1768778098 1776409558 7631461 3,7G 6b unknown
/dev/loop0p1p2 ? 1830843506 3225479386 1394635881 665G 75 PC/IX
/dev/loop0p1p3 ? 1718906437 1718909009 2573 1,3M 41 PPC PReP Boot
/dev/loop0p1p4 2827157504 2827210421 52918 25,9M 0 Empty
Partition table entries are not in disk order.
# fdisk -lu /dev/loop0p1p2
fdisk: cannot open /dev/loop0p1p2: No such file or directory
El tamaño de la partición me dice que estoy interesado en / dev / loop0p1p2.
Intenté crear un manual de dispositivo de bucle. Si lo hago bien, necesito una versión de Start
* Sector size
(1830843506 * 512 = 937391875072) y un sizelimit de Sectors
* Sector size
(1394635881 * 512 = 714053571072). Pero no funciona:
# losetup -o 937391875072 --sizelimit 714053571072 --show -v -f /dev/loop0p1
/dev/loop1
# fdisk -lu /dev/loop1
fdisk: cannot open /dev/loop1: Inappropriate ioctl for device
# mount /dev/loop1 content/
mount: /dev/loop1 is write-protected, mounting read-only
mount: wrong fs type, bad option, bad superblock on /dev/loop1,
missing codepage or helper program, or other error
In some cases useful info is found in syslog - try
dmesg | tail or so.
Así que di kpartx
un cambio. Pero fue lo mismo:
# kpartx -av silvio-extern.iso
add map loop0p1 (253:2): 0 625137282 linear /dev/loop0 63
# fdisk -lu /dev/loop0p1
Disk /dev/loop0p1: 298.1 GiB, 320070288384 bytes, 625137282 sectors
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: dos
Disk identifier: 0x444c544e
Device Boot Start End Sectors Size Id Type
/dev/loop0p1p1 ? 1768778098 1776409558 7631461 3.7G 6b unknown
/dev/loop0p1p2 ? 1830843506 3225479386 1394635881 665G 75 PC/IX
/dev/loop0p1p3 ? 1718906437 1718909009 2573 1.3M 41 PPC PReP Boot
/dev/loop0p1p4 2827157504 2827210421 52918 25.9M 0 Empty
Partition table entries are not in disk order.
# fdisk -lu /dev/loop0p1p2
fdisk: cannot open /dev/loop0p1p2: No such file or directory
Entonces traté de correr losetup
con la opción portscan pero no tuvo éxito:
# losetup -Pf --show -v /dev/loop0p1
/dev/loop1
# fdisk -lu /dev/loop1
Disk /dev/loop1: 298.1 GiB, 320070288384 bytes, 625137282 sectors
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: dos
Disk identifier: 0x444c544e
Device Boot Start End Sectors Size Id Type
/dev/loop1p1 ? 1768778098 1776409558 7631461 3.7G 6b unknown
/dev/loop1p2 ? 1830843506 3225479386 1394635881 665G 75 PC/IX
/dev/loop1p3 ? 1718906437 1718909009 2573 1.3M 41 PPC PReP Boot
/dev/loop1p4 2827157504 2827210421 52918 25.9M 0 Empty
Partition table entries are not in disk order.
# fdisk -lu /dev/loop1p2
fdisk: cannot open /dev/loop1p2: No such file or directory
Di kpartx
un intento de /dev/loop0p1
y obtuve algunos mensajes de error:
# kpartx -av /dev/loop0p1
device-mapper: reload ioctl on loop0p1p1 failed: Invalid argument
create/reload failed on loop0p1p1
add map loop0p1p1 (0:0): 0 7631461 linear /dev/loop0p1 1768778098
device-mapper: reload ioctl on loop0p1p2 failed: Invalid argument
create/reload failed on loop0p1p2
add map loop0p1p2 (0:0): 0 1394635881 linear /dev/loop0p1 1830843506
device-mapper: reload ioctl on loop0p1p3 failed: Invalid argument
create/reload failed on loop0p1p3
add map loop0p1p3 (0:0): 0 2573 linear /dev/loop0p1 1718906437
device-mapper: reload ioctl on loop0p1p4 failed: Invalid argument
create/reload failed on loop0p1p4
add map loop0p1p4 (0:0): 0 52918 linear /dev/loop0p1 2827157504
Solo por mencionar: el montaje automático en Ubuntu 16.04 funciona bien con el disco original.
¿Alguien tiene alguna idea?
Estoy tratando de montar la imagen de disco con Debian 8.
Según lo sugerido por @Kamil Maciorowski, he intentado montar el archivo de imagen directamente con offset
opción. Este me da un Input/output error
al listar contenido:
# mount -o offset=$((512*63)) silvio-extern.iso content/
# ls -l content/
ls: reading directory content/: Input/output error
total 0
He comprobado doble compensación con fdisk
contra archivo de imagen:
# fdisk -lu silvio-extern.iso
Disk silvio-extern.iso: 298.1 GiB, 320072933376 bytes, 625142448 sectors
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: dos
Disk identifier: 0x88c8fbd4
Device Boot Start End Sectors Size Id Type
silvio-extern.iso1 63 625137344 625137282 298.1G 7 HPFS/NTFS/exFAT
fuente
Respuestas:
La tabla de particiones es muy simple: una partición NTFS en un desplazamiento común.
El comando
fdisk -lu /dev/loop0p1
lee la partición NTFS real como si fuera un disco con una tabla de particiones (aunque me parece extraño que ya tuvieras/dev/loop0p1
,kpartx
fue utilizado más tarde). En muchos casosfdisk
advierte que la tabla de particiones parece rara, tal vez se eligió un dispositivo incorrecto.Aquí, supongo, la "tabla de partición interna" no era lo suficientemente extraña como para activar la advertencia. Las "particiones" aún no están en orden, son de tipos poco comunes, sus compensaciones y tamaños no tienen sentido. En mi opinión, esta "tabla de partición interna" no es válida, tal configuración de partición sería muy extraña. Creo que solo hay una partición NTFS que no debería tratarse como un dispositivo particionado. Puedes montarlo con el comando anterior.
Tenga en cuenta que probablemente no necesita
losetup
. Creo que sufdisk
Puede leer el archivo de imagen muy bien:Desde su salida se puede distinguir el offset.
512*63
para usar con elmount
comando (como se muestra arriba), sinlosetup
en absoluto.fuente
Input/output error
al intentar listar el contenido del directorio donde he montado el archivo de imagen con desplazamiento. He añadido más información a la pregunta.dmesg
(dmesg | tail -n 20
) justo después del error?mount -o ro,offset=…