You are not logged in.

#1 2014-02-11 00:14:55

badhat
Member
Registered: 2011-01-30
Posts: 112

Grub uses wrong UUID and cannot create config file

I've tried performing an installation to a USB drive as per the wiki. Everything works up until I try to boot and grub tries to load the wrong UUID for my / filesystem.
My next step was to chroot back into the USB install and manually change the UUID to the correct one. Odd, as others have pointed out in this thread
the grub-mkconfig command should detect the correct UUID if run from within arch-chroot.
Anyway, after changing the UUID in /boot/grub/grub.cfg and trying to regenerate the config file with `grub-mkconfig -o /boot/grub/grub.cfg` I noticed the file had not changed. This is because the command is exiting successfully, but isn't actually writing any file. I deleted the file and tried the command again to be sure. No new file.

Next I booted into grub, using the config generated with the wrong UUID, and dropped to the shell using `c` -- I was able to load my install just fine using

set root=(hd0,gpt2)
linux /vmlinuz-linux root=/dev/sdb3 ro
initrd /initramfs-linux.img
boot

From there I tried removing the bad config file and recreating it using the `grub-mkconfig -o /boot/grub/grub.cfg` command... no dice. Does anyone know what is going on? At the least the command should tell me that it is failing, no?

Offline

#2 2014-02-11 02:22:18

tzomatz
Member
Registered: 2013-07-05
Posts: 30

Re: Grub uses wrong UUID and cannot create config file

Try: grub-mkconfig >> /boot/grub(grub.cfg

Offline

#3 2014-02-11 02:37:48

progandy
Member
Registered: 2012-05-17
Posts: 5,211

Re: Grub uses wrong UUID and cannot create config file

If you cannot get the UUID to work, then you can try to manually set the label:
https://bbs.archlinux.org/viewtopic.php?id=172983


| alias CUTF='LANG=en_XX.UTF-8@POSIX ' |

Offline

#4 2014-02-11 02:51:03

badhat
Member
Registered: 2011-01-30
Posts: 112

Re: Grub uses wrong UUID and cannot create config file

Hm, redirecting the output of `grub-mkconfig` will work, but that doesn't explain why the command itself does not work. It makes me wonder if the current package is broken. When I generate the ouput to stdout it does not contain any UUID.
As for the labels, that's also going to fail since the output from `grub-mkconfig` is not what it should be, so any changes I make won't be incorporated when it generates the new config file. Even if this would work it is not a solution to the problem at hand.
Thanks, both, for the suggestions. Luckily I still have another system to boot in the meanwhile.

Offline

#5 2014-02-11 02:56:17

badhat
Member
Registered: 2011-01-30
Posts: 112

Re: Grub uses wrong UUID and cannot create config file

Attached is the output of `grub-mkconfig` running from the chroot.

root@myhost# grub-mkconfig 
Generating grub configuration file ...
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
insmod part_gpt
insmod part_msdos
if [ -s $prefix/grubenv ]; then
  load_env
fi
if [ "${next_entry}" ] ; then
   set default="${next_entry}"
   set next_entry=
   save_env next_entry
   set boot_once=true
else
   set default="0"
fi

if [ x"${feature_menuentry_id}" = xy ]; then
  menuentry_id_option="--id"
else
  menuentry_id_option=""
fi

export menuentry_id_option

if [ "${prev_saved_entry}" ]; then
  set saved_entry="${prev_saved_entry}"
  save_env saved_entry
  set prev_saved_entry=
  save_env prev_saved_entry
  set boot_once=true
fi

function savedefault {
  if [ -z "${boot_once}" ]; then
    saved_entry="${chosen}"
    save_env saved_entry
  fi
}

function load_video {
  if [ x$feature_all_video_module = xy ]; then
    insmod all_video
  else
    insmod efi_gop
    insmod efi_uga
    insmod ieee1275_fb
    insmod vbe
    insmod vga
    insmod video_bochs
    insmod video_cirrus
  fi
}

if loadfont unicode ; then
  set gfxmode=auto
  load_video
  insmod gfxterm
  set locale_dir=$prefix/locale
  set lang=en_US
  insmod gettext
fi
terminal_input console
terminal_output gfxterm
if [ x$feature_timeout_style = xy ] ; then
  set timeout_style=menu
  set timeout=5
# Fallback normal timeout code in case the timeout_style feature is
# unavailable.
else
  set timeout=5
fi
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/10_archlinux ###

Offline

#6 2014-02-11 15:32:11

tzomatz
Member
Registered: 2013-07-05
Posts: 30

Re: Grub uses wrong UUID and cannot create config file

Well, I always have problems with grub-mkconfig. Never works as it should, and it has been that way for maybe a year now. However, when i direct the output of the command to the file it seems to work. I do get more Archlinux entries than it is supposed to be. I got three when I installed, one of my freinds got five. So, something is obviously wrong but I have no idea.

Offline

#7 2014-02-11 18:14:13

badhat
Member
Registered: 2011-01-30
Posts: 112

Re: Grub uses wrong UUID and cannot create config file

Yeah, grub was ok when I used it but it's been about two years now that I've been using the EFISTUB. In my case the config generated by running `grub-mkconfig` does not include my drive UUID at all (see post #5), so redirect the output is not a solution.
Since the mirror status for my preferred mirror is up to date (https://www.archlinux.org/mirrors/status/) I'm likely to try rebuilding grub next to see if there's a build problem. Failing that and no other suggestions from the community I'll probably try out syslinux.

Offline

#8 2014-02-14 14:57:10

badhat
Member
Registered: 2011-01-30
Posts: 112

Re: Grub uses wrong UUID and cannot create config file

I skipped the manual build and went for syslinux.

Offline

Board footer

Powered by FluxBB