Я пытаюсь создать дистрибутивный образ (с помощью команды 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)
Я думаю, что есть проблема с тем, как создается файл изображения, так как он отвечает за создание (испорченной) таблицы разделов. Кто-нибудь может использовать эти (модифицированные) шаги для создания работающего загрузочного носителя?