1

I'm here to ask help because since each time I do a system update I get errors on the terminal and it is impossible for me to update the kernel to more recent versions.

Here I post the output of the command "sudo apt-get update":

Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages will be REMOVED:
  linux-image-3.2.0-37-generic linux-image-3.2.0-48-generic linux-image-3.2.0-51-generic linux-image-3.2.0-52-generic
0 upgraded, 0 newly installed, 4 to remove and 0 not upgraded.
6 not fully installed or removed.
After this operation, 599 MB disk space will be freed.
Do you want to continue [Y/n]? Y
(Reading database ... 313423 files and directories currently installed.)
Removing linux-image-3.2.0-37-generic ...
Examining /etc/kernel/postrm.d .
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 3.2.0-37-generic /boot/vmlinuz-3.2.0-37-generic
update-initramfs: Deleting /boot/initrd.img-3.2.0-37-generic
run-parts: executing /etc/kernel/postrm.d/zz-update-grub 3.2.0-37-generic /boot/vmlinuz-3.2.0-37-generic
Generating grub.cfg ...
/etc/grub.d/00_header: 148: /etc/grub.d/00_header: Syntax error: Missing '}'
run-parts: /etc/kernel/postrm.d/zz-update-grub exited with return code 2
Failed to process /etc/kernel/postrm.d at /var/lib/dpkg/info/linux-image-3.2.0-37-generic.postrm line 328.
dpkg: error processing linux-image-3.2.0-37-generic (--remove):
 subprocess installed post-removal script returned error exit status 1
Removing linux-image-3.2.0-48-generic ...
Examining /etc/kernel/postrm.d .
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 3.2.0-48-generic /boot/vmlinuz-3.2.0-48-generic
update-initramfs: Deleting /boot/initrd.img-3.2.0-48-generic
run-parts: executing /etc/kernel/postrm.d/zz-update-grub 3.2.0-48-generic /boot/vmlinuz-3.2.0-48-generic
Generating grub.cfg ...
/etc/grub.d/00_header: 148: /etc/grub.d/00_header: Syntax error: Missing '}'
run-parts: /etc/kernel/postrm.d/zz-update-grub exited with return code 2
Failed to process /etc/kernel/postrm.d at /var/lib/dpkg/info/linux-image-3.2.0-48-generic.postrm line 328.
dpkg: error processing linux-image-3.2.0-48-generic (--remove):
 subprocess installed post-removal script returned error exit status 1
Removing linux-image-3.2.0-51-generic ...
Examining /etc/kernel/postrm.d .
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 3.2.0-51-generic /boot/vmlinuz-3.2.0-51-generic
update-initramfs: Deleting /boot/initrd.img-3.2.0-51-generic
run-parts: executing /etc/kernel/postrm.d/zz-update-grub 3.2.0-51-generic /boot/vmlinuz-3.2.0-51-generic
Generating grub.cfg ...
/etc/grub.d/00_header: 148: /etc/grub.d/00_header: Syntax error: Missing '}'
run-parts: /etc/kernel/postrm.d/zz-update-grub exited with return code 2
Failed to process /etc/kernel/postrm.d at /var/lib/dpkg/info/linux-image-3.2.0-51-generic.postrm line 328.
dpkg: error processing linux-image-3.2.0-51-generic (--remove):
 subprocess installed post-removal script returned error exit status 1
Removing linux-image-3.2.0-52-generic ...
Examining /etc/kernel/postrm.d .
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 3.2.0-52-generic /boot/vmlinuz-3.2.0-52-generic
update-initramfs: Deleting /boot/initrd.img-3.2.0-52-generic
run-parts: executing /etc/kernel/postrm.d/zz-update-grub 3.2.0-52-generic /boot/vmlinuz-3.2.0-52-generic
Generating grub.cfg ...
/etc/grub.d/00_header: 148: /etc/grub.d/00_header: Syntax error: Missing '}'
run-parts: /etc/kernel/postrm.d/zz-update-grub exited with return code 2
Failed to process /etc/kernel/postrm.d at /var/lib/dpkg/info/linux-image-3.2.0-52-generic.postrm line 328.
dpkg: error processing linux-image-3.2.0-52-generic (--remove):
 subprocess installed post-removal script returned error exit status 1
No apport report written because MaxReports is reached already
                                                              Errors were encountered while processing:
 linux-image-3.2.0-37-generic
 linux-image-3.2.0-48-generic
 linux-image-3.2.0-51-generic
 linux-image-3.2.0-52-generic
E: Sub-process /usr/bin/dpkg returned an error code (1)

I tried also to remove the kernels that i'm not currently using, actually i'm using kernel 3.2.0-49-generic. Her follows the output of the command "sudo apt-get purge linux-image-3.2.0-37-generic linux-image-3.2.0-48-generic linux-image-3.2.0-51-generic linux-image-3.2.0-52-generic":

Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages will be REMOVED:
  linux-image-3.2.0-37-generic linux-image-3.2.0-48-generic linux-image-3.2.0-51-generic linux-image-3.2.0-52-generic
0 upgraded, 0 newly installed, 4 to remove and 0 not upgraded.
6 not fully installed or removed.
After this operation, 599 MB disk space will be freed.
Do you want to continue [Y/n]? Y
(Reading database ... 313423 files and directories currently installed.)
Removing linux-image-3.2.0-37-generic ...
Examining /etc/kernel/postrm.d .
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 3.2.0-37-generic /boot/vmlinuz-3.2.0-37-generic
update-initramfs: Deleting /boot/initrd.img-3.2.0-37-generic
run-parts: executing /etc/kernel/postrm.d/zz-update-grub 3.2.0-37-generic /boot/vmlinuz-3.2.0-37-generic
Generating grub.cfg ...
/etc/grub.d/00_header: 148: /etc/grub.d/00_header: Syntax error: Missing '}'
run-parts: /etc/kernel/postrm.d/zz-update-grub exited with return code 2
Failed to process /etc/kernel/postrm.d at /var/lib/dpkg/info/linux-image-3.2.0-37-generic.postrm line 328.
dpkg: error processing linux-image-3.2.0-37-generic (--remove):
 subprocess installed post-removal script returned error exit status 1
Removing linux-image-3.2.0-48-generic ...
Examining /etc/kernel/postrm.d .
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 3.2.0-48-generic /boot/vmlinuz-3.2.0-48-generic
update-initramfs: Deleting /boot/initrd.img-3.2.0-48-generic
run-parts: executing /etc/kernel/postrm.d/zz-update-grub 3.2.0-48-generic /boot/vmlinuz-3.2.0-48-generic
Generating grub.cfg ...
/etc/grub.d/00_header: 148: /etc/grub.d/00_header: Syntax error: Missing '}'
run-parts: /etc/kernel/postrm.d/zz-update-grub exited with return code 2
Failed to process /etc/kernel/postrm.d at /var/lib/dpkg/info/linux-image-3.2.0-48-generic.postrm line 328.
dpkg: error processing linux-image-3.2.0-48-generic (--remove):
 subprocess installed post-removal script returned error exit status 1
Removing linux-image-3.2.0-51-generic ...
Examining /etc/kernel/postrm.d .
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 3.2.0-51-generic /boot/vmlinuz-3.2.0-51-generic
update-initramfs: Deleting /boot/initrd.img-3.2.0-51-generic
run-parts: executing /etc/kernel/postrm.d/zz-update-grub 3.2.0-51-generic /boot/vmlinuz-3.2.0-51-generic
Generating grub.cfg ...
/etc/grub.d/00_header: 148: /etc/grub.d/00_header: Syntax error: Missing '}'
run-parts: /etc/kernel/postrm.d/zz-update-grub exited with return code 2
Failed to process /etc/kernel/postrm.d at /var/lib/dpkg/info/linux-image-3.2.0-51-generic.postrm line 328.
dpkg: error processing linux-image-3.2.0-51-generic (--remove):
 subprocess installed post-removal script returned error exit status 1
Removing linux-image-3.2.0-52-generic ...
Examining /etc/kernel/postrm.d .
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 3.2.0-52-generic /boot/vmlinuz-3.2.0-52-generic
update-initramfs: Deleting /boot/initrd.img-3.2.0-52-generic
run-parts: executing /etc/kernel/postrm.d/zz-update-grub 3.2.0-52-generic /boot/vmlinuz-3.2.0-52-generic
Generating grub.cfg ...
/etc/grub.d/00_header: 148: /etc/grub.d/00_header: Syntax error: Missing '}'
run-parts: /etc/kernel/postrm.d/zz-update-grub exited with return code 2
Failed to process /etc/kernel/postrm.d at /var/lib/dpkg/info/linux-image-3.2.0-52-generic.postrm line 328.
dpkg: error processing linux-image-3.2.0-52-generic (--remove):
 subprocess installed post-removal script returned error exit status 1
No apport report written because MaxReports is reached already
                                                              Errors were encountered while processing:
 linux-image-3.2.0-37-generic
 linux-image-3.2.0-48-generic
 linux-image-3.2.0-51-generic
 linux-image-3.2.0-52-generic
E: Sub-process /usr/bin/dpkg returned an error code (1)

After that, launching the command "dpkg --list | grep linux-image", I get:

rH  linux-image-3.2.0-37-generic             3.2.0-37.58                                         Linux kernel image for version 3.2.0 on 64 bit x86 SMP
rH  linux-image-3.2.0-48-generic             3.2.0-48.74                                         Linux kernel image for version 3.2.0 on 64 bit x86 SMP
ii  linux-image-3.2.0-49-generic             3.2.0-49.75                                         Linux kernel image for version 3.2.0 on 64 bit x86 SMP
rH  linux-image-3.2.0-51-generic             3.2.0-51.77                                         Linux kernel image for version 3.2.0 on 64 bit x86 SMP
rH  linux-image-3.2.0-52-generic             3.2.0-52.78                                         Linux kernel image for version 3.2.0 on 64 bit x86 SMP

and clealry the unused kernels are still there. At last I post also the result of the command "sudo update-grub":

Generating grub.cfg ...
/etc/grub.d/00_header: 148: /etc/grub.d/00_header: Syntax error: Missing '}'

and the contents of the file "/etc/grub.d/00_header" causing the syntax error:

#! /bin/sh
set -e

# grub-mkconfig helper script.
# Copyright (C) 2006,2007,2008,2009,2010  Free Software Foundation, Inc.
#
# GRUB is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# GRUB is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with GRUB.  If not, see <http://www.gnu.org/licenses/>.

transform="s,x,x,"

prefix="/usr"
exec_prefix="${prefix}"
datarootdir="${prefix}/share"
locale_dir=`echo ${GRUB_PREFIX}/locale | sed ${transform}`
grub_lang=`echo $LANG | cut -d . -f 1`

. "${datarootdir}/grub/grub-mkconfig_lib"

# Do this as early as possible, since other commands might depend on it.
# (e.g. the `loadfont' command might need lvm or raid modules)
for i in ${GRUB_PRELOAD_MODULES} ; do
  echo "insmod $i"
done

if [ "x${GRUB_DEFAULT}" = "x" ] ; then GRUB_DEFAULT=0 ; fi
if [ "x${GRUB_DEFAULT}" = "xsaved" ] ; then GRUB_DEFAULT='${saved_entry}' ; fi
if [ "x${GRUB_TIMEOUT}" = "x" ] ; then GRUB_TIMEOUT=5 ; fi
if [ "x${GRUB_GFXMODE}" = "x" ] ; then GRUB_GFXMODE=auto ; fi

if [ "x${GRUB_DEFAULT_BUTTON}" = "x" ] ; then GRUB_DEFAULT_BUTTON="$GRUB_DEFAULT" ; fi
if [ "x${GRUB_DEFAULT_BUTTON}" = "xsaved" ] ; then GRUB_DEFAULT_BUTTON='${saved_entry}' ; fi
if [ "x${GRUB_TIMEOUT_BUTTON}" = "x" ] ; then GRUB_TIMEOUT_BUTTON="$GRUB_TIMEOUT" ; fi

cat << EOF
if [ -s \$prefix/grubenv ]; then
  set have_grubenv=true
  load_env
fi
EOF
if [ "x$GRUB_BUTTON_CMOS_ADDRESS" != "x" ]; then
    cat <<EOF
if cmostest $GRUB_BUTTON_CMOS_ADDRESS ; then
   set default="${GRUB_DEFAULT_BUTTON}"
else
   set default="${GRUB_DEFAULT}"
fi
EOF
else
    cat <<EOF
set default="${GRUB_DEFAULT}"
EOF
fi
cat <<EOF
if [ "\${prev_saved_entry}" ]; then
  set saved_entry="\${prev_saved_entry}"
  save_env saved_entry
  set prev_saved_entry=
  save_env prev_saved_entry
  set boot_once=true
fi

function savedefault {
  if [ -z "\${boot_once}" ]; then
    saved_entry="\${chosen}"
    save_env saved_entry
  fi
}

function recordfail {
  set recordfail=1
  if [ -n "\${have_grubenv}" ]; then if [ -z "\${boot_once}" ]; then save_env recordfail; fi; fi
}

function load_video {
EOF
if [ -n "${GRUB_VIDEO_BACKEND}" ]; then
    cat <<EOF
  insmod ${GRUB_VIDEO_BACKEND}
EOF
else
    # Insert all available backends; GRUB will use the most appropriate.
    have_video=0;
    for backend in $(cat "${GRUB_PREFIX}/video.lst"); do
   have_video=1;
   cat <<EOF
  insmod ${backend}
EOF
    done
    if [ x$have_video = x0 ]; then
   echo "true"
    fi
fi
cat <<EOF
}

EOF

serial=0;
gfxterm=0;
for x in ${GRUB_TERMINAL_INPUT} ${GRUB_TERMINAL_OUTPUT}; do
    if [ xserial = "x$x" ]; then
   serial=1;
    fi
    if [ xgfxterm = "x$x" ]; then
   gfxterm=1;
    fi
done

if [ "x$serial" = x1 ]; then
    if ! test -e "${GRUB_PREFIX}/serial.mod" ; then
   echo "Serial terminal not available on this platform." >&2 ; exit 1
    fi

    if [ "x${GRUB_SERIAL_COMMAND}" = "x" ] ; then
   grub_warn "Requested serial terminal but GRUB_SERIAL_COMMAND is unspecified. Default parameters will be used."
   GRUB_SERIAL_COMMAND=serial
    fi
    echo "${GRUB_SERIAL_COMMAND}"
fi

if [ "x$gfxterm" = x1 ]; then
    # Make the font accessible
    prepare_grub_to_access_device `${grub_probe} --target=device "${GRUB_FONT_PATH}"`

    cat << EOF
if loadfont `make_system_path_relative_to_its_root "${GRUB_FONT_PATH}"` ; then
  set gfxmode=${GRUB_GFXMODE}
  load_video
  insmod gfxterm
EOF

# Gettext variables and module
if [ "x${LANG}" != "xC" ] && [ -d "${locale_dir}" ] ; then
    prepare_grub_to_access_device $(${grub_probe} --target=device ${locale_dir}) | sed -e "s/^/  /"
  cat << EOF
  set locale_dir=(\$root)$(make_system_path_relative_to_its_root ${locale_dir})
  set lang=${grub_lang

Thank you all for any help :)

2
  • Is this a virtual machine?
    – Colyn1337
    Aug 27, 2013 at 14:52
  • No and to be more precise I'm using Xubuntu 12.04.3 LTS x86_64 :)
    – yorsh
    Aug 27, 2013 at 14:56

1 Answer 1

0

/etc/grub.d/00_header: 148: /etc/grub.d/00_header: Syntax error: Missing '}'

Quick fix: open the file as root, go to the very end where it reads set lang=${grub_lang and add a } there, so the last line should be:

set lang=${grub_lang}

Someone were playing with the grub scripts and now they have errors. Best way to solve this? Reinstall grub:

sudo apt-get --reinstall install grub*

The file should be replaced, if it's not, then delete it first, then run the command above again:

sudo rm /etc/grub.d/00_header
sudo apt-get --reinstall install grub*

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .