Upgrading Lubuntu 16.04 => 18.04 , using do-release-upgrade , cannot remove linux-image-4.4.x due to dpkg error

after upgrade everything seems fine , except when i want to update/upgrade/install packages , dpkg fails to remove old unused kernels.

after running sudo apt upgrade the following error happens:

The following packages will be REMOVED:
  linux-image-4.4.0-210-generic
The following packages have been kept back:
  gimp-gmic php-curl
0 upgraded, 0 newly installed, 1 to remove and 2 not upgraded.
9 not fully installed or removed.
Need to get 0 B/8,021 kB of archives.
After this operation, 7,255 kB disk space will be freed.
Do you want to continue? [Y/n] y
(Reading database ... 599373 files and directories currently installed.)
Removing linux-image-4.4.0-210-generic (4.4.0-210.242) ...
/etc/kernel/postrm.d/initramfs-tools:
update-initramfs: Deleting /boot/initrd.img-4.4.0-210-generic
/etc/kernel/postrm.d/zz-update-grub:
Sourcing file `/etc/default/grub'
/usr/sbin/grub-mkconfig: 11: /etc/default/grub: 2012: not found
run-parts: /etc/kernel/postrm.d/zz-update-grub exited with return code 127

dpkg: error processing package linux-image-4.4.0-210-generic (--remove):
 installed linux-image-4.4.0-210-generic package post-removal script subprocess returned error exit status 1
Errors were encountered while processing:
 linux-image-4.4.0-210-generic
E: Sub-process /usr/bin/dpkg returned an error code (1)

EDIT 1: after using @N0rbert solution , i think kernel is upgraded correctly , and now CLI upgrade just crashes and show's no error , and update-manager show's the following error , should i force install?

enter image description here

EDIT 2 : thanks to @guiverc comment, because of extensive changes in 18.04 and above , a fresh install is suggested by Lubuntu team . i will install 20.04 .


Solution 1:

You have to replace this /etc/default/grub configuration file with default contents using single long command below:

cat <<\EOF | sudo tee /etc/default/grub
# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
#   info -f grub -n 'Simple configuration'

GRUB_DEFAULT=0
GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"

# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480

# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"

# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"
EOF

and then resume package upgrade on current Ubuntu version by running sudo update-grub followed by sudo apt-get dist-upgrade.

Then reboot and use update-manager -c or sudo do-release-upgrade to upgrade to next Ubuntu version (probably 18.04 LTS). Repeat the procedure to upgrade 18.04 LTS to 20.04 LTS.