19

I updated my linux machine (dist-upgrade) and the linux-headers were updated. Suddenly the Windows option in GRUB was gone (booting parallel). This was solved by issuing "update-grub" everything works fine now.

Question: I have the command update-grub and update-grub2. Whats the difference? If Grub2 is installed, why is there an update-grub command which I presume is grub 1?

1
  • Did you try man update-grub? man update-grub2? They are the same, and both are calls to grub-mkconfig
    – waltinator
    Mar 26, 2015 at 21:55

1 Answer 1

22

Many years ago, GRUB1 was still a thing. When GRUB2 came along, it needed various commands but because GRUB1 was still the main system in use, there needed to be a way to differentiate the utilities, meaning a load of ...2-style commands were created.

After the transition, people were still using both commands (for the same jobs), therefore to stop people's scripts breaking, they were just linked together. You can see that:

$ file $(which update-grub{,2})
/usr/sbin/update-grub:  POSIX shell script, ASCII text executable
/usr/sbin/update-grub2: symbolic link to `update-grub'

Note that symlinking commands together doesn't always mean something does the same thing (an application can read what command was run) but if you look at the source of update-grub, you can see this isn't the case here. They do exactly the same thing.

2
  • 1
    Hi Oli, can you explain what update-grub{,2} does?
    – Steven
    Mar 2, 2015 at 19:28
  • 3
    @Steven Bash expands it into update-grub update-grub2. It's just a little shorthand to pass two full paths to file.
    – Oli
    Mar 2, 2015 at 20:05

Not the answer you're looking for? Browse other questions tagged or ask your own question.