Bug#380351: hardcodes paths to grub-install and update-grub, rending them "unmovable"
Package: grub-installer
Severity: grave
Tags: patch
Using absolute paths can have horrid consequences as you've seen in #361929.
Now grub commands are "trapped" into violating FHS and being unable to move at
the same time.
Please find attached patch to switch to relative paths when invoking
grub-install or update-grub.
Note: The patch assumes that PATH env variable is properly set during execution
of these scripts. If that's not the case, you'll have to export it explicitly,
either in grub-installer or whereever you find appropiate.
As for /etc/kernel-img.conf generation, it cannot yet be done using relative
paths, but I expect that we'll be able to fix this automaticaly from
kernel-package (see #380338).
-- System Information:
Debian Release: testing/unstable
APT prefers unstable
APT policy: (500, 'unstable'), (500, 'testing'), (1, 'experimental')
Architecture: amd64 (x86_64)
Shell: /bin/sh linked to /bin/bash
Kernel: Linux 2.6.17-1-amd64-k8
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) (ignored: LC_ALL set to en_US.UTF-8)
diff -ur grub-installer-1.17.old/grub-installer grub-installer-1.17/grub-installer
--- grub-installer-1.17.old/grub-installer 2006-06-06 00:53:14.000000000 +0200
+++ grub-installer-1.17/grub-installer 2006-07-29 14:20:02.000000000 +0200
@@ -173,7 +173,7 @@
# Run update-grub in $ROOT.
update_grub () {
- if ! log-output -t grub-installer $chroot $ROOT /sbin/update-grub -y ; then
+ if ! log-output -t grub-installer $chroot $ROOT update-grub -y ; then
error "Running 'update-grub -y' failed." 1>&2
db_input critical grub-installer/update-grub-failed || [ $? -eq 30 ]
db_go || true
@@ -338,7 +338,7 @@
update_mtab
if ! is_floppy "$bootdev"; then
- if $chroot $ROOT /sbin/grub-install -h 2>&1 | grep -q no-floppy; then
+ if $chroot $ROOT grub-install -h 2>&1 | grep -q no-floppy; then
info "grub-install supports --no-floppy"
floppyparam="--no-floppy"
else
@@ -346,8 +346,8 @@
fi
fi
-info "Running $chroot $ROOT /sbin/grub-install --recheck $floppyparam \"$bootdev\""
-if log-output -t grub-installer $chroot $ROOT /sbin/grub-install --recheck $floppyparam "$bootdev"; then
+info "Running $chroot $ROOT grub-install --recheck $floppyparam \"$bootdev\""
+if log-output -t grub-installer $chroot $ROOT grub-install --recheck $floppyparam "$bootdev"; then
info "grub-install ran successfully"
else
error "Running 'grub-install --recheck $floppyparam \"$bootdev\"' failed."
diff -ur grub-installer-1.17.old/rescue.d/80grub-reinstall grub-installer-1.17/rescue.d/80grub-reinstall
--- grub-installer-1.17.old/rescue.d/80grub-reinstall 2006-01-17 00:04:04.000000000 +0100
+++ grub-installer-1.17/rescue.d/80grub-reinstall 2006-07-29 14:19:23.000000000 +0200
@@ -30,12 +30,12 @@
update_mtab
if ! is_floppy "$bootdev"; then
- if chroot /target /sbin/grub-install -h 2>&1 | grep -q no-floppy; then
+ if chroot /target grub-install -h 2>&1 | grep -q no-floppy; then
floppyparam="--no-floppy"
fi
fi
-if ! log-output -t grub-installer chroot /target /sbin/grub-install --recheck $floppyparam "$bootdev"; then
+if ! log-output -t grub-installer chroot /target grub-install --recheck $floppyparam "$bootdev"; then
db_subst grub-installer/grub-install-failed BOOTDEV "$bootdev"
db_input critical grub-installer/grub-install-failed BOOTDEV "$bootdev"
db_go || true
Reply to: