проблема с установкой 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: