Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: E: linux-image-2.6.24-23-generic: podproces vrátil chybový status 2  (Přečteno 4241 krát)

vrsek

  • Návštěvník
  • Příspěvků: 12
Zdravim.

Mam Ubuntu 8.04 x64. Nevim co jsem provedl za zverstvo ale po kterekoliv instalaci ci aktualizaci se mi objevi chybova hlaska E: linux-image-2.6.24-23-generic: podproces vrátil chybový status 2
Vypis v konzoli konci vzdy timto (ci v podobnem smyslu):
Kód: [Vybrat]
Nastavuji balík linux-image-2.6.24-23-generic (2.6.24-23.52) ...
Running depmod.
update-initramfs: Generating /boot/initrd.img-2.6.24-23-generic
Not updating initrd symbolic links since we are being updated/reinstalled
(2.6.24-23.48 was configured last, according to dpkg)
Not updating image symbolic links since we are being updated/reinstalled
(2.6.24-23.48 was configured last, according to dpkg)
Running postinst hook script /sbin/update-grub.
[: 25: ==: unexpected operator
exec: 25: -a: not found
User postinst hook script [/sbin/update-grub] exited with value 2
dpkg: chyba při zpracovávání linux-image-2.6.24-23-generic (--configure):
 podproces post-installation script vrátil chybový status 2
Při zpracování nastaly chyby:
 linux-image-2.6.24-23-generic
E: Sub-process /usr/bin/dpkg returned an error code (1)
Instalace balíku selhala. Zkouším zotavení:
Nastavuji balík linux-image-2.6.24-23-generic (2.6.24-23.52) ...
Running depmod.
update-initramfs: Generating /boot/initrd.img-2.6.24-23-generic
Not updating initrd symbolic links since we are being updated/reinstalled
(2.6.24-23.48 was configured last, according to dpkg)
Not updating image symbolic links since we are being updated/reinstalled
(2.6.24-23.48 was configured last, according to dpkg)
Running postinst hook script /sbin/update-grub.
[: 25: ==: unexpected operator
exec: 25: -a: not found
User postinst hook script [/sbin/update-grub] exited with value 2
dpkg: chyba při zpracovávání linux-image-2.6.24-23-generic (--configure):
 podproces post-installation script vrátil chybový status 2
Při zpracování nastaly chyby:
 linux-image-2.6.24-23-generic
Potom vzdy vyzaduje restart pocitace (ktery ovsem nic neresi).

Vygooglil jsem tak maximalne chybovy status 1 :-( Nevim jak to resit. Pomuze mi prosim nekdo?

arrange

  • Závislák
  • ***
  • Příspěvků: 4031
  • "jdu s hlavou vztyčenou..."
Re: E: linux-image-2.6.24-23-generic: podproces vrátil chybový status 2
« Odpověď #1 kdy: 05 Května 2009, 20:03:55 »
Zkus spustit update-grub zvlášť:
Kód: [Vybrat]
sudo update-grub
Jestli to píše ty stejné chyby, dej tu výpis z
Kód: [Vybrat]
head /sbin/update-grubpřípadně vlož celý ten soubor /sbin/update-grub do přílohy.
http://www.openstreetmap.org - mapy celého světa "wiki style"

vrsek

  • Návštěvník
  • Příspěvků: 12
Re: E: linux-image-2.6.24-23-generic: podproces vrátil chybový status 2
« Odpověď #2 kdy: 06 Května 2009, 12:34:10 »
Tak jsem provedl vse jak bylo receno, hazelo to chybky. Takze pokus o update-grub, vypis z head a celeho souboru tady:
Kód: [Vybrat]
12:31 vrsek@red-devil:[~]$ sudo update-grub
[: 25: ==: unexpected operator
exec: 25: -a: not found
12:31 vrsek@red-devil:[~]$ head /sbin/update-grub
#!/bin/sh
#
# Wrapper to warn user about kernel-img.conf move
#

if grep -q '  */sbin/update-grub$' /etc/kernel-img.conf 2> /dev/null ; then
        cat <<EOF
Your /etc/kernel-img.conf needs upgrade. Read grub's NEWS.Debian[1]
file and follow its instructions.

12:32 vrsek@red-devil:[~]$ cat /sbin/update-grub
#!/bin/sh
#
# Wrapper to warn user about kernel-img.conf move
#

if grep -q '  */sbin/update-grub$' /etc/kernel-img.conf 2> /dev/null ; then
        cat <<EOF
Your /etc/kernel-img.conf needs upgrade. Read grub's NEWS.Debian[1]
file and follow its instructions.

 1. /usr/share/doc/grub-gfxboot/NEWS.Debian.gz


EOF
fi

if [ -x /usr/sbin/update-grub.real ]; then
        if [ "$0" == "/sbin/update-grub" ]; then
                echo "You shouldn't call /sbin/update-grub. Please call /usr/sbin/update-grub instead!"
                echo
        fi
        exec -a update-grub /usr/sbin/update-grub.real $*
else
        echo "Your /usr is broken, please fix it before call this wrapper!"
fi
12:32 vrsek@red-devil:[~]$

arrange

  • Závislák
  • ***
  • Příspěvků: 4031
  • "jdu s hlavou vztyčenou..."
Re: E: linux-image-2.6.24-23-generic: podproces vrátil chybový status 2
« Odpověď #3 kdy: 06 Května 2009, 21:34:51 »
OK. Zkus si otevřít ten soubor /sbin/update-grub (třeba pomocí gksudo gedit /sbin/update-grub) a opravit první řádek z
Kód: [Vybrat]
#!/bin/sh na
Kód: [Vybrat]
#!/bin/bash
A pak znova
Kód: [Vybrat]
sudo update-grub
Pokud to nepomůže, zkus to stejné pro /usr/sbin/update-grub
http://www.openstreetmap.org - mapy celého světa "wiki style"

vrsek

  • Návštěvník
  • Příspěvků: 12
Re: E: linux-image-2.6.24-23-generic: podproces vrátil chybový status 2
« Odpověď #4 kdy: 06 Května 2009, 23:38:25 »
Pomohlo, musel jsem to ale zmenit i v /usr/sbin/update-grub

Dekuji.

Jen dotazek, jak je mozny, ze tomu vadilo sh a v bashi to jede?? To by me fakt nenapdalo ze to muze byt timto...

EDIT: Ted mi to pri bootovani pise misto Ubuntu ze mam Debian  ;D Uz jsem si to upravil v menu.lst, ale kdyz jsem odstranil stare jadra, tak to hodilo zase Debian, tak jsem to opet upravil. Ocekavam ze s prichodem novejsiho jadra se to stane znova. Vypada to jen na detail co se tyka popisku, snad to dalsi problemy zpusobovat nebude, ovsem kdyby nekdo vedel cim je zas toto zpusobeno, necht da vedet...
« Poslední změna: 06 Května 2009, 23:54:26 od vrsek »

arrange

  • Závislák
  • ***
  • Příspěvků: 4031
  • "jdu s hlavou vztyčenou..."
Re: E: linux-image-2.6.24-23-generic: podproces vrátil chybový status 2
« Odpověď #5 kdy: 07 Května 2009, 00:09:11 »
Dej tady výpis z
Kód: [Vybrat]
lsb_release --short --descriptionPíše to správně Tvou distribuci?

Když se podíváš do adresáře /boot a do menu.lst: máš tam správně nejaktuálnější jádra?

http://www.openstreetmap.org - mapy celého světa "wiki style"

vrsek

  • Návštěvník
  • Příspěvků: 12
Re: E: linux-image-2.6.24-23-generic: podproces vrátil chybový status 2
« Odpověď #6 kdy: 11 Května 2009, 18:20:56 »
V menu.lst mam 2.6.24-24-generic, coz je spravne.
lsb_release --short --description: Ubuntu 8.04.2
uname -a: Linux red-devil 2.6.24-24-generic #1 SMP Wed Apr 15 15:11:35 UTC 2009 x86_64 GNU/Linux


arrange

  • Závislák
  • ***
  • Příspěvků: 4031
  • "jdu s hlavou vztyčenou..."
Re: E: linux-image-2.6.24-23-generic: podproces vrátil chybový status 2
« Odpověď #7 kdy: 11 Května 2009, 22:20:58 »
Asi o nic nepůjde. Jestli ale chceš, můžeš sem hodit výpisy z update-grub:

Nejdřív otevři /usr/sbin/update-grub a změň první řádek na
Kód: [Vybrat]
#!/bin/bash -x(zapne se debug mód)

Vytvoř adresář test
Kód: [Vybrat]
mkdir /tmp/testPak spusť
Kód: [Vybrat]
sudo update-grub &> /tmp/test/dbg(uloží výpis do dbg.txt)

Plus další výpisy
Kód: [Vybrat]
cp /usr/sbin/update-grub /tmp/test/update-grub
ls -l /boot > /tmp/test/boot
ls -l /boot/grub > /tmp/test/grub
cp /boot/grub/menu.lst /tmp/test/menu.lst

Zazipuj
Kód: [Vybrat]
zip /tmp/test.zip /tmp/test/* a ten soubor /tmp/test.zip někam uploadni, hoď sem link. (A nezapomeň ten řádek změnit na původní (bez -x)).

http://www.openstreetmap.org - mapy celého světa "wiki style"

vrsek

  • Návštěvník
  • Příspěvků: 12
Re: E: linux-image-2.6.24-23-generic: podproces vrátil chybový status 2
« Odpověď #8 kdy: 12 Května 2009, 12:19:56 »
Tak tady to je: test.zip

arrange

  • Závislák
  • ***
  • Příspěvků: 4031
  • "jdu s hlavou vztyčenou..."
Re: E: linux-image-2.6.24-23-generic: podproces vrátil chybový status 2
« Odpověď #9 kdy: 12 Května 2009, 17:22:50 »
Je to dobrý, ale máš to nějak naopak, než já - myslím tím /usr/sbin/update-grub a /sbin/update-grub. Zajímá mě ten větší soubor, má cca 40 kB. Dej ten parametr -x pro jistotu do obojího, proveď sudo update-grub &> /tmp/test/dbg a pošli to znovu, stačí ty soubory dbg a ten větší update-grub. Ve výsledku by měly oba ty soubory mít každý 40 kB.
http://www.openstreetmap.org - mapy celého světa "wiki style"

vrsek

  • Návštěvník
  • Příspěvků: 12
Re: E: linux-image-2.6.24-23-generic: podproces vrátil chybový status 2
« Odpověď #10 kdy: 12 Května 2009, 19:13:14 »
Tak uploadovat neco je asi zbytecne, ty dva soubory update-grub z /sbin a /usr/sbin jsou identicke... takze se obavam, ze jsme se neposunuli... :-/ nic nema neco kolem 40kb a vypis dbg ma 547b :-(

arrange

  • Závislák
  • ***
  • Příspěvků: 4031
  • "jdu s hlavou vztyčenou..."
Re: E: linux-image-2.6.24-23-generic: podproces vrátil chybový status 2
« Odpověď #11 kdy: 12 Května 2009, 19:31:22 »
Máš tam tedy soubor /usr/sbin/update-grub.real? Někde tam být musí, protože update-grub Ti (nějak) funguje... Mám JJ, tam už je to trochu jinak. Můžeš taky zkusit příkaz
Kód: [Vybrat]
whereis update-grub
http://www.openstreetmap.org - mapy celého světa "wiki style"

vrsek

  • Návštěvník
  • Příspěvků: 12
Re: E: linux-image-2.6.24-23-generic: podproces vrátil chybový status 2
« Odpověď #12 kdy: 12 Května 2009, 20:11:39 »
update-grub.real tam je...
update-grub.real
Kód: [Vybrat]
#!/bin/bash
#
# Insert a list of installed kernels in a grub config file
#   Copyright 2001 Wichert Akkerman <wichert@linux.com>
#
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
# Contributors:
# Jason Thomas <jason@debian.org>
# David B.Harris <dbarclay10@yahoo.ca>
# Marc Haber <mh@zugschlus.de>
# Crispin Flowerday <crispin@zeus.com>

# Abort on errors
set -e

host_os=`uname -s | tr '[A-Z]' '[a-z]'`

abort() {
message=$@

echo >&2
echo -e "$message" >&2
echo >&2
exit 1
}

find_grub_dir ()
{
echo  -n "Searching for GRUB installation directory ... " >&2

for d in $grub_dirs ; do
if [ -d "$d" ] ; then
grub_dir="$d"
break
fi
done

if [ -z "$grub_dir" ] ; then
abort "No GRUB directory found.\n To create a template run 'mkdir /boot/grub' first.\n To install grub, install it manually or try the 'grub-install' command.\n ### Warning, grub-install is used to change your MBR. ###"
else
echo "found: $grub_dir" >&2
fi

echo $grub_dir
}

find_device ()
{
mount_point=$1

# Autodetect current root device
device=
if [ -f /etc/fstab ] ; then
while read DEV MNT FOO; do
if `echo "$DEV" | grep -q "^#"`; then
continue
fi
if [ "$MNT" = "$mount_point" ]; then
device="$DEV";
fi
done < /etc/fstab
fi

if [ -n "$device" ] ; then
case "$device" in
LABEL=* | UUID=*)
device=`readlink -f "$(findfs $device)"`
;;
*)
device=`readlink -f "$device"`
;;
esac
fi

echo $device
}

find_root_device ()
{
device=$(find_device "/")

if [ -z "$device" ]; then
echo "Cannot determine root device.  Assuming /dev/hda1" >&2
echo "This error is probably caused by an invalid /etc/fstab" >&2
device=/dev/hda1
fi

echo $device
}

# Usage: convert_raid1 os_device
# Checks if os_device is a software raid1.
# If so, converts to first physical device in array.
convert_raid1 ()
{
    case $1 in
        /dev/md[0-9])
            : ;; # Continue
        *)
            return 1 ;;
    esac

    [ -x /sbin/mdadm ] || return 1

    # Check that the raid device is raid1
    raidlevel=$(mdadm -D -b $1 | grep "^ARRAY" | \
            sed "s/^.*level=//" | cut -d" " -f1)
    [ "$raidlevel" = "raid1" ] || return 1
   
    # Take only the first device that makes up the raid
    raiddev=$(mdadm -D $1 | grep -A1 "Number" | grep "dev" \
                          | sed "s/^.*\(\/dev\/.*\)$/\1/")
    [ -n "$raiddev" ] || return 1

    echo $raiddev
    return 0
}

# Usage: convert os_device
# Convert an OS device to the corresponding GRUB drive.
# This part is OS-specific.
convert () {
    # First, check if the device file exists.
    if test -e "$1"; then
:
    else
echo "$1: Not found or not a block device." 1>&2
exit 1
    fi

host_os=`uname -s | tr '[[:upper:]]' '[[:lower:]]'`

    # Break the device name into the disk part and the partition part.
    case "$host_os" in
    linux)
tmp_disk=`echo "$1" | sed -e 's%\([sh]d[[:lower:]]\)[0-9]*$%\1%' \
  -e 's%\(fd[0-9]*\)$%\1%' \
  -e 's%/part[0-9]*$%/disc%' \
  -e 's%\(c[0-7]d[0-9]*\).*$%\1%'`
tmp_part=`echo "$1" | sed -e 's%.*/[sh]d[[:lower:]]\([0-9]*\)$%\1%' \
  -e 's%.*/fd[0-9]*$%%' \
  -e 's%.*/floppy/[0-9]*$%%' \
  -e 's%.*/\(disc\|part\([0-9]*\)\)$%\2%' \
  -e 's%.*c[0-7]d[0-9]*p*%%'`
;;
    gnu)
tmp_disk=`echo "$1" | sed 's%\([sh]d[0-9]*\).*%\1%'`
tmp_part=`echo "$1" | sed "s%$tmp_disk%%"` ;;
    freebsd|*/kfreebsd)
tmp_disk=`echo "$1" | sed 's%r\{0,1\}\([saw]d[0-9]*\).*$%\1%' \
    | sed 's%r\{0,1\}\(da[0-9]*\).*$%\1%'`
tmp_part=`echo "$1" \
    | sed "s%.*/r\{0,1\}[saw]d[0-9]\(s[0-9]*[a-h]\)%\1%" \
            | sed "s%.*/r\{0,1\}da[0-9]\(s[0-9]*[a-h]\)%\1%"`
;;
    netbsd|*/knetbsd)
tmp_disk=`echo "$1" | sed 's%r\{0,1\}\([sw]d[0-9]*\).*$%r\1d%' \
    | sed 's%r\{0,1\}\(fd[0-9]*\).*$%r\1a%'`
tmp_part=`echo "$1" \
    | sed "s%.*/r\{0,1\}[sw]d[0-9]\([abe-p]\)%\1%"`
;;
    *)
echo "update-grub does not support your OS yet." 1>&2
exit 1 ;;
    esac

    # Get the drive name.
    tmp_drive=`grep -v '^#' $device_map | grep "$tmp_disk *$" \
| sed 's%.*\(([hf]d[0-9][a-z0-9,]*)\).*%\1%'`

    # If not found, print an error message and exit.
    if test "x$tmp_drive" = x; then
echo "$1 does not have any corresponding BIOS drive." 1>&2
exit 1
    fi

    if test "x$tmp_part" != x; then
# If a partition is specified, we need to translate it into the
# GRUB's syntax.
case "$host_os" in
linux)
      echo "$tmp_drive" | sed "s%)$%,`expr $tmp_part - 1`)%" ;;
gnu)
      if echo $tmp_part | grep "^s" >/dev/null; then
tmp_pc_slice=`echo $tmp_part \
    | sed "s%s\([0-9]*\)[a-z]*$%\1%"`
tmp_drive=`echo "$tmp_drive" \
    | sed "s%)%,\`expr "$tmp_pc_slice" - 1\`)%"`
      fi
      if echo $tmp_part | grep "[a-z]$" >/dev/null; then
tmp_bsd_partition=`echo "$tmp_part" \
    | sed "s%[^a-z]*\([a-z]\)$%\1%"`
tmp_drive=`echo "$tmp_drive" \
    | sed "s%)%,$tmp_bsd_partition)%"`
      fi
      echo "$tmp_drive" ;;
freebsd|*/kfreebsd)
      if echo $tmp_part | grep "^s" >/dev/null; then
tmp_pc_slice=`echo $tmp_part \
    | sed "s%s\([0-9]*\)[a-h]*$%\1%"`
tmp_drive=`echo "$tmp_drive" \
    | sed "s%)%,\`expr "$tmp_pc_slice" - 1\`)%"`
      fi
      if echo $tmp_part | grep "[a-h]$" >/dev/null; then
tmp_bsd_partition=`echo "$tmp_part" \
    | sed "s%s\{0,1\}[0-9]*\([a-h]\)$%\1%"`
tmp_drive=`echo "$tmp_drive" \
    | sed "s%)%,$tmp_bsd_partition)%"`
      fi
      echo "$tmp_drive" ;;
netbsd|*/knetbsd)
      if echo $tmp_part | grep "^[abe-p]$" >/dev/null; then
tmp_bsd_partition=`echo "$tmp_part" \
    | sed "s%\([a-p]\)$%\1%"`
tmp_drive=`echo "$tmp_drive" \
    | sed "s%)%,$tmp_bsd_partition)%"`
      fi
      echo "$tmp_drive" ;;
esac
    else
# If no partition is specified, just print the drive name.
echo "$tmp_drive"
    fi
}

# Usage: convert_default os_device
# Convert an OS device to the corresponding GRUB drive.
# Calls OS-specific convert, and returns a default of
# (hd0,0) if anything goes wrong
convert_default () {
# Check if device is software raid1 array
if tmp_dev=$(convert_raid1 $1 2>/dev/null) ; then
: # Use device returned by convert_raid1
else
tmp_dev=$1
fi

if tmp=$(convert $tmp_dev 2>/dev/null) ; then
echo $tmp
else
echo "(hd0,0)"
fi
}

## Configuration Options
# directory's to look for the grub installation and the menu file
grub_dirs="/boot/grub /boot/boot/grub"

# The grub installation directory
grub_dir=$(find_grub_dir)

# Full path to the menu.lst
menu_file_basename=menu.lst
menu_file=$grub_dir/$menu_file_basename

# the device for the / filesystem
root_device=$(find_root_device)

# the device for the /boot filesystem
boot_device=$(find_device "/boot")

# Full path to the device.map
device_map=$grub_dir/device.map

# Default kernel options, overidden by the kopt statement in the menufile.
kopt="root=$root_device ro"

# Title
title="Debian GNU/`uname -s | sed -e s,GNU/,,g`"

# should update-grub remember the default entry
updatedefaultentry="false"

# Drive(in GRUB terms) where the kernel is located. Overridden by the
# kopt statement in menufile.
# if we don't have a device.map then we can't use the convert function.
if test -f "$device_map" ; then
if test -z "$boot_device" ; then
grub_root_device=$(convert_default "$root_device")
else
grub_root_device=$(convert_default "$boot_device")
fi
else
grub_root_device="(hd0,0)"
fi

# should grub create the alternative boot options in the menu
alternative="true"

# should grub lock the alternative boot options in the menu
lockalternative="false"

# additional options to use with the default boot option, but not with the
# alternatives
defoptions=""

# should grub lock the old kernels
lockold="false"

# Xen hypervisor options to use with the default Xen boot option
xenhopt=""

# Xen Linux kernel options to use with the default Xen boot option
xenkopt="console=tty0"

# options to use with the alternative boot options
altoptions="(single-user mode) single"

# controls howmany kernels are listed in the config file,
# this does not include the alternative kernels
howmany="all"

# should grub create a memtest86 entry
memtest86="true"

# stores the command line arguments
command_line_arguments=$1

# read user configuration
if test -f "/etc/default/grub" ; then
    . /etc/default/grub
fi

# Default options to use in a new config file. This will only be used if $menu_file
# doesn't already exist. Only edit the lines between the two "EOF"s. The others are
# part of the script.
newtemplate=$(tempfile)
cat > "$newtemplate" <<EOF
# $menu_file_basename - See: grub(8), info grub, update-grub(8)
#            grub-install(8), grub-floppy(8),
#            grub-md5-crypt, /usr/share/doc/grub
#            and /usr/share/doc/grub-doc/.

## default num
# Set the default entry to the entry number NUM. Numbering starts from 0, and
# the entry number 0 is the default if the command is not used.
default 0

## timeout sec
# Set a timeout, in SEC seconds, before automatically booting the default entry
# (normally the first entry defined).
timeout 5

# Pretty colours
color cyan/blue white/blue

## password ['--md5'] passwd
# If used in the first section of a menu file, disable all interactive editing
# control (menu entry editor and command-line)  and entries protected by the
# command 'lock'
# e.g. password topsecret
#      password --md5 \$1\$gLhU0/\$aW78kHK1QfV3P2b2znUoe/
# password topsecret

#
# examples
#
# title Windows 95/98/NT/2000
# root (hd0,0)
# makeactive
# chainloader +1
#
# title Linux
# root (hd0,1)
# kernel /vmlinuz root=/dev/hda2 ro
#

#
# Put static boot stanzas before and/or after AUTOMAGIC KERNEL LIST

EOF
## End Configuration Options


# Make sure we use the standard sorting order
LC_COLLATE=C
# Magic markers we use
start="### BEGIN AUTOMAGIC KERNELS LIST"
end="### END DEBIAN AUTOMAGIC KERNELS LIST"

startopt="## ## Start Default Options ##"
endopt="## ## End Default Options ##"

# Extract options from config file
ExtractMenuOpt()
{
opt=$1

sed -ne "/^$start\$/,/^$end\$/ {
/^$startopt\$/,/^$endopt\$/ {
/^# $opt=/ {
s/^# $opt=\(.*\)\$/\1/
p
}
}
}" $menu
}

GetMenuOpts()
{
opt=$1

sed -ne "/^$start\$/,/^$end\$/ {
/^$startopt\$/,/^$endopt\$/ {
/^# $opt=/ {
p
}
}
}" $menu
}

ExtractMenuOpts()
{
opt=$1

GetMenuOpts $opt | sed "s/^# $opt=\(.*\)\$/\1=\"\2\"/"
}

GetMenuOpt()
{
opt=$1
value=$2

tmp=$(ExtractMenuOpt "$opt")

[ -z "$tmp" ] || value="$tmp"

echo $value
}

# Compares two version strings A and B
# Returns -1 if A<B
#          0 if A==B
#          1 if A>B
# This compares version numbers of the form
# 2.4.14.2 > 2.4.14
# 2.4.14random = 2.4.14-random > 2.4.14-ac10 > 2.4.14 > 2.4.14-pre2 >
# 2.4.14-pre1 > 2.4.13-ac99
CompareVersions()

    #Changes the line something-x.y.z into somthing-x.y.z.q
#This is to ensure that kernels with a .q is treated as higher than the ones without               
        #First a space is put after the version number
        v1=$(echo $1 | sed -e 's!^\(.*-\([0-9]\+\.\)\{2,3\}[0-9]\+\)\(.*\)!\1 \3!g')
v2=$(echo $2 | sed -e 's!^\(.*-\([0-9]\+\.\)\{2,3\}[0-9]\+\)\(.*\)!\1 \3!g')
#If the version number only has 3 digits then put in another .0
        v1=$(echo $v1 | sed -e 's!^\(.*-\([0-9]\+\.\)\{2\}[0-9]\+\)\( .*\)!\1.0 \3!g')
        v2=$(echo $v2 | sed -e 's!^\(.*-\([0-9]\+\.\)\{2\}[0-9]\+\)\( .*\)!\1.0 \3!g')
         
# Then split the version number and remove any '.' 's or dashes
v1=$(echo $v1 | sed -e 's![-\.]\+! !g' -e 's!\([0-9]\)\([[:alpha:]]\)!\1 \2!')
v2=$(echo $v2 | sed -e 's![-\.]\+! !g' -e 's!\([0-9]\)\([[:alpha:]]\)!\1 \2!')

# we weight different kernel suffixes here
# ac   = 50
# pre  = -50
# rc   = -40
# test = -60
# others are given 99
v1=$(echo $v1 | sed -e 's! k7! 786 !g' -e 's! ac! 50 !g' -e 's! rc! -40 !g' -e 's! pre! -50 !g' -e 's! test! -60 !g' -e 's![^-0-9 ]\+!99!g')

v2=$(echo $v2 | sed -e 's! k7! 786 !g' -e 's! ac! 50 !g' -e 's! rc! -40 !g' -e 's! pre! -50 !g' -e 's! test! -60 !g' -e 's![^-0-9 ]\+!99!g')

result=0; v1finished=0; v2finished=0;
while [ $result -eq 0 ] && [ $v1finished -eq 0 ] && [ $v2finished -eq 0 ];
do
if [ "$v1" = "" ]; then
v1comp=0; v1finished=1
else
set -- $v1; v1comp=$1; shift; v1=$*
fi

if [ "$v2" = "" ]; then
v2comp=0; v2finished=1
else
set -- $v2; v2comp=$1; shift; v2=$*
fi

set +e
result=`expr $v1comp - $v2comp`
result=`expr substr $result 1 2`
set -e

if   [ $result -gt 0 ]; then result=1
elif [ $result -lt 0 ]; then result=-1
fi
done

# finally return the result
echo $result
}

# looks in the directory specified for an initrd image with the version specified
FindInitrdName()
{
# strip trailing slashes
directory=$(echo $1 | sed -e 's#/*$##')
version=$2

# initrd
# initrd.img
# initrd-lvm
# .*.gz

initrdName=""
names="initrd initrd.img initrd-lvm"
compressed="gz"

for n in $names ; do
# make sure we haven't already found it
if [ -z "$initrdName" ] ; then
if [ -f "$directory/$n$version" ] ; then
initrdName="$n$version"
break
else
for c in $compressed ; do
if [ -f "$directory/$n$version.$c" ] ; then
initrdName="$n$version.$c"
break
fi
done
fi
else
break
fi
done

# return the result
echo $initrdName
}

get_kernel_opt()
{
kernel_version=$1

version=$(echo $kernel_version | sed 's/^[^0-9]*//')
version=$(echo $version | sed 's/[-\+\.]/_/g')
if [ -n "$version" ] ; then
while [ -n "$version" ] ; do
currentOpt="$(eval "echo \${kopt_$version}")"
if [ -n "$currentOpt" ] ; then
break
fi
version=$(echo $version | sed 's/_\?[^_]*$//')
done
fi

if [ -z "$currentOpt" ] ; then
currentOpt=$kopt
fi

echo $currentOpt
}

write_kernel_entry()
{
local kernel_version; kernel_version=$1; shift
local recovery_desc; recovery_desc=$1; shift
local lock_alternative; lock_alternative=$1; shift
local grub_root_device; grub_root_device=$1; shift
local kernel; kernel=$1; shift
local kernel_options; kernel_options=$1; shift
local recovery_suffix; recovery_suffix=$1; shift
local initrd; initrd=$1; shift
#local savedefault; savedefault=$1; shift
shift
local lockold; lockold=$1; shift
local hypervisor
if [ -n "$1" ]; then
# Hypervisor.
hypervisor=$1; shift
local hypervisor_image; hypervisor_image=$1; shift
local hypervisor_version; hypervisor_version=$1; shift
local hypervisor_options; hypervisor_options=$1; shift
fi

echo -n "title " >> $buffer

if [ -n "$hypervisor" ]; then
echo -n "$hypervisor $hypervisor_version / " >> $buffer
fi

echo -n "$title" >> $buffer
if [ -n "$kernel_version" ]; then
echo -n ", kernel $kernel_version" >> $buffer
fi
if [ -n "$recovery_desc" ]; then
echo -n " $recovery_desc" >> $buffer
fi
echo >> $buffer

# lock the alternative options
if test x"$lock_alternative" = x"true" ; then
echo "lock" >> $buffer
fi
# lock the old entries
if test x"$lockold" = x"true" ; then
echo "lock" >> $buffer
fi

echo "root $grub_root_device" >> $buffer

echo -n "kernel "  >> $buffer
if [ -n "$hypervisor" ]; then
echo -n "$hypervisor_image" >> $buffer
if [ -n "$hypervisor_options" ]; then
echo -n " $hypervisor_options"  >> $buffer
fi
echo >> $buffer
echo -n "module "  >> $buffer
fi
echo -n "$kernel"  >> $buffer
if [ -n "$kernel_options" ]; then
echo -n " $kernel_options"  >> $buffer
fi
if [ -n "$recovery_desc" ]; then
echo -n " $recovery_suffix"  >> $buffer
fi
echo >> $buffer

if [ -n "$initrd" ]; then
if [ -n "$hypervisor" ]; then
echo -n "module " >> $buffer
else
echo -n "initrd " >> $buffer
fi
echo "$initrd" >> $buffer
fi
echo >> $buffer
}


echo -n "Testing for an existing GRUB $menu_file_basename file ... " >&2

# Test if our menu file exists
if [ -f "$menu_file" ] ; then
menu="$menu_file"
rm -f $newtemplate
unset newtemplate
echo "found: $menu_file" >&2
cp -f "$menu_file" "$menu_file~"
else
# if not ask user if they want us to create one
menu="$menu_file"
echo >&2
echo >&2
echo -n "Could not find $menu_file file. " >&2
if [ "-y" = "$command_line_arguments" ] ; then
echo >&2
echo "Generating $menu_file" >&2
answer=y
else
echo -n "Would you like $menu_file generated for you? " >&2
echo -n "(y/N) " >&2
read answer
fi

case "$answer" in
y* | Y*)
cat "$newtemplate" > $menu_file
rm -f $newtemplate
unset newtemplate
;;
*)
abort "Not creating $menu_file as you wish"
;;
esac
fi

# Extract the kernel options to use
kopt=$(GetMenuOpt "kopt" "$kopt")

# Set the kernel 2.6 option only for fresh install
test -z "$(GetMenuOpt "kopt" "")" && kopt_2_6="root=$root_device ro"

# Extract options for specific kernels
opts="$(ExtractMenuOpts "\(kopt_[[:alnum:]_]\+\)")"
test -z "$opts" || eval "$opts"
CustomKopts=$(GetMenuOpts "\(kopt_[[:alnum:]_]\+\)")

# Extract the grub root
grub_root_device=$(GetMenuOpt "groot" "$grub_root_device")

# Extract the old recovery value
alternative=$(GetMenuOpt "recovery" "$alternative")

# Extract the alternative value
alternative=$(GetMenuOpt "alternative" "$alternative")

# Extract the lockalternative value
lockalternative=$(GetMenuOpt "lockalternative" "$lockalternative")

# Extract the additional default options
defoptions=$(GetMenuOpt "defoptions" "$defoptions")

# Extract the lockold value
lockold=$(GetMenuOpt "lockold" "$lockold")

# Extract Xen hypervisor options
xenhopt=$(GetMenuOpt "xenhopt" "$xenhopt")

# Extract Xen Linux kernel options
xenkopt=$(GetMenuOpt "xenkopt" "$xenkopt")

# Extract the howmany value
howmany=$(GetMenuOpt "howmany" "$howmany")

# Extract the memtest86 value
memtest86=$(GetMenuOpt "memtest86" "$memtest86")

 
# Extract the updatedefaultentry option
updatedefaultentry=$(GetMenuOpt "updatedefaultentry" "$updatedefaultentry")


# Generate the menu options we want to insert
buffer=$(tempfile)
echo $start >> $buffer
echo "## lines between the AUTOMAGIC KERNELS LIST markers will be modified" >> $buffer
echo "## by the debian update-grub script except for the default options below" >> $buffer
echo >> $buffer
echo "## DO NOT UNCOMMENT THEM, Just edit them to your needs" >> $buffer
echo >> $buffer
echo "## ## Start Default Options ##" >> $buffer

echo "## default kernel options" >> $buffer
echo "## default kernel options for automagic boot options" >> $buffer
echo "## If you want special options for specific kernels use kopt_x_y_z" >> $buffer
echo "## where x.y.z is kernel version. Minor versions can be omitted." >> $buffer
echo "## e.g. kopt=root=/dev/hda1 ro" >> $buffer
echo "##      kopt_2_6_8=root=/dev/hdc1 ro" >> $buffer
echo "##      kopt_2_6_8_2_686=root=/dev/hdc2 ro" >> $buffer
echo "# kopt=$kopt" >> $buffer
if [ -n "$CustomKopts" ] ; then
    echo "$CustomKopts" >> $buffer
elif [ -n "$kopt_2_6" ] && [ "$kopt" != "$kopt_2_6" ]; then
    echo "# kopt_2_6=$kopt_2_6" >> $buffer
fi
echo >> $buffer

echo "## default grub root device" >> $buffer
echo "## e.g. groot=(hd0,0)" >> $buffer
echo "# groot=$grub_root_device" >> $buffer
echo >> $buffer

echo "## should update-grub create alternative automagic boot options" >> $buffer
echo "## e.g. alternative=true" >> $buffer
echo "##      alternative=false" >> $buffer
echo "# alternative=$alternative" >> $buffer
echo >> $buffer

echo "## should update-grub lock alternative automagic boot options" >> $buffer
echo "## e.g. lockalternative=true" >> $buffer
echo "##      lockalternative=false" >> $buffer
echo "# lockalternative=$lockalternative" >> $buffer
echo >> $buffer

echo "## additional options to use with the default boot option, but not with the" >> $buffer
echo "## alternatives" >> $buffer
echo "## e.g. defoptions=vga=791 resume=/dev/hda5" >> $buffer
echo "# defoptions=$defoptions" >> $buffer
echo >> $buffer

echo "## should update-grub lock old automagic boot options" >> $buffer
echo "## e.g. lockold=false" >> $buffer
echo "##      lockold=true" >> $buffer
echo "# lockold=$lockold" >> $buffer
echo >> $buffer

echo "## Xen hypervisor options to use with the default Xen boot option" >> $buffer
echo "# xenhopt=$xenhopt" >> $buffer
echo >> $buffer

echo "## Xen Linux kernel options to use with the default Xen boot option" >> $buffer
echo "# xenkopt=$xenkopt" >> $buffer
echo >> $buffer

echo "## altoption boot targets option" >> $buffer
echo "## multiple altoptions lines are allowed" >> $buffer
echo "## e.g. altoptions=(extra menu suffix) extra boot options" >> $buffer
echo "##      altoptions=(single-user) single" >> $buffer

if ! grep -q "^# altoptions" $menu ; then
echo "# altoptions=$altoptions" >> $buffer
else
grep "^# altoptions" $menu >> $buffer
fi
echo >> $buffer

echo "## controls how many kernels should be put into the $menu_file_basename" >> $buffer
echo "## only counts the first occurence of a kernel, not the" >> $buffer
echo "## alternative kernel options" >> $buffer
echo "## e.g. howmany=all" >> $buffer
echo "##      howmany=7" >> $buffer
echo "# howmany=$howmany" >> $buffer
echo >> $buffer


echo "## should update-grub create memtest86 boot option" >> $buffer
echo "## e.g. memtest86=true" >> $buffer
echo "##      memtest86=false" >> $buffer
echo "# memtest86=$memtest86" >> $buffer
echo >> $buffer

echo "## should update-grub adjust the value of the default booted system" >> $buffer
echo "## can be true or false" >> $buffer
echo "# updatedefaultentry=$updatedefaultentry" >> $buffer
echo >> $buffer

echo "## ## End Default Options ##" >> $buffer
echo >> $buffer

echo -n "Searching for splash image ... " >&2
current_splash=`grep '^splashimage=' ${menu_file} || true`
splashimage_path="splashimage=${grub_root_device}${grub_dir##${boot_device:+/boot}}/splash.xpm.gz"
if [ `sed -e "/^$start/,/^$end/d" $menu_file | grep -c '^splashimage='` != "0" ] ; then
       #checks for splashscreen defined outside the autoupdated part
       splashimage=$(grep '^splashimage=' ${menu_file})
       echo "found: ${splashimage##*=}" >&2
       echo >&2 
elif [ -f "${grub_dir}/splash.xpm.gz" ]  && [ "$current_splash" = "" ]; then
       echo "found: /boot/grub/splash.xpm.gz" >&2
       echo "$splashimage_path" >> $buffer
       echo >> $buffer
elif [ -f "${grub_dir}/splash.xpm.gz" ]  && [ "$current_splash" = "$splashimage_path" ]; then
       echo "found: /boot/grub/splash.xpm.gz" >&2
       echo "$splashimage_path" >> $buffer
       echo >> $buffer
elif [ "$current_splash" != "" ] && [ "$current_splash" != "$splashimage_path" ]; then
       echo "found but preserving previous setting: $(grep '^splashimage=' ${menu_file})" >&2
       echo "$current_splash" >> $buffer
       echo >> $buffer
else
       echo "none found, skipping ..." >&2
fi


xenKernels=""
for ver in `grep -l CONFIG_XEN_PRIVILEGED_GUEST=y /boot/config* | sed -e s%/boot/config-%%`; do
  # ver is a kernel version
  kern="/boot/vmlinuz-$ver"
  if [ -r $kern ] ; then
       newerKernels=""
       for i in $xenKernels ; do
                res=$(CompareVersions "$kern" "$i")
                if [ "$kern" != "" ] && [ "$res" -gt 0 ] ; then
                        newerKernels="$newerKernels $kern $i"
                        kern=""
                else
                        newerKernels="$newerKernels $i"
                fi
        done
        if [ "$kern" != "" ] ; then
                newerKernels="$newerKernels $kern"
        fi
        xenKernels="$newerKernels"
    fi
done

sortedKernels=""
for kern in $(/bin/ls -1vr /boot | grep -v "dpkg-*" | grep -v "xen" | grep "^vmlinuz-") ; do
# found a kernel
        if `echo "$xenKernels" | grep -q $kern` ; then
          continue
        fi
        # not a Xen kernel
        kern="/boot/$kern"
newerKernels=""
for i in $sortedKernels ; do
    res=$(CompareVersions "$kern" "$i")
    if [ "$kern" != "" ] && [ "$res" -gt 0 ] ; then
newerKernels="$newerKernels $kern $i"
kern=""
    else
newerKernels="$newerKernels $i"
    fi
done
if [ "$kern" != "" ] ; then
    newerKernels="$newerKernels $kern"
fi
sortedKernels="$newerKernels"
done

if test -f "/boot/vmlinuz.old" ; then
sortedKernels="/boot/vmlinuz.old $sortedKernels"
fi
if test -f "/boot/vmlinuz" ; then
sortedKernels="/boot/vmlinuz $sortedKernels"
fi

hypervisors=""
for hyp in /boot/xen-*.gz; do
    if [ ! -h "$hyp" ] && [ -f "$hyp" ]; then
hypervisors="$hypervisors `basename "$hyp"`"
    fi
done

# figure out where grub looks for the kernels at boot time
kernel_dir=/boot
if [ -n "$boot_device" ] ; then
kernel_dir=
fi

#Finding the value the default line
use_grub_set_default="false"
if test "$updatedefaultentry" = "true" ; then
defaultEntryNumber=$(sed -ne 's/^[[:blank:]]*default[[:blank:]]*\(.*\).*/\1/p' $menu)

if [ "$defaultEntryNumber" = "saved" ] ; then
    defaultEntryNumber=$(sed 'q' "$grub_dir/default")
    use_grub_set_default="true"    
fi

if test -n "$defaultEntryNumber"; then
defaultEntryNumberPlusOne=$(expr $defaultEntryNumber \+ 1);
defaultEntry=$(grep "^[[:blank:]]*title" $menu | sed -ne "${defaultEntryNumberPlusOne}p" | sed -ne ";s/^[[:blank:]]*title[[:blank:]]*//p")
defaultEntry=$(echo $defaultEntry | sed -e "s/[[:blank:]]*$//") # don't trust trailing blanks
else
notChangeDefault="yes"
fi
else
notChangeDefault="yes"
fi

case "$host_os" in
  freebsd|*/kfreebsd)
    if test -e /boot/loader.gz ; then
      kernel=/boot/loader.gz
    else
      kernel=/boot/loader
    fi
    write_kernel_entry "" "" "" "$grub_root_device" "$kernel" "" "" "" "true" ""
  ;;
esac

## heres where we start writing out the kernel entries
counter=0

# Xen entries first.
for hypervisor in $hypervisors; do
    hypVersion=`basename "$hypervisor" .gz | sed s%xen-%%`

    for kern in $xenKernels ; do
                if test ! x"$howmany" = x"all" ; then
                if [ $counter -gt $howmany ] ; then
                        break
                fi
fi
        kernelName=$(basename $kern)

        kernelVersion=$(echo $kernelName | sed -e 's/vmlinuz//')
        initrdName=$(FindInitrdName "/boot" "$kernelVersion")
        initrd=""

        kernel=$kernel_dir/$kernelName
        if [ -n "$initrdName" ] ; then
                    initrd=$kernel_dir/$initrdName
        fi

        echo "Found Xen hypervisor $hypVersion,  kernel: $kernel"

        kernelVersion=$(echo $kernelVersion | sed -e 's/^-//')
currentOpt=$(get_kernel_opt $kernelVersion)

write_kernel_entry "$kernelVersion" '' '' "$grub_root_device" \
  "$kernel" "$currentOpt $xenkopt" '' "$initrd" true '' \
  Xen "$kernel_dir/$hypervisor" "$hypVersion" "$xenhopt"
done
done

for kern in $sortedKernels ; do
counter=$(($counter + 1))
if test ! x"$howmany" = x"all" ; then
if [ $counter -gt $howmany ] ; then
break
fi
fi
kernelName=$(basename $kern)
kernelVersion=$(echo $kernelName | sed -e 's/vmlinuz//')
initrdName=$(FindInitrdName "/boot" "$kernelVersion")
initrd=""

kernel=$kernel_dir/$kernelName
if [ -n "$initrdName" ] ; then
initrd=$kernel_dir/$initrdName
fi

echo "Found kernel: $kernel" >&2

if [ "$kernelName" = "vmlinuz" ]; then
if [ -L "/boot/$kernelName" ]; then
kernelVersion=`readlink -f "/boot/$kernelName"`
kernelVersion=$(echo $kernelVersion | sed -e 's/.*vmlinuz-//')
kernelVersion="$kernelVersion Default"
else
kernelVersion="Default"
fi
fi
if [ "$kernelName" = "vmlinuz.old" ]; then
if [ -L "/boot/$kernelName" ]; then
kernelVersion=`readlink -f "/boot/$kernelName"`
kernelVersion=$(echo $kernelVersion | sed -e 's/.*vmlinuz-//')
kernelVersion="$kernelVersion Previous"
else
kernelVersion="Previous"
fi
fi
kernelVersion=$(echo $kernelVersion | sed -e 's/^-//')

currentOpt=$(get_kernel_opt $kernelVersion)

do_lockold=$lockold
# do not lockold for the first entry
[ $counter -eq 1 ] && do_lockold=false

write_kernel_entry "$kernelVersion" "" "" "$grub_root_device" "$kernel" \
"$currentOpt $defoptions" "" "$initrd" "true" "$do_lockold"

# insert the alternative boot options
if test ! x"$alternative" = x"false" ; then
# for each altoptions line do this stuff
sed -ne 's/# altoptions=\(.*\)/\1/p' $buffer | while read line; do
descr=$(echo $line | sed -ne 's/\(([^)]*)\)[[:space:]]\(.*\)/\1/p')
suffix=$(echo $line | sed -ne 's/\(([^)]*)\)[[:space:]]\(.*\)/\2/p')

test x"$lockalternative" = x"true" && do_lockold=false
write_kernel_entry "$kernelVersion" "$descr" "$lockalternative" \
"$grub_root_device" "$kernel" "$currentOpt" "$suffix" "$initrd" \
"true" "$do_lockold"

done
fi
done

   
memtest86names="memtest86 memtest86+"

if test ! x"$memtest86" = x"false" ; then
for name in $memtest86names ; do
if test -f "/boot/$name.bin" ; then
kernelVersion="$name"
kernel="$kernel_dir/$name.bin"
currentOpt=
initrd=

echo "Found kernel: $kernel" >&2

write_kernel_entry "$kernelVersion" "" "" "$grub_root_device" \
"$kernel" "$currentOpt" "" "$initrd" "false" ""
fi
done
fi

echo $end >> $buffer

echo -n "Updating $menu ... " >&2
# Insert the new options into the menu
if ! grep -q "^$start" $menu ; then
    cat $buffer >> $menu
    rm -f $buffer
else
    umask 077
    sed -e "/^$start/,/^$end/{
/^$start/r $buffer
d
}
" $menu > $menu.new
    cat $menu.new > $menu
    rm -f $buffer $menu.new
fi

# Function to update the default value
set_default_value() {
    if [ "$use_grub_set_default" = "true" ] ; then
grub-set-default $1
    else
value="$1"
newmenu=$(tempfile)
sed -e "s/^[[:blank:]]*default[[:blank:]]*[[:digit:]]*\(.*\)/default         ${value}\1/;b" $menu > $newmenu
cat $newmenu > $menu
rm -f $newmenu
unset newmenu
    fi
}

#Updating the default number
if test -z "$notChangeDefault"; then
newDefaultNumberPlusOne=$(grep "^[[:blank:]]*title[[:blank:]]*" $menu | grep -n "${defaultEntry}" | cut -f1 -d ":" | sed -ne "1p")
if test -z "$newDefaultNumberPlusOne"; then
echo "Previous default entry removed, resetting to 0">&2
set_default_value "0"
elif test -z "$defaultEntry"; then
echo "Value of default value matches no entry, resetting to 0" >&2
set_default_value "0"
else
if test "$newDefaultNumberPlusOne" = "1"; then
newDefaultNumber="0"
else
newDefaultNumber=$(expr $newDefaultNumberPlusOne - 1)
fi
echo "Updating the default booting kernel">&2
set_default_value "$newDefaultNumber"
fi
fi

echo "done" >&2
echo >&2

arrange

  • Závislák
  • ***
  • Příspěvků: 4031
  • "jdu s hlavou vztyčenou..."
Re: E: linux-image-2.6.24-23-generic: podproces vrátil chybový status 2
« Odpověď #13 kdy: 12 Května 2009, 21:05:03 »
No, paráda. Foukni -x do update-grub.real a znova sudo update-grub &> /tmp/test/dbg. Pošli ten dbg.
http://www.openstreetmap.org - mapy celého světa "wiki style"

vrsek

  • Návštěvník
  • Příspěvků: 12
Re: E: linux-image-2.6.24-23-generic: podproces vrátil chybový status 2
« Odpověď #14 kdy: 13 Května 2009, 12:53:29 »
vypis zde.

arrange

  • Závislák
  • ***
  • Příspěvků: 4031
  • "jdu s hlavou vztyčenou..."
Re: E: linux-image-2.6.24-23-generic: podproces vrátil chybový status 2
« Odpověď #15 kdy: 13 Května 2009, 22:22:40 »
Zajímavé... Díval jsem se na to zběžně, ale máš asi Debianní verzi update-grubu, protože na řádku 282 u Tebe vidím
Kód: [Vybrat]
title="Debian GNU/`uname -s | sed -e s,GNU/,,g`"
kdežto u mě
Kód: [Vybrat]
title=$(lsb_release --short --description 2>/dev/null) || title="Ubuntu"(řádek 390)

Co s tím?

Jestli Ti to kernel aktualizuje správně, pak bych se na to vykašlal a nechal to tak.
Nebo si ten název oprav přímo v update-grub (mělo by to být bezpečné - jedná se jen o název, ale nechce se mi v kódu hledat všechny příp. důsledky).
Nebo reinstaluj grub, měl by se Ti reinstalovat i ten soubor.
http://www.openstreetmap.org - mapy celého světa "wiki style"

 

Provoz zaštiťuje spolek OpenAlt.