If you put custom grub menu items into /etc/grub.d/40_custom it will get included when you run update-grub. Depending on your grub version or distro grub.cfg might default to /dev/ names that are not always reliable. Using LABELS or UUIDs tends to be more reliable IMO, since /dev/ names shift when you start adding more devices on more types of buses.
$ sudo blkid
file: /etc/fstab
Code:
/dev/sda1 / ext4 defaults,noatime 0 1
Code:
LABEL=11111111 / ext4 defaults,noatime 0 1
Code:
UUID=11111111-1111-1111-1111-111111111111 / ext4 defaults,noatime 0 1
Just different ways to say the same thing.
file: /etc/grub.d/40_custom
Code:
#!/bin/sh
exec tail -n +3 $0
# previous two lines from debian's default / original version of the file.
menuentry '40_custom, Linux 3.16.0-4-amd64' {
insmod part_msdos
insmod ext2
linux /boot/vmlinuz-3.16.0-4-amd64 root=UUID=11111111-1111-1111-1111-111111111111
initrd /boot/initrd.img-3.16.0-4-amd64
}
Although I haven't tested that entry. It's basically cut and past and simplified from what update-grub creates. All the things you would enter from grubs command line mode to boot the kernel.