通过安装 linux 新内核在上个月给了我一些无人值守升级的问题
# cat /var/log/unattended-upgrades/unattended-upgrades-dpkg.log
Log started: 2018-05-02 00:33:09
Lettura dei changelog...
/usr/bin/locale: 1: /usr/bin/locale: %!PS-Adobe-3.0: not found
/usr/bin/locale: 2: /usr/bin/locale: Syntax error: word unexpected
(expecting ")")
Preconfigurazione dei pacchetti in corso
Selezionato il pacchetto linux-image-3.16.0-6-amd64 non precedentemente
selezionato.
(Lettura del database... 207164 file e directory attualmente installati.)
Preparativi per estrarre .../linux-image-3.16.0-6-amd64_3.16.56-
1_amd64.deb...
/usr/bin/locale: 1: /usr/bin/locale: %!PS-Adobe-3.0: not found
/usr/bin/locale: 2: /usr/bin/locale: Syntax error: word unexpected
(expecting ")")
Estrazione di linux-image-3.16.0-6-amd64 (3.16.56-1)...
Preparativi per estrarre .../linux-image-
amd64_3.16+63+deb8u2_amd64.deb...
Estrazione di linux-image-amd64 (3.16+63+deb8u2) su (3.16+63+deb8u1)...
Preparativi per estrarre .../linux-libc-dev_3.16.56-1_amd64.deb...
Estrazione di linux-libc-dev:amd64 (3.16.56-1) su (3.16.51-3+deb8u1)...
Configurazione di linux-image-3.16.0-6-amd64 (3.16.56-1)...
/usr/bin/locale: 1: /usr/bin/locale: %!PS-Adobe-3.0: not found
/usr/bin/locale: 2: /usr/bin/locale: Syntax error: word unexpected
(expecting ")")
/etc/kernel/postinst.d/initramfs-tools:
update-initramfs: Generating /boot/initrd.img-3.16.0-6-amd64
/etc/kernel/postinst.d/zz-update-grub:
/usr/bin/gettext: 1: /usr/bin/gettext: %!PS-Adobe-3.0: not found
/usr/bin/gettext: 2: /usr/bin/gettext: Syntax error: word unexpected
(expecting ")")
run-parts: /etc/kernel/postinst.d/zz-update-grub exited with return code
2
Failed to process /etc/kernel/postinst.d at /var/lib/dpkg/info/linux-
image-3.16.0-6-amd64.postinst line 634.
dpkg: errore nell'elaborare il pacchetto linux-image-3.16.0-6-amd64 (--
configure):
il sottoprocesso installato script di post-installation ha restituito lo
stato di errore 1
dpkg: problemi con le dipendenze impediscono la configurazione di linux-
image-amd64:
linux-image-amd64 dipende da linux-image-3.16.0-6-amd64; comunque:
Il pacchetto linux-image-3.16.0-6-amd64 non è ancora configurato.
dpkg: errore nell'elaborare il pacchetto linux-image-amd64 (--configure):
problemi con le dipendenze - lasciato non configurato
Configurazione di linux-libc-dev:amd64 (3.16.56-1)...
Si sono verificati degli errori nell'elaborazione:
linux-image-3.16.0-6-amd64
linux-image-amd64
Error in function:
Log ended: 2018-05-02 00:36:46
Log started: 2018-05-05 13:26:51
Lettura dei changelog...
/usr/bin/locale: 1: /usr/bin/locale: %!PS-Adobe-3.0: not found
/usr/bin/locale: 2: /usr/bin/locale: Syntax error: word unexpected
(expecting ")")
(Lettura del database... 210939 file e directory attualmente installati.)
Preparativi per estrarre .../libmad0_0.15.1b-8+deb8u1_amd64.deb...
Estrazione di libmad0:amd64 (0.15.1b-8+deb8u1) su (0.15.1b-8)...
Configurazione di linux-image-3.16.0-6-amd64 (3.16.56-1)...
/usr/bin/locale: 1: /usr/bin/locale: %!PS-Adobe-3.0: not found
/usr/bin/locale: 2: /usr/bin/locale: Syntax error: word unexpected
(expecting ")")
vmlinuz(/boot/vmlinuz-3.16.0-6-amd64
) points to /boot/vmlinuz-3.16.0-6-amd64
(/boot/vmlinuz-3.16.0-6-amd64) -- doing nothing at
/var/lib/dpkg/info/linux-image-3.16.0-6-amd64.postinst line 263.
initrd.img(/boot/initrd.img-3.16.0-6-amd64
) points to /boot/initrd.img-3.16.0-6-amd64
(/boot/initrd.img-3.16.0-6-amd64) -- doing nothing at
/var/lib/dpkg/info/linux-image-3.16.0-6-amd64.postinst line 263.
/etc/kernel/postinst.d/initramfs-tools:
update-initramfs: Generating /boot/initrd.img-3.16.0-6-amd64
/etc/kernel/postinst.d/zz-update-grub:
/usr/bin/gettext: 1: /usr/bin/gettext: %!PS-Adobe-3.0: not found
/usr/bin/gettext: 2: /usr/bin/gettext: Syntax error: word unexpected
(expecting ")")
run-parts: /etc/kernel/postinst.d/zz-update-grub exited with return code
2
Failed to process /etc/kernel/postinst.d at /var/lib/dpkg/info/linux-
image-3.16.0-6-amd64.postinst line 634.
dpkg: errore nell'elaborare il pacchetto linux-image-3.16.0-6-amd64 (--
configure):
il sottoprocesso installato script di post-installation ha restituito lo
stato di errore 1
dpkg: problemi con le dipendenze impediscono la configurazione di linux-
image-amd64:
linux-image-amd64 dipende da linux-image-3.16.0-6-amd64; comunque:
Il pacchetto linux-image-3.16.0-6-amd64 non è ancora configurato.
dpkg: errore nell'elaborare il pacchetto linux-image-amd64 (--configure):
problemi con le dipendenze - lasciato non configurato
Configurazione di libmad0:amd64 (0.15.1b-8+deb8u1)...
Elaborazione dei trigger per libc-bin (2.19-18+deb8u10)...
Si sono verificati degli errori nell'elaborazione:
linux-image-3.16.0-6-amd64
linux-image-amd64
Error in function:
Log ended: 2018-05-05 13:28:47
Log started: 2018-05-06 10:01:20
Lettura dei changelog...
/usr/bin/locale: 1: /usr/bin/locale: %!PS-Adobe-3.0: not found
/usr/bin/locale: 2: /usr/bin/locale: Syntax error: word unexpected
(expecting ")")
Preconfigurazione dei pacchetti in corso
(Lettura del database... 210939 file e directory attualmente installati.)
Preparativi per estrarre .../tzdata_2018e-0+deb8u1_all.deb...
Estrazione di tzdata (2018e-0+deb8u1) su (2018d-0+deb8u1)...
Configurazione di tzdata (2018e-0+deb8u1)...
/usr/bin/locale: 1: /usr/bin/locale: %!PS-Adobe-3.0: not found
/usr/bin/locale: 2: /usr/bin/locale: Syntax error: word unexpected
(expecting ")")
Current default time zone: 'Europe/Rome'
Local time is now: Sun May 6 10:01:48 CEST 2018.
Universal Time is now: Sun May 6 08:01:48 UTC 2018.
Run 'dpkg-reconfigure tzdata' if you wish to change it.
Configurazione di linux-image-3.16.0-6-amd64 (3.16.56-1)...
/usr/bin/locale: 1: /usr/bin/locale: %!PS-Adobe-3.0: not found
/usr/bin/locale: 2: /usr/bin/locale: Syntax error: word unexpected
(expecting ")")
vmlinuz(/boot/vmlinuz-3.16.0-6-amd64
) points to /boot/vmlinuz-3.16.0-6-amd64
(/boot/vmlinuz-3.16.0-6-amd64) -- doing nothing at
/var/lib/dpkg/info/linux-image-3.16.0-6-amd64.postinst line 263.
initrd.img(/boot/initrd.img-3.16.0-6-amd64
) points to /boot/initrd.img-3.16.0-6-amd64
(/boot/initrd.img-3.16.0-6-amd64) -- doing nothing at
/var/lib/dpkg/info/linux-image-3.16.0-6-amd64.postinst line 263.
/etc/kernel/postinst.d/initramfs-tools:
update-initramfs: Generating /boot/initrd.img-3.16.0-6-amd64
/etc/kernel/postinst.d/zz-update-grub:
/usr/bin/gettext: 1: /usr/bin/gettext: %!PS-Adobe-3.0: not found
/usr/bin/gettext: 2: /usr/bin/gettext: Syntax error: word unexpected
(expecting ")")
run-parts: /etc/kernel/postinst.d/zz-update-grub exited with return code
2
Failed to process /etc/kernel/postinst.d at /var/lib/dpkg/info/linux-
image-3.16.0-6-amd64.postinst line 634.
dpkg: errore nell'elaborare il pacchetto linux-image-3.16.0-6-amd64 (--
configure):
il sottoprocesso installato script di post-installation ha restituito lo
stato di errore 1
dpkg: problemi con le dipendenze impediscono la configurazione di linux-
image-amd64:
linux-image-amd64 dipende da linux-image-3.16.0-6-amd64; comunque:
Il pacchetto linux-image-3.16.0-6-amd64 non è ancora configurato.
dpkg: errore nell'elaborare il pacchetto linux-image-amd64 (--configure):
problemi con le dipendenze - lasciato non configurato
Si sono verificati degli errori nell'elaborazione:
linux-image-3.16.0-6-amd64
linux-image-amd64
Error in function:
Log ended: 2018-05-06 10:04:18
之后, 这解决了我的问题,我尝试清除并重新安装 grub2,然后按照我获得的步骤操作
# dpkg --configure -a
Configurazione di grub-pc (2.02~beta2-22+deb8u1)...
/usr/bin/locale: 1: /usr/bin/locale: %!PS-Adobe-3.0: not found
/usr/bin/locale: 2: /usr/bin/locale: Syntax error: word unexpected
(expecting ")")
/usr/bin/locale: 1: /usr/bin/locale: %!PS-Adobe-3.0: not found
/usr/bin/locale: 2: /usr/bin/locale: Syntax error: word unexpected
(expecting ")")
Installing for i386-pc platform.
Installazione completata, nessun errore segnalato.
/usr/bin/gettext: 1: /usr/bin/gettext: %!PS-Adobe-3.0: not found
/usr/bin/gettext: 2: /usr/bin/gettext: Syntax error: word unexpected
(expecting ")")
dpkg: errore nell'elaborare il pacchetto grub-pc (--configure):
il sottoprocesso installato script di post-installation ha restituito lo
stato di errore 2
Si sono verificati degli errori nell'elaborazione:
我担心的是如果冲突不是grub然后重新安装grub不起作用,那么将无法启动。我也没有通过 chroot 解决,只有修复 grub 不起作用。我的 dpkg 状态文件在 grub-pc 上告诉我
Package: grub-pc
Status: install ok half-configured
Priority: optional
Section: admin
Installed-Size: 514
Maintainer: GRUB Maintainers <[email protected]>
Architecture: amd64
Multi-Arch: foreign
Source: grub2
Version: 2.02~beta2-22+deb8u1
Replaces: grub, grub-common (<= 1.97~beta2-1), grub-coreboot, grub-efi-$
Depends: debconf (>= 0.5) | debconf-2.0, grub-common (= 2.02~beta2-22+d$
Conflicts: grub (<< 0.97-54), grub-coreboot, grub-efi-amd64, grub-efi-i$
Conffiles:
/etc/kernel/postinst.d/zz-update-grub 269828d3b8e5bfb266c58fb0a00abcd5
/etc/kernel/postrm.d/zz-update-grub 269828d3b8e5bfb266c58fb0a00abcd5
...
其他信息:
# uname -r
3.16.0-6-amd64
# apt-cache policy grub-pc
grub-pc:
Installato: 2.02~beta2-22+deb8u1
Candidato: 2.02~beta2-22+deb8u1
Tabella versione:
*** 2.02~beta2-22+deb8u1 0
500 http://ftp.uk.debian.org/debian/ jessie/main amd64 Packages
500 http://security.debian.org/ jessie/updates/main amd64 Packages
100 /var/lib/dpkg/status
# ls -al /vmlinuz*
lrwxrwxrwx 1 root root 27 mag 2 00:35 /vmlinuz -> boot/vmlinuz-3.16.0-6-
amd64
lrwxrwxrwx 1 root root 27 gen 26 13:30 /vmlinuz.old -> boot/vmlinuz-
3.16.0-5-amd64
# ls -a /initrd.img*
/initrd.img /initrd.img.old
# ls -al /boot
totale 62164
drwxr-xr-x 3 root root 4096 mag 11 11:35 .
drwxr-xr-x 22 root root 4096 mag 11 14:20 ..
-rw-r--r-- 1 root root 157756 dic 14 22:27 config-3.16.0-4-amd64
-rw-r--r-- 1 root root 157786 gen 9 12:42 config-3.16.0-5-amd64
-rw-r--r-- 1 root root 157842 mag 8 19:36 config-3.16.0-6-amd64
drwxr-xr-x 5 root root 4096 mag 12 10:47 grub
-rw-r--r-- 1 root root 15164265 mag 7 11:27 initrd.img-3.16.0-4-amd64
-rw-r--r-- 1 root root 15164783 gen 26 13:31 initrd.img-3.16.0-5-amd64
-rw-r--r-- 1 root root 15310597 mag 11 11:35 initrd.img-3.16.0-6-amd64
-rw-r--r-- 1 root root 2684316 dic 14 22:27 System.map-3.16.0-4-amd64
-rw-r--r-- 1 root root 2683305 gen 9 12:42 System.map-3.16.0-5-amd64
-rw-r--r-- 1 root root 2683087 mag 8 19:36 System.map-3.16.0-6-amd64
-rw-r--r-- 1 root root 3137712 dic 14 22:25 vmlinuz-3.16.0-4-amd64
-rw-r--r-- 1 root root 3139776 gen 9 12:40 vmlinuz-3.16.0-5-amd64
-rw-r--r-- 1 root root 3170464 mag 8 19:34 vmlinuz-3.16.0-6-amd64
# df -h
File system Dim. Usati Dispon. Uso% Montato su
/dev/sda1 46G 21G 24G 47% /
udev 10M 0 10M 0% /dev
tmpfs 401M 6,0M 395M 2% /run
tmpfs 1001M 28M 973M 3% /dev/shm
tmpfs 5,0M 4,0K 5,0M 1% /run/lock
tmpfs 1001M 0 1001M 0% /sys/fs/cgroup
/dev/sda2 180G 34G 137G 20% /home
tmpfs 201M 12K 201M 1% /run/user/1000
/dev/sdb1 3,8G 3,8G 0 100% /media/stefano/Debian 8.0.0 amd64
1
# df -i
File system Inode IUsati ILiberi IUso% Montato su
/dev/sda1 3055616 448579 2607037 15% /
udev 253925 424 253501 1% /dev
tmpfs 256068 604 255464 1% /run
tmpfs 256068 129 255939 1% /dev/shm
tmpfs 256068 4 256064 1% /run/lock
tmpfs 256068 13 256055 1% /sys/fs/cgroup
/dev/sda2 11968512 320153 11648359 3% /home
tmpfs 256068 18 256050 1% /run/user/1000
/dev/sdb1 0 0 0 - /media/stefano/Debian 8.0.0
amd64 1
编辑 1
我的语言环境文件
# locale
/usr/bin/locale: riga 1: fg: nessun controllo dei job
/usr/bin/locale: riga 2: errore di sintassi vicino al token non atteso
"ImageMagick"
/usr/bin/locale: riga 2: `%%Creator: (ImageMagick)'
# cat /etc/default/locale
# File generated by update-locale
LANG="it_IT.UTF-8"
# gettext -d coreutils -s "write error"/usr/bin/gettext: riga 1: fg:
nessun controllo dei job
/usr/bin/gettext: riga 2: errore di sintassi vicino al token non atteso
"ImageMagick"
/usr/bin/gettext: riga 2: `%%Creator: (ImageMagick)'
It looks like your
/usr/bin/locale
and/usr/bin/gettext
commands are encountering something that looks like a PostScript document header, and that is causing some errors. Those errors may or may not be the root cause of your problems, but they're definitely interfering with other system functionality.Do you have something strange in
/etc/default/locale
, perhaps? It should contain onlysh
-style variable definitions and/or comments.What happens if you run
locale
? It should display your current locale settings, and no error messages.Or what if you run
gettext -d coreutils -s "write error"
? It should output a translated version of the "write error" message, according to your current locale settings.Or perhaps a PostScript file has found its way into your message catalog directory? Then this command might find it:
The command should identify any files under /usr/share/locale which are not message catalog files. If your
file
command output is also translated, you may have to prefix this command withLC_ALL=C
to have tme messages in standard US English so the search string will correctly exclude the message catalog files from the output.It turned out that your
/usr/bin/locale
and apparently also/usr/bin/gettext
seem to have been replaced with PostScript files created by ImageMagick. This sounds like possible filesystem corruption, or perhaps an "oops" with ImageMagick commands while running as root.To repair your
/usr/bin/locale
and/usr/bin/gettext
, run this command:This will reinstall all files of the
libc-bin
andgettext-base
package without removing any of the packages that depend on them first. This should fix at least some of your original error messages. Then you can try runningdpkg --configure -a
again to see if this was the true root cause of your entire problem, or if there is still more that needs fixing.The possibility of filesystem corruption makes me think you should check
dmesg | less
output: is there anything that looks like a disk error?Does
smartctl -a /dev/<your system disk device>
say the disk passes its internal SMART health checks? The command outputs a lot of information, but the important part should look like this:If it does not say "PASSED", your disk is failing and should be replaced.
Even if
smartctl
thinks the disk is OK, a full backup and then a full filesystem check might be a good idea. If you need help with the filesystem check, please open a new question for it.