Nieuws:

Ubuntu-NL weer online!

Na een periode van technische problemen en een overbelaste server zijn we eindelijk weer bereikbaar.
Samen met Hobbynet, onze sponsor en hostingpartner, hebben we een oplossing gevonden zodat alles weer soepel draait.

Bedankt voor jullie geduld en begrip. We hopen nu weer verder te gaan waar we gebleven waren.

Het team van Ubuntu-NL

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: Grub2 error  (gelezen 701 keer)

Offline TopGear

  • Forumteam
Grub2 error
« Gepost op: 2009/11/08, 10:27:43 »
Bij mijn zusje draait nu met gemak 9.10. Nu is het probleem dat de Grub2 steeds een error geeft:
Error: No such device, en dan heel veel cijfers.

Ik kan wel gewoon booten als ik bij de boot optie van Ubuntu de volgende regel verwijder:
search --no-floppy --fs-uuid --set 3173e51e-11a2-4660-B278-f996ea32afee
Hoe kan ik er voor zorgen dat alles gewoon werkt?

Offline TopGear

  • Forumteam
Re: Grub2 error
« Reactie #1 Gepost op: 2009/11/08, 11:35:53 »
Ik denk zelf dat er iets fout staat in de Grub. Maar zelf heb ik GEEN verstand van GRUB 2.

Offline TopGear

  • Forumteam
Re: Grub2 error
« Reactie #2 Gepost op: 2009/11/08, 12:14:32 »
Met https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/403408 schiet ik niets op!

Mijn grub-mkconfig_lib:
# Helper library for grub-mkconfig
# Copyright (C) 2007,2008,2009  Free Software Foundation, Inc.
#
# GRUB 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 3 of the License, or
# (at your option) any later version.
#
# GRUB 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 GRUB.  If not, see <http://www.gnu.org/licenses/>.

transform="s,x,x,"

prefix=/usr
exec_prefix=${prefix}
datarootdir=${prefix}/share
datadir=${datarootdir}
sbindir=${exec_prefix}/sbin
pkgdatadir=${datadir}/`echo grub | sed "${transform}"`

grub_probe=${sbindir}/`echo grub-probe | sed ${transform}`

grub_warn ()
{
  echo "Warning: $@" >&2
}

make_system_path_relative_to_its_root ()
{
  path=$1
  # abort if file doesn't exist
  if test -e $path ; then : ;else
    return 1
  fi

  # canonicalize
  if path=`readlink -f $path` ; then : ; else
    return 1
  fi

  # if not a directory, climb up to the directory containing it
  if test -d $path ; then
    dir=$path
  else
    dir=`echo $path | sed -e "s,/[^/]*$,,g"`
  fi

  num=`stat -c %d $dir`

  # this loop sets $dir to the root directory of the filesystem we're inspecting
  while : ; do
    parent=`readlink -f $dir/..`
    if [ "x`stat -c %d $parent`" = "x$num" ] ; then : ; else
      # $parent is another filesystem; we found it.
      break
    fi
    if [ "x$dir" = "x/" ] ; then
      # / is our root.
      break
    fi
    dir=$parent
  done

  # This function never prints trailing slashes (so that its output can be
  # appended a slash unconditionally).  Each slash in $dir is considered a
  # preceding slash, and therefore the root directory is an empty string.
  if [ "$dir" = "/" ] ; then
    dir=""
  fi

  # XXX: This fails if $dir contains ','.
  path=`echo "$path" | sed -e "s,^$dir,,g"` || return 1

  case "`uname 2>/dev/null`" in
    CYGWIN*)
      # Cygwin: Check if regular or emulated mount.
      if [ -z "$dir" ] || [ "`stat -c %D "$dir/.."`" != 620000 ] ; then
        # Reached some mount point not below /cygdrive.
        # GRUB does not know Cygwin's emulated mounts,
        # convert to Win32 path and remove drive letter.
        path=`cygpath -m "$path" | sed -n 's,^[A-Za-z]:,,p'`
        test ! -z "$path" || return 1
      fi ;;
  esac

  echo "$path"
}

is_path_readable_by_grub ()
{
  path=$1

  # abort if path doesn't exist
  if test -e $path ; then : ;else
    return 1
  fi

  # abort if file is in a filesystem we can't read
  if ${grub_probe} -t fs $path > /dev/null 2>&1 ; then : ; else
    return 1
  fi

  return 0
}

convert_system_path_to_grub_path ()
{
  path=$1

  grub_warn "convert_system_path_to_grub_path() is deprecated.  Use prepare_grub_to_access_device() instead."

  # abort if GRUB can't access the path
  if is_path_readable_by_grub ${path} ; then : ; else
    return 1
  fi

  if drive=`${grub_probe} -t drive $path` ; then : ; else
    return 1
  fi

  if relative_path=`make_system_path_relative_to_its_root $path` ; then : ; else
    return 1
  fi

  echo ${drive}${relative_path}
}

save_default_entry ()
{
  if [ "x${GRUB_DEFAULT}" = "xsaved" ] ; then
    echo 'saved_entry=${chosen}'
    echo 'save_env saved_entry'
  fi
}

prepare_grub_to_access_device ()
{
  device=$1

  loop_file=
  case ${device} in
    /dev/loop/*|/dev/loop[0-9])
      loop_file=`losetup ${device} | sed -e "s/^[^(]*(\([^)]\+\)).*/\1/"`
      case $loop_file in
        /dev/*) ;;
        *)
          loop_device=${device}
          device=`${grub_probe} --target=device "${loop_file}"`
        ;;
      esac
    ;;
  esac

  # Abstraction modules aren't auto-loaded.
  abstraction="`${grub_probe} --device ${device} --target=abstraction`"
  for module in ${abstraction} ; do
    echo "insmod ${module}"
  done

  fs="`${grub_probe} --device ${device} --target=fs`"
  for module in ${fs} ; do
    echo "insmod ${module}"
  done

  # If there's a filesystem UUID that GRUB is capable of identifying, use it;
  # otherwise set root as per value in device.map.
  echo "set root=`${grub_probe} --device ${device} --target=drive`"
  if fs_uuid="`${grub_probe} --device ${device} --target=fs_uuid 2> /dev/null`" ; then
    echo ""
  fi

  if [ "x${loop_file}" != x ]; then
    loop_mountpoint="$(awk '"'${loop_file}'" ~ "^"$2 && $2 != "/" { print $2 }' /proc/mounts | tail -n1)"
    if [ "x${loop_mountpoint}" != x ]; then
      echo "loopback loop0 ${loop_file#$loop_mountpoint}"
      echo "set root=(loop0)"
    fi
  fi
}

grub_file_is_not_garbage ()
{
  if test -f "$1" ; then
    case "$1" in
      *.dpkg-*) return 1 ;; # debian dpkg
    esac
  else
    return 1
  fi
  return 0
}

version_test_numeric ()
{
  local a=$1
  local cmp=$2
  local b=$3
  if [ "$a" = "$b" ] ; then
    case $cmp in
      ge|eq|le) return 0 ;;
      gt|lt) return 1 ;;
    esac
  fi
  if [ "$cmp" = "lt" ] ; then
    c=$a
    a=$b
    b=$c
  fi
  if (echo $a ; echo $b) | sort -n | head -n 1 | grep -qx $b ; then
    return 0
  else
    return 1
  fi
}

version_test_gt ()
{
  local a=`echo $1 | sed -e "s/[^-]*-//;s/[._-]\(pre\|rc\|test\|git\|old\)/~\1/g"`
  local b=`echo $2 | sed -e "s/[^-]*-//;s/[._-]\(pre\|rc\|test\|git\|old\)/~\1/g"`
  local cmp=gt
  if [ "x$b" = "x" ] ; then
    return 0
  fi
  case $a:$b in
    *.old:*.old) ;;
    *.old:*) a=`echo -n $a | sed -e s/\.old$//` ; cmp=gt ;;
    *:*.old) b=`echo -n $b | sed -e s/\.old$//` ; cmp=ge ;;
  esac
  dpkg --compare-versions "$a" $cmp "$b"
  return $?
}

version_find_latest ()
{
  local a=""
  for i in $@ ; do
    if version_test_gt "$i" "$a" ; then
      a="$i"
    fi
  done
  echo "$a"
}


Na de installatie van startup manager geen problemen meer. Het enige is dat hij een random heeft:
Boot1: Wel grub laten zien
Boot2: Ubuntu wordt direct geboot zonder bekijks op de grub
Boot3: Wel grub laten zien
Boot4: Ubuntu wordt direct geboot zonder bekijks op de grub
« Laatst bewerkt op: 2009/11/08, 12:37:03 door TopGear »

Offline TopGear

  • Forumteam
Re: Grub2 error
« Reactie #3 Gepost op: 2009/11/08, 13:10:29 »
Ik krijg ff een resolutie error, en dan verder geen grub meer nu. Hij boot direct in 9.10?!

TROEP die Grub2! SERIEUS!