Я сделал следующее:
Теперь я хотел бы сделать .img файл загрузочным путем установки личинки в ее MBR и каталог начальной загрузки/. Моя цель состоит в том, чтобы загрузить .img файл qemu. Было бы лучше, если grub2 используется вместо наследия личинки.
Спасибо.
Это с версией ПК личинки 1.98+20100804-5ubuntu3 (Независимая Суриката).
grub2 установщик может установить на устройствах закольцовывания, но если Вы смонтируете использование картопостроителя устройства, то это будет запутываться и полагать, что у Вас есть схема LVM, перестав работать загадочно с жалобой на недостающую абстракцию.
Вместо этого необходимо установить устройство закольцовывания для раздела сами с именем, которое должно соответствовать шаблону "/dev/loop [0-9]", т.е. без любого указателя раздела в конце:
kpartx -v -a /dev/loop0
losetup /dev/loop1 /dev/mapper/loop0p1
mount /dev/loop1 /mnt
(Обратите внимание, что, если Вы хотите, чтобы grub-mkconfig/update-grub воздействовал на этот объем, затем обратная петля раздела должна быть подключена к дисковой обратной петле под/dev, и не непосредственно к файлу изображения).
Так как Вы использовали fdisk для разделения изображения, у Вас есть таблица разделов стиля MS-DOS (иначе маркировка), и начальная загрузка с помощью BIOS. В дополнение к помещению stage1/boot.img в MBR stage1.5/core.img будет помещен в область встраивания в неразделенном пространстве (!) после прямо после, и должно быть пространство для этого.
Прием должен теперь сказать grub2 установщик через карту устройства, как Ваша петлевая установка отобразится на диски BIOS в виртуальной машине. (В grub1 наследии это было сделано непосредственно в оболочке). Вы, вероятно, планируете загрузить это изображение как первый диск, таким образом, я предполагаю, что соответствующее отображение было бы:
mkdir -p /mnt/boot/grub
cat > /mnt/boot/grub/device.map <<EOF
(hd0) /dev/loop0
(hd0,1) /dev/loop1
EOF
Здесь я поместил карту устройства в гостевом образе диска, так, чтобы можно было генерировать файл загрузочной конфигурации grub.cfg:
mount --bind /dev /mnt/dev
chroot /mnt grub-mkconfig -o /boot/grub/grub.cfg
(Остерегайтесь этого, постустановщик пакета ПК личинки выполнит датчик, который перезаписывает карту (!) устройства, таким образом, необходимо будет записать это после установки и выполнить grub-mkconfig/update-grub сами).
Теперь запустите установщик от хоста, указав на гостевую установку:
grub-install --no-floppy --grub-mkdevicemap=/mnt/boot/grub/device.map --root-directory=/mnt /dev/loop0
Наконец, размонтируйте все настроенное здесь прежде, чем запустить qemu на Вашем изображении:
umount /mnt/dev
umount /mnt
losetup -d /dev/loop1
kpartx -v -d /dev/loop0