This article hasn't been updated for over 5 years. The information below may be obsolete.

update-grub: password_pbkdf2 not found

The error "password_pbkdf2 not found" usually indicates that you've placed your grub password configuration inside any of the automatic system files in /etc/grub.d like 00_header instead of the correct custom configuration file 40_custom.

$ sudo update-grub
[...]
/etc/grub.d/00_header :274 /etc/grub.d/00_header password_pbkdf2 not found

This is also true if you create a your own configuration file. You'll get the same error:

$ cat /etc/grub.d/99_superusers
set superusers="your_username"
password_pbkdf2 your_username grub.pbkdf2.sha512.10000.YOUR_HASH_HERE
$ sudo update-grub
/etc/grub.d/99_superusers: 2: password_pbkdf2: not found

Applying grub password configuration must go into the /etc/grub.d/40_custom file

To resolve simply perform:

  1. Remove the grub password configuration from the non-standard custom file.
  2. Open the correct custom configuration file /etc/grub.d/40_custom using a text editor
  3. Add your superuser and hashed password lines properly at the end of the file:
    superusers="your_username"
    password_pbkdf2 your_username grub.pbkdf2.sha512.10000.YOUR_HASH_HERE
  4. Save the file and exit your text editor.
  5. Update your GRUB configuration:
    1. On Ubuntu/Debian:
      $ sudo update-grub
    2. On Fedora/RHEL/openSUSE:
      $ sudo grub2-mkconfig -o /boot/grub2/grub.cfg
NOTE: Remember the correct file to edit is 40_custom simply because other files such as grub.cfg or even 00_header are updated automatically by the system in certain circumstances, and you would lose your changes.