syslinux создает неожиданные разделы на образе диска

syslinux создает неожиданные разделы на образе диска

Я столкнулся со странным поведением при попытке установить загрузчик на образ диска. Вот процесс, которому я следовал:

$ 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.

Я не могу понять, почему extlinux -iкоманда создает новые разделы на образе диска. Я подозреваю, что она может изменять некоторые метаданные файловой системы, но я был бы признателен за разъяснения по поводу деталей. Кроме того, возможно ли установить Syslinux на неразмеченный образ диска?

решение1

Таблица разделов MBR представляет собой очень простую структуру в конце самого первого 512-байтового блока диска. Она не содержит контрольных сумм, хэшей или других функций защиты от ошибок.

Запуская fdisk -lсозданный вами образ файловой системы/раздела, вы фактически заставляете его неправильно интерпретировать свой первый блок (загрузочную запись раздела, или PBR для краткости) как MBR. Это приводит к бессмысленному выводу, как вы и продемонстрировали.

Если я правильно помню, PBR, созданный extlinuxбудет содержатьзагрузочный кодв местах, занятых фактической таблицей разделов в MBR. Так же как fdiskи чтение частей extlinuxзагрузочного кода PBR и попытка отобразить его как содержимое MBR. Неудивительно, что вывод не имеет смысла!

Связанный контент