![syslinux crea particiones inesperadas en la imagen del disco](https://rvso.com/image/231062/syslinux%20crea%20particiones%20inesperadas%20en%20la%20imagen%20del%20disco.png)
Me encuentro con un comportamiento extraño al intentar instalar un gestor de arranque en una imagen de disco. Este es el proceso que seguí:
$ dd if=/dev/zero of=test.img status=progress bs=200M count=1
1+0 records in
1+0 records out
209715200 bytes (210 MB, 200 MiB) copied, 0.190117 s, 1.1 GB/s
$ mkfs.ext2 test.img
mke2fs 1.47.0 (5-Feb-2023)
Discarding device blocks: done
Creating filesystem with 204800 1k blocks and 51200 inodes
Filesystem UUID: f6442813-7b8c-4636-b69e-334696e0840b
Superblock backups stored on blocks:
8193, 24577, 40961, 57345, 73729
Allocating group tables: done
Writing inode tables: done
Writing superblocks and filesystem accounting information: done
$ sudo mount test.img mount-point/ -o loop
$ fdisk -l test.img
Disk test.img: 200 MiB, 209715200 bytes, 409600 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
$ sudo extlinux -i mount-point/
mount-point/ is device /dev/loop0
Warning: unable to obtain device geometry (defaulting to 64 heads, 32 sectors)
(on hard disks, this is usually harmless.)
$ fdisk -l test.img
Disk test.img: 200 MiB, 209715200 bytes, 409600 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: 0x20ac7dda
Device Boot Start End Sectors Size Id Type
test.img1 3224498923 3657370039 432871117 206.4G 7 HPFS/NTFS/exFAT
test.img2 3272020941 5225480974 1953460034 931.5G 16 Hidden FAT16
test.img3 0 0 0 0B 6f unknown
test.img4 50200576 974536369 924335794 440.8G 0 Empty
Partition table entries are not in disk order.
No puedo entender por qué el extlinux -i
comando crearía nuevas particiones en la imagen del disco. Sospecho que podría estar modificando algunos metadatos del sistema de archivos, pero agradecería alguna aclaración sobre los detalles. Además, ¿es posible instalar Syslinux en una imagen de disco sin particiones?
Respuesta1
La tabla de particiones MBR es una estructura muy simple al final del primer bloque de 512 bytes del disco. No contiene sumas de comprobación, hashes ni otras funciones de protección contra errores.
Al ejecutarlo fdisk -l
en la imagen del sistema de archivos/partición que ha creado, efectivamente lo está obligando a malinterpretar su primer bloque (el Registro de arranque de partición, o PBR para abreviar) como un MBR. Esto da como resultado resultados sin sentido, como demostró.
Si no recuerdo mal, el PBR creado por extlinux
contendríacódigo de arranqueen las ubicaciones ocupadas por la tabla de particiones real en un MBR. Entonces fdisk
sería leer partes del extlinux
código de arranque PBR e intentar mostrarlo como contenido MBR. ¡No es de extrañar que el resultado no tenga sentido!