LINUX.ORG.RU

Qemu, uboot и разные снэпшоты rootfs


0

1

Вразуми, коллективный разум, как бы мне сделать следующее:

- Установить в qemu загрузчик uboot

- Подсовывать ему под видом флэшек разные снэпшоты rootfs для тестирования/настройки

Установить какой-нибудь дистрибутив с диска или образа я могу, а вот как бы мне исхитриться и поставить только загрузчик?

★★★★★

Последнее исправление: Hoodoo (всего исправлений: 1)

Ответ на: комментарий от outsider

Хмм. Возможно. Это я делаю образ флэшки, правильно? Но на флэшке загрузчика нет, загрузчик должен быть в виртуалке.

Hoodoo ★★★★★
() автор топика
Ответ на: комментарий от Hoodoo

Сними образ загрузчика, который тебе нужен, ну или установи в файл какойнить через ту же qemu. Потом, qemu говори что грузится с такого-то файла, а диск - флэшка

outsider ★★
()
Ответ на: комментарий от outsider

Так, вроде понял. Вечером буду пробовать.

Hoodoo ★★★★★
() автор топика

Не знаю как на счёт uboot, но grub в образ можно поставить так:

// Готовим файл образа жёсткого диска для qemu, можно и с помощью qemu-img, но формат указываем raw.
dd if=/dev/zero of=<image.file> bs=1M count=<size> 
fdisk <image.file>
: o
: n
: p
: 1
: t
: l
: 83
: p // смотрим таблицу разделов
....
Устр-во Загр     Начало       Конец       Блоки   Id  Система
<image.file>       2048                           83  Linux
...
: w // записываем изменения в образ.

Подключаем созданный раздел через петлевое устройство:
losetup -f <image.file> --offset=$((2048*512)) // в данном случае 2048, у вас может быть по другому.
losetup -a // смотрим номер loop для нашего образа.
/dev/loop0: [0811]:51211 (<image.file>)
Создаём файловую систему на разделе:
mkfs.ext3 -m 0 /dev/loop0
mkdir /tmp/loop0
mount /dev/loop0 /tmp/loop0
mount /boot
копируем фалы grub:
cp -R /boot/grub /tmp/loop0
umount /tmp/loop0

Устанавливаем grub в mbr образа диска.

grub --device-map=/dev/null
grub> device (hd0) <path_to_image_file>/<image.file>
grub> root (hd0,0)
grub> setup (hd0)
 Checking if "/boot/grub/stage1" exists... no
 Checking if "/grub/stage1" exists... yes
 Checking if "/grub/stage2" exists... yes
 Checking if "/grub/e2fs_stage1_5" exists... yes
 Running "embed /grub/e2fs_stage1_5 (hd0)"...  18 sectors are embedded.
succeeded
 Running "install /grub/stage1 (hd0) (hd0)1+18 p (hd0,0)/grub/stage2 /grub/menu
.lst"... succeeded
Done.
grub> quit

Пробуем загрузиться с диска в qemu:
qemu -hda <image.file> -boot c

kostik87 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.