Я пытаюсь создать дистрибутивный образ (с помощью команды dd Linux) для ОС, которая будет работать с жесткими дисками и флеш-носителями. Я успешно создал образ, но не могу загрузить его правильно. Я буду макет шагов ниже:
Это создаст пустой файл для хранения всего изображения:
dd if=/dev/zero of=/tmp/test.img bs=512 count=1250000Связывает файл устройства обратной связи с файлом изображения:
losetup /dev/loop0 /tmp/test.imgПрежде чем мы сможем манипулировать с
partedмы ДОЛЖНЫ определить тип метки носителя:parted -s /dev/loop0 mklabel msdosСделайте первый раздел 512MB в файле образа:
parted -s -a opt /dev/loop0 mkpart primary ext2 '0%' 512MBУстановите первый раздел как «загрузочный»:
parted -s /dev/loop0 set 1 boot onСоздает файловую систему Ext2 в первом разделе:
mkfs.ext2 -b 1024 /dev/loop0p1Устанавливает stage1 кода начальной загрузки grub, сохраняя созданную выше таблицу разделов:
dd if=/boot/grub/stage1 of=/dev/loop0 bs=446 count=1Устанавливает stage2 кода начальной загрузки grub после первых 512 байт носителя (пропуская stage1 и таблицу разделов):
dd if=/boot/grub/stage2 of=/dev/loop0 bs=512 seek=1Смонтируйте первый раздел файла образа в точку монтирования:
mount /dev/loop0p1 /mnt/imageСкопируйте все данные в раздел и размонтируйте.
ddфайл изображения на любой жесткий диск или флэш-носитель.
Используя эти шаги, я могу dd файл образа на жесткий диск или флэш-диск и загрузиться в устаревшую консоль grub, где я могу загрузиться, но только указав значения root , kernel и initrd . Если я пытаюсь установить grub legacy с помощью команд root и setup , я не получаю никаких ошибок, но устройство загружается с ошибками. Запуск и fdisk -l производит:
Partition 1 has different physical/logical beginnings (non-Linux?):
phys(0,32,33) logical(0,37,14)
Partition 1 has different physical/logical endings:
phys(62,53,55) logical(336,27,19)
Я думаю, что есть проблема с тем, как создается файл изображения, так как он отвечает за создание (испорченной) таблицы разделов. Кто-нибудь может использовать эти (модифицированные) шаги для создания работающего загрузочного носителя?
