virtualization:xen_pygrub_issue
Содержание
PyGrub – warning: grub-probe can’t find drive for /dev/xvda1
Проблема
В Debian 6 Squeeze в Xen VPS не обновляется ядро.
Текст ошибки при apt-get upgrade
Setting up linux-image-2.6.32-5-686-bigmem (2.6.32-48squeeze6) ... Running depmod. Running update-initramfs. update-initramfs: Generating /boot/initrd.img-2.6.32-5-686-bigmem Examining /etc/kernel/postinst.d. run-parts: executing /etc/kernel/postinst.d/initramfs-tools 2.6.32-5-686-bigmem /boot/vmlinuz-2.6.32-5-686-bigmem run-parts: executing /etc/kernel/postinst.d/zz-update-grub 2.6.32-5-686-bigmem /boot/vmlinuz-2.6.32-5-686-bigmem Searching for GRUB installation directory ... found: /boot/grub warning: grub-probe can't find drive for /dev/xvda1. grub-probe: error: cannot find a GRUB drive for /dev/xvda1. Check your device.map. run-parts: /etc/kernel/postinst.d/zz-update-grub exited with return code 1 Failed to process /etc/kernel/postinst.d at /var/lib/dpkg/info/linux-image-2.6.32-5-686-bigmem.postinst line 799, <STDIN> line 2. dpkg: error processing linux-image-2.6.32-5-686-bigmem (--configure): subprocess installed post-installation script returned error exit status 2 ---CUT--- Errors were encountered while processing: linux-image-2.6.32-5-686-bigmem E: Sub-process /usr/bin/dpkg returned an error code (1)
Решение
Создаём блочное устройство
# echo '(hd0) /dev/xvda' > /boot/grub/device.map # mknod /dev/xvda b 202 0
Редактируем файл /usr/sbin/update-grub
Меняем код
find_device () { if ! test -e ${device_map} ; then echo quit | grub --batch --no-floppy --device-map=${device_map} > /dev/null fi grub-probe --device-map=${device_map} -t device $1 2> /dev/null }
на
find_device () { if ! test -e ${device_map} ; then echo quit | grub --batch --no-floppy --device-map=${device_map} > /dev/null fi #grub-probe --device-map=${device_map} -t device $1 2> /dev/null echo /dev/xvda }
Обновляем grub
# update-grub 0 Searching for GRUB installation directory ... found: /boot/grub Searching for default file ... Generating /boot/grub/default file and setting the default boot entry to 0 Searching for GRUB installation directory ... found: /boot/grub Testing for an existing GRUB menu.lst file ... Generating /boot/grub/menu.lst Searching for splash image ... none found, skipping ... Found kernel: /boot/vmlinuz-2.6.32-5-686-bigmem Updating /boot/grub/menu.lst ... done
Исправляем menu.lst
# sed -i "s/xvda/xvda1/g" /boot/grub/menu.lst
После чего apt-get upgrade
успешно выполняется
# apt-get upgrade Reading package lists... Done Building dependency tree Reading state information... Done 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 1 not fully installed or removed. After this operation, 0 B of additional disk space will be used. Do you want to continue [Y/n]? y Setting up linux-image-2.6.32-5-686-bigmem (2.6.32-48squeeze6) ... Running depmod. Running update-initramfs. update-initramfs: Generating /boot/initrd.img-2.6.32-5-686-bigmem Examining /etc/kernel/postinst.d. run-parts: executing /etc/kernel/postinst.d/initramfs-tools 2.6.32-5-686-bigmem /boot/vmlinuz-2.6.32-5-686-bigmem run-parts: executing /etc/kernel/postinst.d/zz-update-grub 2.6.32-5-686-bigmem /boot/vmlinuz-2.6.32-5-686-bigmem Searching for GRUB installation directory ... found: /boot/grub Searching for default file ... found: /boot/grub/default Testing for an existing GRUB menu.lst file ... found: /boot/grub/menu.lst Searching for splash image ... none found, skipping ... Found kernel: /boot/vmlinuz-2.6.32-5-686-bigmem Updating /boot/grub/menu.lst ... done
Ссылки
virtualization/xen_pygrub_issue.txt · Последнее изменение: 2016/07/01 10:07 — 127.0.0.1
Обсуждение