[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

проблема с установкой grub2 на флешку



Задача:
Создать образ флешки с установленной debian  и  загрузчиком  GRUB2.

Решаю так:
FLASH=/home/bda/flash.img
dd if=/dev/zero of=$FLASH bs=512 count=993*16*63 #создаём нулевую флешку rootdev=`losetup -f` #получаем свободный loop device losetup --offset `expr $root_start "*" 512` $rootdev $FLASH #cвязываем образ нашей флешки с loop device

mke2fs -q -F -j -b 1024 $rootdev `expr $root_len / 2` #делаем файловую систему
tune2fs -c 1 -e remount-ro -i 0        $rootdev

mount -n $rootdev /home/bda/flash -orw #монтируем нашу псевдо-флешку в /home/bda/flash

затем создаётся корневая система в /home/bda/flash
с этим этапом всё ок, я уверен.

grub-install --root-directory=/home/bda/flash $rootdev #пытаемся инсталлировать grub2 $rootdev = /dev/loop6

и вот тут получаем ошибку:
grub-probe: error: Cannot find a GRUB drive for /dev/loop6. Check your device.map


Содержимое device.map:
(hd0)  /home/bda/flash.img

т.к. флешка будет единственным носителем, там где будет использоваться.


Вопрос:
Есть ли вообще возможность поставить grub2 c использованием loop device?

Повторяю то же самое с реальной флешкой - и grub2 замечательно ставится
т.е. sudo grub-install --root-directory=/mnt/flash /dev/sdb1 отрабатывает без проблем (если реальная флешка /dev/sdb1 смонтирована в /mnt/flash)

И вобще grub-probe определяет drive для любых девайсов кроме loop device.


P.S.
если устанавливать старый grub 0.97 вместо нужного мне  grub2 1.96,
то всё ставится и работает на ура - вот так:
echo "(hd0) $FLASH" > $DEVICE_MAP
grub --batch --device-map=$DEVICE_MAP  <<EOF
geometry (hd0) 993 16 63
root (hd0,0)
setup (hd0)
EOF





Reply to: