Tuesday, March 20, 2012

Call out for grub:2 testing

I recently started working on the sys-boot/grub package for Gentoo. The upstream project is preparing to release version 2.00, which is currently in beta.

If you are feeling adventurous, please give the new version of GRUB a try and report any bugs you find on bugs.gentoo.org. Keep a livecd handy; it is very possible to break your system.

There is a minimal guide on the Gentoo wiki, and a more in-depth page that could use some editor's love an care.

Additional documentation is available through Google or by running "info grub2" from your terminal.

26 comments:

  1. I really love Grub 1, but even if Grub 2 has some welcomed additions, I find it too complicated compared to Grub 1.

    ReplyDelete
  2. After beta1 which rendered my system unbootable ( https://bugs.gentoo.org/show_bug.cgi?id=407393 )I'm a little bit cautious with the new betas ;)
    May be soon i'll give a try to beta2 ;)

    ReplyDelete
    Replies
    1. I hear you.

      For what it's worth, I do test each release on my own workstation before I commit it. I can't catch everything though.

      Delete
  3. Just tried sys-boot/grub-2.00_beta2-r1, works fine so far with one exception: after issuing 'grub2-mkconfig -o /boot/grub2/grub.cfg' grub menu shows only 'GNU/Linux' and 'advanced options' with no kernel version ;)

    EDIT: Never mind, just found out that this is actually a feature :D

    ReplyDelete
    Replies
    1. Hello,

      This beta1 was a disaster for me too. I am now using syslinux/extlinux which is really simple to configure (I used it through SystemRescueCD).

      So, sorry guys, I won't help you for GRUB2.

      Xavier.

      Delete
  4. I've been running Grub2 without problems for a couple of months now (I think about half a year). Before that I had issues with configuring it, and thought it was because of Grub, but it turned out I had confused my hard-drive setup with my old one that I had 4 years ago =)

    I think it's working great! One thing that could be clearer though is that you need an initrd-image to use LABEL when pointing out root disk and when booting your kernel.

    ReplyDelete
    Replies
    1. GRUB itself is capable of locating a file system using labels or UUIDs.

      The initramfs is required to allow the Linux kernel to properly interpret labels and UUIDs. If you don't have an initramfs, grub-mkconfig should fall back to using device node syntax (root=/dev/sda1).

      Delete
    2. But grub2 can locate "root=PARTUUID=" without an initramfs, that's why i posted this enhancement bug/request: https://bugs.gentoo.org/show_bug.cgi?id=403223
      Fixing this does not require change in to grub source itself (that part is already done), it requires change in to grub's configs and scripts only. ;)

      Delete
    3. Thanks for pointing that out; I missed that bug report as it was filed before I started working on grub.

      I think the idea is sound.

      The scripts and config files are shipped by upstream. The community would be better served if this were implemented by them.

      Delete
  5. I've been using GRUB 2 for a looong time now. The main thing you need to know is that GRUB 2 is better, but is completely different from GRUB 1 regarding configurations, hence many people will call it "worse". Unfortunately.

    ReplyDelete
    Replies
    1. Right. The added flexibility brings added complexity.

      That's why grub-mkconfig was created; so people with normal setups can have it "just work".

      Delete
    2. The name is misleading, it should be BURG or something else.GRUB-1 and GRUB-2 does not share anything except the name, and that is the main source of confusion ;)

      Delete
  6. Testing report: success! Switching to grub2 was even easier than I could have imagined. Only thing I had to change was my kernel's filename as I have used kernel.current and kernel.previous as long as I can remember (yes I know I could have changed scripts but didn't bother :)). Moving kernel boot parameters to /etc/default/grub was quite straight-forward. My system is a simple non-efi gentoo on /dev/sda without separate boot. /dev/sdb has windows 7 and grub2-mkconfig found it just fine.

    ReplyDelete
  7. I've been running GRUB2 (well, technically, GRUB ~1.99) for well over a year and have never had any problems. I update regularly every few months. You guys are doing great! Keep up the excellent work :)

    ReplyDelete
  8. Been running ~1.99 for a while and just tried this latest update. Working fine here, though it's a fairly ordinary setup.

    ReplyDelete
  9. I'm gonna give it a try, albeit GRUB1 works just fine for me ;)

    As a side note - why the GRUB2 depends on libisoburn and related stuff?

    ReplyDelete
    Replies
    1. grub2-mkrescue can be used to create a rescue CD; it uses xorriso from libisoburn to do this.

      Delete
  10. I use it since 2 years. No problems rightn now, except grub-mkconfig.
    It don't allow me to use one universal initrd for all kernels.
    But there is simple solution, boot-update from funtoo.

    ReplyDelete
    Replies
    1. I create symlinks for that but it is a little tedious.

      Delete
  11. I have actually not used Grub 0.97 on any of my current Gentoo machines, so I guess I have been using it for about 4 years. It was a real pain before Gentoo had an ebuild but you guys long ago addressed that issue. And I'm not about to complain about that time interval because I could not write an ebuild from scratch to save my life.

    One issue I had run into was, a few months ago, I started getting several error messages every boot after an upgrade in the 1.99 series. After the transition to 2.0beta I did a grub2-install and that fixed the problem. I never investigated it beyond noticing the fact since my system still booted without any further issues. And it may have worked with the 1.99 series as well, I just did not try it.

    Finally, the only current issue I have is that the scripts in /etc/grub.d don't recognize my initd files (I use genkernel, and it sticks -x86- or -x86_64- in the middle of the initd file names so grub2-mkconfig does not find them. It's a simple edit to /etc/grub.d/10_linux after each etc-update, but it would be nice if it worked out of the box...

    ReplyDelete
  12. A year ago I got grub2 working but had to customize the resulting grub.cfg file so it would not update correctly. This time I thought I would let grub2-mkconfig do the work. This and grub2-install gave no errors, but would not boot giving a error about not finding a root device. My boot is /dev/sda1 and root is /dev/md3 (raid 1 mirror). The kernel is 3.3.0 compiled with genkernel with no changes to the options except --mdadm. I read the section on booting from raid but didn't apply it as /boot is not raid in this case. Any suggestions?

    ReplyDelete
    Replies
    1. Please do not report bugs on my blog. :)

      Delete
  13. Now if you can fix genkernel to automagically add to grub2's configuration files, life will be brilliant ;)

    ReplyDelete
  14. I've been using GRUB2 1.99-r2 for quite some time, and all its files are installed in /boot/grub/, but I am having a terrible time trying to get GRUB2 2.00_beta6 to work: it refuses to look in /boot/grub2/ and continues to look in /boot/grub/ for core.img and grub.cfg. Not only that, but the command:

    grub2-install --boot-directory=/boot/ --force /dev/sda3

    appears to write to the boot sector of sda3, but it still ends up being version 1.99 code and still vectors to /boot/grub/core.img instead of /boot/grub2/i386-pc/core.img

    Full details, including contents of sda3 boot sector and commands used, are given in the thread:

    http://forums.gentoo.org/viewtopic-t-927100.html

    Any suggestions?

    ReplyDelete
    Replies
    1. Further to my previous post, the problem is a result of the Windows BCD entry created by EasyBCD version 2.1.2, and is not a problem with grub-2.00_beta6 itself. If you specify 'GRUB2' to EasyBCD, it creates a BCD entry by searching for the file core.img in the sub-directories in /boot/. EasyBCD looks in /boot/grub/ before /boot/grub2/, so, if the former has a core.img file, it will point to that. The workaround is to tell EasyBCD to create and entry for GRUB Legacy. The BCD entry will then point to the boot sector of the partition you specified and the GRUB 2 code in the boot sector will then run /boot/grub2/i386-pc/core.img. See the aforementioned thread for details. The EasyBCD developer is going to update EasyBCD to make it look for core.img in /boot/grub2/ first before it looks in /boot/grub/ if both exist.

      Delete
  15. I am probably the last man, which has updated to grub-2.00;-)

    It's was very easy to update for me, so thank you for the work done on bringing the grub2 to gentoo!!!

    I have additionally tweaked a little bit and my upgrading experiences can be found here: http://ewgeny.wordpress.com/2012/07/04/updating-boot-loader-to-the-stable-grub-2-00/

    ReplyDelete