Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 31/08/2017, à 21:53

Danibe

Impossible d'installer de nouveaux paquets

Bonjour,

Je n'arrive pas à installer de nouveaux paquets.

Je sais que ce problème est courant pour les utilisateurs d'ubuntu, car j'ai passé de longues heures sur les forums pour tenter de régler le problème, en vain yikes
Il semble que je ne puisse même plus faire de mises à jour.

Au début j'avais un panneau "sens interdit" dans la barre des tâches, mais j'ai réussi à l'enlever.

Ce souci est vraiment gênant, je serais donc reconnaissant à quiconque essaiera de m'apporter son aide lol

Version de Linux : 4.4.0-57-generic
Version d'ubuntu : 16.04.3 LTS

Cordialement,
D.

Dernière modification par Danibe (Le 25/11/2017, à 10:38)

Hors ligne

#2 Le 31/08/2017, à 22:01

xubu1957

Re : Impossible d'installer de nouveaux paquets

Bonjour,

Pour faire un point d'étape :

cqfd93 a écrit :

Donne les retours de :

uname -a
df -Th | grep -Ev "devpts|none|proc|sys|tmpfs|udev"; echo ; df -Ti | grep -Ev "devpts|none|proc|sys|tmpfs|udev"
dpkg -l | grep -Ei "linux-(g|h|i|lo|si|t)"
ls -sS1 /boot

en te servant du : Retour utilisable de commande

Rajout :

cqfd93 a écrit :

Astuce pour copier / coller sans erreur :

  • triple clic gauche pour sélectionner et copier une ligne entière

  • clic molette pour coller dans le terminal

Dernière modification par xubu1957 (Le 31/08/2017, à 22:05)


Conseils pour les nouveaux demandeurs et pas qu'eux
Important : Pensez à passer vos sujets en [Résolu] lorsque ceux-ci le sont, au début du titre en cliquant sur Modifier sous le premier message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.                   Membre de Linux-Azur

En ligne

#3 Le 31/08/2017, à 22:10

Danibe

Re : Impossible d'installer de nouveaux paquets

Merci pour la réponse.
Voici les résultats demandés :


uname -a

root@ubuntu:~# uname -a
Linux ubuntu 4.4.0-57-generic #78-Ubuntu SMP Fri Dec 9 23:50:32 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

df -Th | grep -Ev "devpts|none|proc|sys|tmpfs|udev"; echo ; df -Ti | grep -Ev "devpts|none|proc|sys|tmpfs|udev"

root@ubuntu:~# df -Th | grep -Ev "devpts|none|proc|sys|tmpfs|udev"; echo ; df -Ti | grep -Ev "devpts|none|proc|sys|tmpfs|udev"
Sys. de fichiers Type     Taille Utilisé Dispo Uti% Monté sur
/dev/sda2        ext4       227G    208G  7,7G  97% /
/dev/sda1        vfat       511M     13M  499M   3% /boot/efi

Sys. de fichiers Type       Inœuds IUtil.   ILibre IUti% Monté sur
/dev/sda2        ext4     15089664 421986 14667678    3% /
/dev/sda1        vfat            0      0        0     - /boot/efi

dpkg -l | grep -Ei "linux-(g|h|i|lo|si|t)"

root@ubuntu:~# dpkg -l | grep -Ei "linux-(g|h|i|lo|si|t)"
ii  linux-generic                               4.4.0.93.98                                  amd64        Complete Generic Linux kernel and headers
ii  linux-headers-4.4.0-57                      4.4.0-57.78                                  all          Header files related to Linux kernel version 4.4.0
ii  linux-headers-4.4.0-57-generic              4.4.0-57.78                                  amd64        Linux kernel headers for version 4.4.0 on 64 bit x86 SMP
ii  linux-headers-4.4.0-64                      4.4.0-64.85                                  all          Header files related to Linux kernel version 4.4.0
ii  linux-headers-4.4.0-64-generic              4.4.0-64.85                                  amd64        Linux kernel headers for version 4.4.0 on 64 bit x86 SMP
ii  linux-headers-4.4.0-93                      4.4.0-93.116                                 all          Header files related to Linux kernel version 4.4.0
ii  linux-headers-4.4.0-93-generic              4.4.0-93.116                                 amd64        Linux kernel headers for version 4.4.0 on 64 bit x86 SMP
ii  linux-headers-generic                       4.4.0.93.98                                  amd64        Generic Linux kernel headers
rc  linux-image-4.4.0-31-generic                4.4.0-31.50                                  amd64        Linux kernel image for version 4.4.0 on 64 bit x86 SMP
ii  linux-image-4.4.0-57-generic                4.4.0-57.78                                  amd64        Linux kernel image for version 4.4.0 on 64 bit x86 SMP
rc  linux-image-4.4.0-59-generic                4.4.0-59.80                                  amd64        Linux kernel image for version 4.4.0 on 64 bit x86 SMP
rc  linux-image-4.4.0-62-generic                4.4.0-62.83                                  amd64        Linux kernel image for version 4.4.0 on 64 bit x86 SMP
iF  linux-image-4.4.0-64-generic                4.4.0-64.85                                  amd64        Linux kernel image for version 4.4.0 on 64 bit x86 SMP
iF  linux-image-4.4.0-93-generic                4.4.0-93.116                                 amd64        Linux kernel image for version 4.4.0 on 64 bit x86 SMP
ii  linux-image-extra-4.4.0-57-generic          4.4.0-57.78                                  amd64        Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP
rc  linux-image-extra-4.4.0-59-generic          4.4.0-59.80                                  amd64        Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP
rc  linux-image-extra-4.4.0-62-generic          4.4.0-62.83                                  amd64        Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP
iU  linux-image-extra-4.4.0-93-generic          4.4.0-93.116                                 amd64        Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP
ii  linux-image-generic                         4.4.0.93.98                                  amd64        Generic Linux kernel image
ii  linux-image-generic-lts-utopic              4.4.0.93.98                                  amd64        Generic Linux kernel image (dummy transitional package)
ii  linux-signed-generic                        4.4.0.93.98                                  amd64        Complete Signed Generic Linux kernel and headers
ii  linux-signed-image-4.4.0-57-generic         4.4.0-57.78                                  amd64        Signed kernel image generic
rc  linux-signed-image-4.4.0-59-generic         4.4.0-59.80                                  amd64        Signed kernel image generic
rc  linux-signed-image-4.4.0-62-generic         4.4.0-62.83                                  amd64        Signed kernel image generic
ii  linux-signed-image-4.4.0-64-generic         4.4.0-64.85                                  amd64        Signed kernel image generic
ii  linux-signed-image-4.4.0-93-generic         4.4.0-93.116                                 amd64        Signed kernel image generic
ii  linux-signed-image-generic                  4.4.0.93.98                                  amd64        Signed Generic Linux kernel image

ls -sS1 /boot

root@ubuntu:~# ls -sS1 /boot
total 169492
37276 initrd.img-4.4.0-93-generic
37272 initrd.img-4.4.0-57-generic
37264 initrd.img-4.4.0-64-generic
 6936 vmlinuz-4.4.0-93-generic.efi.signed
 6932 vmlinuz-4.4.0-93-generic
 6924 vmlinuz-4.4.0-64-generic.efi.signed
 6924 vmlinuz-4.4.0-64-generic
 6904 vmlinuz-4.4.0-57-generic.efi.signed
 6904 vmlinuz-4.4.0-57-generic
 3796 System.map-4.4.0-93-generic
 3796 System.map-4.4.0-64-generic
 3788 System.map-4.4.0-57-generic
 1220 abi-4.4.0-93-generic
 1220 abi-4.4.0-64-generic
 1216 abi-4.4.0-57-generic
  188 config-4.4.0-93-generic
  188 config-4.4.0-64-generic
  188 config-4.4.0-57-generic
  184 memtest86+_multiboot.bin
  184 memtest86+.elf
  180 memtest86+.bin
    4 efi
    4 grub

Hors ligne

#4 Le 31/08/2017, à 22:24

xubu1957

Re : Impossible d'installer de nouveaux paquets

/dev/sda2        ext4       227G    208G  7,7G  97% /

97 %, c'est presque plein.

iF  linux-image-4.4.0-64-generic                4.4.0-64.85                                  amd64        Linux kernel image for version 4.4.0 on 64 bit x86 SMP
iF  linux-image-4.4.0-93-generic                4.4.0-93.116                                 amd64        Linux kernel image for version 4.4.0 on 64 bit x86 SMP
ii  linux-image-extra-4.4.0-57-generic          4.4.0-57.78                                  amd64        Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP
iU  linux-image-extra-4.4.0-93-generic          4.4.0-93.116                                 amd64        Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP

Sur les trois noyaux présents, deux sont bancals, je laisse le relais à une main plus experte.


Conseils pour les nouveaux demandeurs et pas qu'eux
Important : Pensez à passer vos sujets en [Résolu] lorsque ceux-ci le sont, au début du titre en cliquant sur Modifier sous le premier message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.                   Membre de Linux-Azur

En ligne

#5 Le 31/08/2017, à 22:35

nany

Re : Impossible d'installer de nouveaux paquets

Bonjour,

pour continuer l’investigation, donne le retour de :

sudo apt-get install -fy

Hors ligne

#6 Le 31/08/2017, à 22:40

Danibe

Re : Impossible d'installer de nouveaux paquets

Merci pour votre réponse.

Voilà :


apt-get install -fy

root@ubuntu:~# apt-get install -fy
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances       
Lecture des informations d'état... Fait
0 mis à jour, 0 nouvellement installés, 0 à enlever et 0 non mis à jour.
4 partiellement installés ou enlevés.
Après cette opération, 0 o d'espace disque supplémentaires seront utilisés.
Paramétrage de grub-efi-amd64 (2.02~beta2-36ubuntu3.12) ...
/var/lib/dpkg/info/grub-efi-amd64.config: 1: /etc/default/grub: !Windows: not found
/var/lib/dpkg/info/grub-efi-amd64.config: 1: /etc/default/grub: !Windows: not found
dpkg: erreur de traitement du paquet grub-efi-amd64 (--configure) :
 le sous-processus script post-installation installé a retourné une erreur de sortie d'état 127
Paramétrage de linux-image-4.4.0-64-generic (4.4.0-64.85) ...
Running depmod.
update-initramfs: deferring update (hook will be called later)
Examining /etc/kernel/postinst.d.
run-parts: executing /etc/kernel/postinst.d/apt-auto-removal 4.4.0-64-generic /boot/vmlinuz-4.4.0-64-generic
run-parts: executing /etc/kernel/postinst.d/initramfs-tools 4.4.0-64-generic /boot/vmlinuz-4.4.0-64-generic
update-initramfs: Generating /boot/initrd.img-4.4.0-64-generic
W: Possible missing firmware /lib/firmware/i915/kbl_dmc_ver1.bin for module i915_bpo
run-parts: executing /etc/kernel/postinst.d/pm-utils 4.4.0-64-generic /boot/vmlinuz-4.4.0-64-generic
run-parts: executing /etc/kernel/postinst.d/unattended-upgrades 4.4.0-64-generic /boot/vmlinuz-4.4.0-64-generic
run-parts: executing /etc/kernel/postinst.d/update-notifier 4.4.0-64-generic /boot/vmlinuz-4.4.0-64-generic
run-parts: executing /etc/kernel/postinst.d/zz-update-grub 4.4.0-64-generic /boot/vmlinuz-4.4.0-64-generic
/usr/sbin/grub-mkconfig: 1: /etc/default/grub: !Windows: not found
/usr/sbin/grub-mkconfig: 1: /etc/default/grub: !Windows: not found
run-parts: /etc/kernel/postinst.d/zz-update-grub exited with return code 127
Failed to process /etc/kernel/postinst.d at /var/lib/dpkg/info/linux-image-4.4.0-64-generic.postinst line 1052.
dpkg: erreur de traitement du paquet linux-image-4.4.0-64-generic (--configure) :
 le sous-processus script post-installation installé a retourné une erreur de sortie d'état 2
Paramétrage de linux-image-4.4.0-93-generic (4.4.0-93.116) ...
Running depmod.
update-initramfs: deferring update (hook will be called later)
Examining /etc/kernel/postinst.d.
run-parts: executing /etc/kernel/postinst.d/apt-auto-removal 4.4.0-93-generic /boot/vmlinuz-4.4.0-93-generic
run-parts: executing /etc/kernel/postinst.d/initramfs-tools 4.4.0-93-generic /boot/vmlinuz-4.4.0-93-generic
update-initramfs: Generating /boot/initrd.img-4.4.0-93-generic
run-parts: executing /etc/kernel/postinst.d/pm-utils 4.4.0-93-generic /boot/vmlinuz-4.4.0-93-generic
run-parts: executing /etc/kernel/postinst.d/unattended-upgrades 4.4.0-93-generic /boot/vmlinuz-4.4.0-93-generic
run-parts: executing /etc/kernel/postinst.d/update-notifier 4.4.0-93-generic /boot/vmlinuz-4.4.0-93-generic
run-parts: executing /etc/kernel/postinst.d/zz-update-grub 4.4.0-93-generic /boot/vmlinuz-4.4.0-93-generic
/usr/sbin/grub-mkconfig: 1: /etc/default/grub: !Windows: not found
/usr/sbin/grub-mkconfig: 1: /etc/default/grub: !Windows: not found
run-parts: /etc/kernel/postinst.d/zz-update-grub exited with return code 127
Failed to process /etc/kernel/postinst.d at /var/lib/dpkg/info/linux-image-4.4.0-93-generic.postinst line 1052.
dpkg: erreur de traitement du paquet linux-image-4.4.0-93-generic (--configure) :
 le sous-processus script post-installation installé a retourné une erreur de sortie d'état 2
dpkg: des problèmes de dépendances empêchent la configuration de linux-image-extra-4.4.0-93-generic :
 linux-image-extra-4.4.0-93-generic dépend de linux-image-4.4.0-93-generic ; cependant :
 Le paquet linux-image-4.4.0-93-generic n'est pas encore configuré.

dpkg: erreur de traitement du paquet linux-image-extra-4.4.0-93-generic (--configure) :
 problèmes de dépendances - laissé non configuré
Aucun rapport « apport » écrit car MaxReports a déjà été atteint
                                                                Des erreurs ont été rencontrées pendant l'exécution :
 grub-efi-amd64
 linux-image-4.4.0-64-generic
 linux-image-4.4.0-93-generic
 linux-image-extra-4.4.0-93-generic
E: Sub-process /usr/bin/dpkg returned an error code (1)

Je n'aime pas les run-parts:, j'en vois souvent roll

Hors ligne

#7 Le 31/08/2017, à 22:52

nany

Re : Impossible d'installer de nouveaux paquets

Les run-parts, c’est normal. Ce qui est plus génant, ce sont les messages d’erreur.
Passe cette commande :

sudo apt-get clean

Puis redonne le retour de :

sudo apt-get install -fy

Hors ligne

#8 Le 31/08/2017, à 22:56

Danibe

Re : Impossible d'installer de nouveaux paquets

J'ai fait un clean, mais en tapant encore install -fy j'obtiens strictement le même résultat qu'avant.

Hors ligne

#9 Le 31/08/2017, à 23:01

nany

Re : Impossible d'installer de nouveaux paquets

Bien, alors donne le retour de :

sudo dpkg -P linux-image-4.4.0-64-generic linux-image-4.4.0-93-generic linux-image-extra-4.4.0-93-generic

Hors ligne

#10 Le 31/08/2017, à 23:05

Danibe

Re : Impossible d'installer de nouveaux paquets

D'accord, voici :

dpkg -P linux-image-4.4.0-64-generic linux-image-4.4.0-93-generic linux-image-extra-4.4.0-93-generic

root@ubuntu:~# dpkg -P linux-image-4.4.0-64-generic linux-image-4.4.0-93-generic linux-image-extra-4.4.0-93-generic
dpkg: un problème de dépendance empêche la suppression de linux-image-4.4.0-64-generic :
 linux-signed-image-4.4.0-64-generic dépend de linux-image-4.4.0-64-generic (= 4.4.0-64.85).

dpkg: erreur de traitement du paquet linux-image-4.4.0-64-generic (--purge) :
 problème de dépendance - suppression ignorée
dpkg: un problème de dépendance empêche la suppression de linux-image-4.4.0-93-generic :
 linux-image-generic dépend de linux-image-4.4.0-93-generic.
 linux-signed-image-4.4.0-93-generic dépend de linux-image-4.4.0-93-generic (= 4.4.0-93.116).

dpkg: erreur de traitement du paquet linux-image-4.4.0-93-generic (--purge) :
 problème de dépendance - suppression ignorée
dpkg: un problème de dépendance empêche la suppression de linux-image-extra-4.4.0-93-generic :
 linux-image-generic dépend de linux-image-extra-4.4.0-93-generic ; cependant :
  Le paquet linux-image-extra-4.4.0-93-generic doit être supprimé.
 linux-signed-image-generic dépend de linux-image-extra-4.4.0-93-generic.

dpkg: erreur de traitement du paquet linux-image-extra-4.4.0-93-generic (--purge) :
 problème de dépendance - suppression ignorée
Des erreurs ont été rencontrées pendant l'exécution :
 linux-image-4.4.0-64-generic
 linux-image-4.4.0-93-generic
 linux-image-extra-4.4.0-93-generic

Hors ligne

#11 Le 31/08/2017, à 23:09

nany

Re : Impossible d'installer de nouveaux paquets

Bien, puisqu’il ne veut pas quand on lui demande gentiment, on va lui forcer un peu la main.
Donne le retour de :

sudo dpkg -P --force-all linux-image-4.4.0-64-generic linux-image-4.4.0-93-generic linux-image-extra-4.4.0-93-generic

Dernière modification par nany (Le 31/08/2017, à 23:09)

Hors ligne

#12 Le 31/08/2017, à 23:11

Danibe

Re : Impossible d'installer de nouveaux paquets

J'ai l'impression qu'il n'est vraiment pas coopératif...


dpkg -P --force-all linux-image-4.4.0-64-generic linux-image-4.4.0-93-generic linux-image-extra-4.4.0-93-generic

root@ubuntu:~# dpkg -P --force-all linux-image-4.4.0-64-generic linux-image-4.4.0-93-generic linux-image-extra-4.4.0-93-generic
dpkg: linux-image-extra-4.4.0-93-generic : problème de dépendance, mais suppression comme demandé :
 linux-image-generic dépend de linux-image-extra-4.4.0-93-generic ; cependant :
  Le paquet linux-image-extra-4.4.0-93-generic doit être supprimé.
 linux-signed-image-generic dépend de linux-image-extra-4.4.0-93-generic.

(Lecture de la base de données... 292571 fichiers et répertoires déjà installés.)
Suppression de linux-image-extra-4.4.0-93-generic (4.4.0-93.116) ...
run-parts: executing /etc/kernel/postinst.d/apt-auto-removal 4.4.0-93-generic /boot/vmlinuz-4.4.0-93-generic
run-parts: executing /etc/kernel/postinst.d/initramfs-tools 4.4.0-93-generic /boot/vmlinuz-4.4.0-93-generic
update-initramfs: Generating /boot/initrd.img-4.4.0-93-generic
run-parts: executing /etc/kernel/postinst.d/pm-utils 4.4.0-93-generic /boot/vmlinuz-4.4.0-93-generic
run-parts: executing /etc/kernel/postinst.d/unattended-upgrades 4.4.0-93-generic /boot/vmlinuz-4.4.0-93-generic
run-parts: executing /etc/kernel/postinst.d/update-notifier 4.4.0-93-generic /boot/vmlinuz-4.4.0-93-generic
run-parts: executing /etc/kernel/postinst.d/zz-update-grub 4.4.0-93-generic /boot/vmlinuz-4.4.0-93-generic
/usr/sbin/grub-mkconfig: 1: /etc/default/grub: !Windows: not found
/usr/sbin/grub-mkconfig: 1: /etc/default/grub: !Windows: not found
run-parts: /etc/kernel/postinst.d/zz-update-grub exited with return code 127
dpkg: erreur de traitement du paquet linux-image-extra-4.4.0-93-generic (--purge) :
 le sous-processus script post-removal installé a retourné une erreur de sortie d'état 1
dpkg: linux-image-4.4.0-64-generic : problème de dépendance, mais suppression comme demandé :
 linux-signed-image-4.4.0-64-generic dépend de linux-image-4.4.0-64-generic (= 4.4.0-64.85).

Suppression de linux-image-4.4.0-64-generic (4.4.0-64.85) ...
Examining /etc/kernel/postrm.d .
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 4.4.0-64-generic /boot/vmlinuz-4.4.0-64-generic
update-initramfs: Deleting /boot/initrd.img-4.4.0-64-generic
run-parts: executing /etc/kernel/postrm.d/zz-update-grub 4.4.0-64-generic /boot/vmlinuz-4.4.0-64-generic
/usr/sbin/grub-mkconfig: 1: /etc/default/grub: !Windows: not found
/usr/sbin/grub-mkconfig: 1: /etc/default/grub: !Windows: not found
run-parts: /etc/kernel/postrm.d/zz-update-grub exited with return code 127
Failed to process /etc/kernel/postrm.d at /var/lib/dpkg/info/linux-image-4.4.0-64-generic.postrm line 328.
dpkg: erreur de traitement du paquet linux-image-4.4.0-64-generic (--purge) :
 le sous-processus script post-removal installé a retourné une erreur de sortie d'état 1
dpkg: linux-image-4.4.0-93-generic : problème de dépendance, mais suppression comme demandé :
 linux-image-generic dépend de linux-image-4.4.0-93-generic.
 linux-signed-image-4.4.0-93-generic dépend de linux-image-4.4.0-93-generic (= 4.4.0-93.116).

Suppression de linux-image-4.4.0-93-generic (4.4.0-93.116) ...
Examining /etc/kernel/postrm.d .
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 4.4.0-93-generic /boot/vmlinuz-4.4.0-93-generic
update-initramfs: Deleting /boot/initrd.img-4.4.0-93-generic
run-parts: executing /etc/kernel/postrm.d/zz-update-grub 4.4.0-93-generic /boot/vmlinuz-4.4.0-93-generic
/usr/sbin/grub-mkconfig: 1: /etc/default/grub: !Windows: not found
/usr/sbin/grub-mkconfig: 1: /etc/default/grub: !Windows: not found
run-parts: /etc/kernel/postrm.d/zz-update-grub exited with return code 127
Failed to process /etc/kernel/postrm.d at /var/lib/dpkg/info/linux-image-4.4.0-93-generic.postrm line 328.
dpkg: erreur de traitement du paquet linux-image-4.4.0-93-generic (--purge) :
 le sous-processus script post-removal installé a retourné une erreur de sortie d'état 1
Des erreurs ont été rencontrées pendant l'exécution :
 linux-image-extra-4.4.0-93-generic
 linux-image-4.4.0-64-generic
 linux-image-4.4.0-93-generic

Hors ligne

#13 Le 31/08/2017, à 23:26

nany

Re : Impossible d'installer de nouveaux paquets

Bon, il faut mettre un peu les mains dans le cambouis.

echo -e "#\x21/bin/bash\n/bin/true" | sudo tee /var/lib/dpkg/info/linux-image-extra-4.4.0-93-generic.postrm
echo -e "#\x21/bin/bash\n/bin/true" | sudo tee /var/lib/dpkg/info/linux-image-4.4.0-64-generic.postrm
echo -e "#\x21/bin/bash\n/bin/true" | sudo tee /var/lib/dpkg/info/linux-image-4.4.0-93-generic.postrm

Puis redonne le retour de :

sudo dpkg -P --force-all linux-image-4.4.0-64-generic linux-image-4.4.0-93-generic linux-image-extra-4.4.0-93-generic

Hors ligne

#14 Le 31/08/2017, à 23:31

Danibe

Re : Impossible d'installer de nouveaux paquets

Je ne sais pas pourquoi, mais j'aime bien ça :


dpkg -P --force-all linux-image-4.4.0-64-generic linux-image-4.4.0-93-generic linux-image-extra-4.4.0-93-generic

root@ubuntu:~# dpkg -P --force-all linux-image-4.4.0-64-generic linux-image-4.4.0-93-generic linux-image-extra-4.4.0-93-generic
dpkg: linux-image-extra-4.4.0-93-generic : problème de dépendance, mais suppression comme demandé :
 linux-image-generic dépend de linux-image-extra-4.4.0-93-generic ; cependant :
  Le paquet linux-image-extra-4.4.0-93-generic doit être supprimé.
 linux-signed-image-generic dépend de linux-image-extra-4.4.0-93-generic.

(Lecture de la base de données... 285833 fichiers et répertoires déjà installés.)
Suppression de linux-image-extra-4.4.0-93-generic (4.4.0-93.116) ...
Purge des fichiers de configuration de linux-image-extra-4.4.0-93-generic (4.4.0-93.116) ...
dpkg: linux-image-4.4.0-64-generic : problème de dépendance, mais suppression comme demandé :
 linux-signed-image-4.4.0-64-generic dépend de linux-image-4.4.0-64-generic (= 4.4.0-64.85).

Suppression de linux-image-4.4.0-64-generic (4.4.0-64.85) ...
Purge des fichiers de configuration de linux-image-4.4.0-64-generic (4.4.0-64.85) ...
dpkg : avertissement : lors de la suppression de linux-image-4.4.0-64-generic, le répertoire « /lib/modules/4.4.0-64-generic/kernel/arch/x86 » n'était pas vide, donc il n'a pas été supprimé
dpkg : avertissement : lors de la suppression de linux-image-4.4.0-64-generic, le répertoire « /lib/modules/4.4.0-64-generic/kernel/ubuntu/vbox » n'était pas vide, donc il n'a pas été supprimé
dpkg : avertissement : lors de la suppression de linux-image-4.4.0-64-generic, le répertoire « /lib/modules/4.4.0-64-generic/kernel/fs/exofs » n'était pas vide, donc il n'a pas été supprimé
dpkg : avertissement : lors de la suppression de linux-image-4.4.0-64-generic, le répertoire « /lib/modules/4.4.0-64-generic/kernel/fs/nls » n'était pas vide, donc il n'a pas été supprimé
dpkg : avertissement : lors de la suppression de linux-image-4.4.0-64-generic, le répertoire « /lib/modules/4.4.0-64-generic/kernel/net/sunrpc » n'était pas vide, donc il n'a pas été supprimé
dpkg : avertissement : lors de la suppression de linux-image-4.4.0-64-generic, le répertoire « /lib/modules/4.4.0-64-generic/kernel/sound/core » n'était pas vide, donc il n'a pas été supprimé
dpkg : avertissement : lors de la suppression de linux-image-4.4.0-64-generic, le répertoire « /lib/modules/4.4.0-64-generic/kernel/sound/pci » n'était pas vide, donc il n'a pas été supprimé
dpkg : avertissement : lors de la suppression de linux-image-4.4.0-64-generic, le répertoire « /lib/modules/4.4.0-64-generic/kernel/sound/drivers » n'était pas vide, donc il n'a pas été supprimé
dpkg : avertissement : lors de la suppression de linux-image-4.4.0-64-generic, le répertoire « /lib/modules/4.4.0-64-generic/kernel/drivers/target » n'était pas vide, donc il n'a pas été supprimé
dpkg : avertissement : lors de la suppression de linux-image-4.4.0-64-generic, le répertoire « /lib/modules/4.4.0-64-generic/kernel/drivers/platform/x86 » n'était pas vide, donc il n'a pas été supprimé
dpkg : avertissement : lors de la suppression de linux-image-4.4.0-64-generic, le répertoire « /lib/modules/4.4.0-64-generic/kernel/drivers/char/hw_random » n'était pas vide, donc il n'a pas été supprimé
dpkg : avertissement : lors de la suppression de linux-image-4.4.0-64-generic, le répertoire « /lib/modules/4.4.0-64-generic/kernel/drivers/firmware » n'était pas vide, donc il n'a pas été supprimé
dpkg : avertissement : lors de la suppression de linux-image-4.4.0-64-generic, le répertoire « /lib/modules/4.4.0-64-generic/kernel/drivers/pps » n'était pas vide, donc il n'a pas été supprimé
dpkg : avertissement : lors de la suppression de linux-image-4.4.0-64-generic, le répertoire « /lib/modules/4.4.0-64-generic/kernel/drivers/misc/eeprom » n'était pas vide, donc il n'a pas été supprimé
dpkg : avertissement : lors de la suppression de linux-image-4.4.0-64-generic, le répertoire « /lib/modules/4.4.0-64-generic/kernel/drivers/block » n'était pas vide, donc il n'a pas été supprimé
dpkg : avertissement : lors de la suppression de linux-image-4.4.0-64-generic, le répertoire « /lib/modules/4.4.0-64-generic/kernel/drivers/pcmcia » n'était pas vide, donc il n'a pas été supprimé
dpkg : avertissement : lors de la suppression de linux-image-4.4.0-64-generic, le répertoire « /lib/modules/4.4.0-64-generic/kernel/drivers/i2c/algos » n'était pas vide, donc il n'a pas été supprimé
dpkg : avertissement : lors de la suppression de linux-image-4.4.0-64-generic, le répertoire « /lib/modules/4.4.0-64-generic/kernel/drivers/scsi » n'était pas vide, donc il n'a pas été supprimé
dpkg : avertissement : lors de la suppression de linux-image-4.4.0-64-generic, le répertoire « /lib/modules/4.4.0-64-generic/kernel/drivers/watchdog » n'était pas vide, donc il n'a pas été supprimé
dpkg : avertissement : lors de la suppression de linux-image-4.4.0-64-generic, le répertoire « /lib/modules/4.4.0-64-generic/kernel/drivers/uwb » n'était pas vide, donc il n'a pas été supprimé
dpkg : avertissement : lors de la suppression de linux-image-4.4.0-64-generic, le répertoire « /lib/modules/4.4.0-64-generic/kernel/drivers/usb/misc » n'était pas vide, donc il n'a pas été supprimé
dpkg : avertissement : lors de la suppression de linux-image-4.4.0-64-generic, le répertoire « /lib/modules/4.4.0-64-generic/kernel/drivers/usb/storage » n'était pas vide, donc il n'a pas été supprimé
dpkg : avertissement : lors de la suppression de linux-image-4.4.0-64-generic, le répertoire « /lib/modules/4.4.0-64-generic/kernel/drivers/usb/wusbcore » n'était pas vide, donc il n'a pas été supprimé
dpkg : avertissement : lors de la suppression de linux-image-4.4.0-64-generic, le répertoire « /lib/modules/4.4.0-64-generic/kernel/drivers/net/ethernet/broadcom » n'était pas vide, donc il n'a pas été supprimé
dpkg : avertissement : lors de la suppression de linux-image-4.4.0-64-generic, le répertoire « /lib/modules/4.4.0-64-generic/kernel/drivers/net/ethernet/amd » n'était pas vide, donc il n'a pas été supprimé
dpkg : avertissement : lors de la suppression de linux-image-4.4.0-64-generic, le répertoire « /lib/modules/4.4.0-64-generic/kernel/drivers/net/ethernet/intel » n'était pas vide, donc il n'a pas été supprimé
dpkg : avertissement : lors de la suppression de linux-image-4.4.0-64-generic, le répertoire « /lib/modules/4.4.0-64-generic/kernel/drivers/net/ethernet/realtek » n'était pas vide, donc il n'a pas été supprimé
dpkg : avertissement : lors de la suppression de linux-image-4.4.0-64-generic, le répertoire « /lib/modules/4.4.0-64-generic/kernel/drivers/net/ethernet/8390 » n'était pas vide, donc il n'a pas été supprimé
dpkg : avertissement : lors de la suppression de linux-image-4.4.0-64-generic, le répertoire « /lib/modules/4.4.0-64-generic/kernel/drivers/net/caif » n'était pas vide, donc il n'a pas été supprimé
dpkg : avertissement : lors de la suppression de linux-image-4.4.0-64-generic, le répertoire « /lib/modules/4.4.0-64-generic/kernel/drivers/gpu/drm » n'était pas vide, donc il n'a pas été supprimé
dpkg : avertissement : lors de la suppression de linux-image-4.4.0-64-generic, le répertoire « /lib/modules/4.4.0-64-generic/kernel/drivers/hid/usbhid » n'était pas vide, donc il n'a pas été supprimé
dpkg : avertissement : lors de la suppression de linux-image-4.4.0-64-generic, le répertoire « /lib/modules/4.4.0-64-generic/kernel/drivers/uio » n'était pas vide, donc il n'a pas été supprimé
dpkg : avertissement : lors de la suppression de linux-image-4.4.0-64-generic, le répertoire « /lib/modules/4.4.0-64-generic/kernel/drivers/ata » n'était pas vide, donc il n'a pas été supprimé
dpkg : avertissement : lors de la suppression de linux-image-4.4.0-64-generic, le répertoire « /lib/modules/4.4.0-64-generic/kernel/drivers/input/gameport » n'était pas vide, donc il n'a pas été supprimé
dpkg : avertissement : lors de la suppression de linux-image-4.4.0-64-generic, le répertoire « /lib/modules/4.4.0-64-generic/kernel/drivers/input/mouse » n'était pas vide, donc il n'a pas été supprimé
dpkg : avertissement : lors de la suppression de linux-image-4.4.0-64-generic, le répertoire « /lib/modules/4.4.0-64-generic/kernel/drivers/input/misc » n'était pas vide, donc il n'a pas été supprimé
dpkg : avertissement : lors de la suppression de linux-image-4.4.0-64-generic, le répertoire « /lib/modules/4.4.0-64-generic/kernel/drivers/input/serio » n'était pas vide, donc il n'a pas été supprimé
dpkg : avertissement : lors de la suppression de linux-image-4.4.0-64-generic, le répertoire « /lib/modules/4.4.0-64-generic/kernel/drivers/input/touchscreen » n'était pas vide, donc il n'a pas été supprimé
dpkg : avertissement : lors de la suppression de linux-image-4.4.0-64-generic, le répertoire « /lib/modules/4.4.0-64-generic/kernel/drivers/infiniband/ulp » n'était pas vide, donc il n'a pas été supprimé
dpkg : avertissement : lors de la suppression de linux-image-4.4.0-64-generic, le répertoire « /lib/modules/4.4.0-64-generic/kernel/drivers/infiniband/core » n'était pas vide, donc il n'a pas été supprimé
dpkg : avertissement : lors de la suppression de linux-image-4.4.0-64-generic, le répertoire « /lib/modules/4.4.0-64-generic/kernel/drivers/infiniband/hw » n'était pas vide, donc il n'a pas été supprimé
dpkg : avertissement : lors de la suppression de linux-image-4.4.0-64-generic, le répertoire « /lib/modules/4.4.0-64-generic/kernel/drivers/tty/serial » n'était pas vide, donc il n'a pas été supprimé
dpkg : avertissement : lors de la suppression de linux-image-4.4.0-64-generic, le répertoire « /lib/modules/4.4.0-64-generic/kernel/drivers/video/fbdev/core » n'était pas vide, donc il n'a pas été supprimé
dpkg : avertissement : lors de la suppression de linux-image-4.4.0-64-generic, le répertoire « /lib/modules/4.4.0-64-generic/kernel/drivers/parport » n'était pas vide, donc il n'a pas été supprimé
dpkg : avertissement : lors de la suppression de linux-image-4.4.0-64-generic, le répertoire « /lib/modules/4.4.0-64-generic/kernel/drivers/mtd » n'était pas vide, donc il n'a pas été supprimé
dpkg: linux-image-4.4.0-93-generic : problème de dépendance, mais suppression comme demandé :
 linux-image-generic dépend de linux-image-4.4.0-93-generic.
 linux-signed-image-4.4.0-93-generic dépend de linux-image-4.4.0-93-generic (= 4.4.0-93.116).

Suppression de linux-image-4.4.0-93-generic (4.4.0-93.116) ...
Purge des fichiers de configuration de linux-image-4.4.0-93-generic (4.4.0-93.116) ...

Hors ligne

#15 Le 31/08/2017, à 23:38

nany

Re : Impossible d'installer de nouveaux paquets

Bien, supprimons maintenant ce répertoire qui n’a pas pu être supprimé :

sudo rm -rfv /lib/modules/4.4.0-64-generic

Puis redonne le retour de :

sudo apt-get install -fy

Hors ligne

#16 Le 31/08/2017, à 23:57

Danibe

Re : Impossible d'installer de nouveaux paquets

Voilà :

apt-get install -fy

root@ubuntu:~# apt-get install -fy
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances       
Lecture des informations d'état... Fait
Correction des dépendances... Fait
Les paquets suivants ont été installés automatiquement et ne sont plus nécessaires :
  linux-headers-4.4.0-64 linux-headers-4.4.0-64-generic linux-image-4.4.0-64-generic linux-signed-image-4.4.0-64-generic
Veuillez utiliser « sudo apt autoremove » pour les supprimer.
The following additional packages will be installed:
  linux-image-4.4.0-64-generic linux-image-4.4.0-93-generic linux-image-extra-4.4.0-93-generic
Paquets suggérés :
  fdutils linux-doc-4.4.0 | linux-source-4.4.0 linux-tools
Les NOUVEAUX paquets suivants seront installés :
  linux-image-4.4.0-64-generic linux-image-4.4.0-93-generic linux-image-extra-4.4.0-93-generic
0 mis à jour, 3 nouvellement installés, 0 à enlever et 0 non mis à jour.
1 partiellement installés ou enlevés.
Il est nécessaire de prendre 79,6 Mo dans les archives.
Après cette opération, 286 Mo d'espace disque supplémentaires seront utilisés.
Réception de:1 http://fr.archive.ubuntu.com/ubuntu xenial-updates/main amd64 linux-image-4.4.0-64-generic amd64 4.4.0-64.85 [21,8 MB]
Réception de:2 http://fr.archive.ubuntu.com/ubuntu xenial-updates/main amd64 linux-image-4.4.0-93-generic amd64 4.4.0-93.116 [21,9 MB]                                                                     
Réception de:3 http://fr.archive.ubuntu.com/ubuntu xenial-updates/main amd64 linux-image-extra-4.4.0-93-generic amd64 4.4.0-93.116 [35,9 MB]                                                               
79,6 Mo réceptionnés en 3min 45s (354 ko/s)                                                                                                                                                                
Sélection du paquet linux-image-4.4.0-64-generic précédemment désélectionné.
(Lecture de la base de données... 285768 fichiers et répertoires déjà installés.)
Préparation du dépaquetage de .../linux-image-4.4.0-64-generic_4.4.0-64.85_amd64.deb ...
Examining /etc/kernel/preinst.d/
run-parts: executing /etc/kernel/preinst.d/intel-microcode 4.4.0-64-generic /boot/vmlinuz-4.4.0-64-generic
Done.
Dépaquetage de linux-image-4.4.0-64-generic (4.4.0-64.85) ...
Sélection du paquet linux-image-4.4.0-93-generic précédemment désélectionné.
Préparation du dépaquetage de .../linux-image-4.4.0-93-generic_4.4.0-93.116_amd64.deb ...
Examining /etc/kernel/preinst.d/
run-parts: executing /etc/kernel/preinst.d/intel-microcode 4.4.0-93-generic /boot/vmlinuz-4.4.0-93-generic
Done.
Dépaquetage de linux-image-4.4.0-93-generic (4.4.0-93.116) ...
Sélection du paquet linux-image-extra-4.4.0-93-generic précédemment désélectionné.
Préparation du dépaquetage de .../linux-image-extra-4.4.0-93-generic_4.4.0-93.116_amd64.deb ...
Dépaquetage de linux-image-extra-4.4.0-93-generic (4.4.0-93.116) ...
Paramétrage de grub-efi-amd64 (2.02~beta2-36ubuntu3.12) ...
/var/lib/dpkg/info/grub-efi-amd64.config: 1: /etc/default/grub: !Windows: not found
/var/lib/dpkg/info/grub-efi-amd64.config: 1: /etc/default/grub: !Windows: not found
dpkg: erreur de traitement du paquet grub-efi-amd64 (--configure) :
 le sous-processus script post-installation installé a retourné une erreur de sortie d'état 127
Paramétrage de linux-image-4.4.0-64-generic (4.4.0-64.85) ...
Running depmod.
update-initramfs: deferring update (hook will be called later)
The link /initrd.img is a dangling linkto /boot/initrd.img-4.4.0-93-generic
Examining /etc/kernel/postinst.d.
run-parts: executing /etc/kernel/postinst.d/apt-auto-removal 4.4.0-64-generic /boot/vmlinuz-4.4.0-64-generic
run-parts: executing /etc/kernel/postinst.d/initramfs-tools 4.4.0-64-generic /boot/vmlinuz-4.4.0-64-generic
update-initramfs: Generating /boot/initrd.img-4.4.0-64-generic
run-parts: executing /etc/kernel/postinst.d/pm-utils 4.4.0-64-generic /boot/vmlinuz-4.4.0-64-generic
run-parts: executing /etc/kernel/postinst.d/unattended-upgrades 4.4.0-64-generic /boot/vmlinuz-4.4.0-64-generic
run-parts: executing /etc/kernel/postinst.d/update-notifier 4.4.0-64-generic /boot/vmlinuz-4.4.0-64-generic
run-parts: executing /etc/kernel/postinst.d/zz-update-grub 4.4.0-64-generic /boot/vmlinuz-4.4.0-64-generic
/usr/sbin/grub-mkconfig: 1: /etc/default/grub: !Windows: not found
/usr/sbin/grub-mkconfig: 1: /etc/default/grub: !Windows: not found
run-parts: /etc/kernel/postinst.d/zz-update-grub exited with return code 127
Failed to process /etc/kernel/postinst.d at /var/lib/dpkg/info/linux-image-4.4.0-64-generic.postinst line 1052.
dpkg: erreur de traitement du paquet linux-image-4.4.0-64-generic (--configure) :
 le sous-processus script post-installation installé a retourné une erreur de sortie d'état 2
Paramétrage de linux-image-4.4.0-93-generic (4.4.0-93.116) ...
Running depmod.
update-initramfs: deferring update (hook will be called later)
Examining /etc/kernel/postinst.d.
run-parts: executing /etc/kernel/postinst.d/apt-auto-removal 4.4.0-93-generic /boot/vmlinuz-4.4.0-93-generic
run-parts: executing /etc/kernel/postinst.d/initramfs-tools 4.4.0-93-generic /boot/vmlinuz-4.4.0-93-generic
update-initramfs: Generating /boot/initrd.img-4.4.0-93-generic
run-parts: executing /etc/kernel/postinst.d/pm-utils 4.4.0-93-generic /boot/vmlinuz-4.4.0-93-generic
run-parts: executing /etc/kernel/postinst.d/unattended-upgrades 4.4.0-93-generic /boot/vmlinuz-4.4.0-93-generic
run-parts: executing /etc/kernel/postinst.d/update-notifier 4.4.0-93-generic /boot/vmlinuz-4.4.0-93-generic
run-parts: executing /etc/kernel/postinst.d/zz-update-grub 4.4.0-93-generic /boot/vmlinuz-4.4.0-93-generic
/usr/sbin/grub-mkconfig: 1: /etc/default/grub: !Windows: not found
/usr/sbin/grub-mkconfig: 1: /etc/default/grub: !Windows: not found
run-parts: /etc/kernel/postinst.d/zz-update-grub exited with return code 127
Failed to process /etc/kernel/postinst.d at /var/lib/dpkg/info/linux-image-4.4.0-93-generic.postinst line 1052.
dpkg: erreur de traitement du paquet linux-image-4.4.0-93-generic (--configure) :
 le sous-processus script post-installation installé a retourné une erreur de sortie d'état 2
dpkg: des problèmes de dépendances empêchent la configuration de linux-image-extra-4.4.0-93-generic :
 linux-image-extra-4.4.0-93-generic dépend de linux-image-4.4.0-93-generic ; cependant :
 Le paquet linux-image-4.4.0-93-generic n'est pas encore configuré.

dpkg: erreur de traitement du paquet linux-image-extra-4.4.0-93-generic (--configure) :
 problèmes de dépendances - laissé non configuré
Aucun rapport « apport » écrit car MaxReports a déjà été atteint
                                                                Des erreurs ont été rencontrées pendant l'exécution :
 grub-efi-amd64
 linux-image-4.4.0-64-generic
 linux-image-4.4.0-93-generic
 linux-image-extra-4.4.0-93-generic
E: Sub-process /usr/bin/dpkg returned an error code (1)

Hors ligne

#17 Le 01/09/2017, à 00:05

nany

Re : Impossible d'installer de nouveaux paquets

On tourne en rond.
Prenons le dans l’autre sens.

echo -e "#\x21/bin/bash\n/bin/true" | sudo tee /var/lib/dpkg/info/linux-image-extra-4.4.0-93-generic.postinst
echo -e "#\x21/bin/bash\n/bin/true" | sudo tee /var/lib/dpkg/info/linux-image-4.4.0-64-generic.postinst
echo -e "#\x21/bin/bash\n/bin/true" | sudo tee /var/lib/dpkg/info/linux-image-4.4.0-93-generic.postinst

Puis redonne le retour de :

sudo apt-get install -fy

Hors ligne

#18 Le 01/09/2017, à 00:10

Danibe

Re : Impossible d'installer de nouveaux paquets

Plus qu'un paquet... on avance big_smile


apt-get install -fy

root@ubuntu:~# apt-get install -fy
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances       
Lecture des informations d'état... Fait
0 mis à jour, 0 nouvellement installés, 0 à enlever et 0 non mis à jour.
4 partiellement installés ou enlevés.
Après cette opération, 0 o d'espace disque supplémentaires seront utilisés.
Paramétrage de grub-efi-amd64 (2.02~beta2-36ubuntu3.12) ...
/var/lib/dpkg/info/grub-efi-amd64.config: 1: /etc/default/grub: !Windows: not found
/var/lib/dpkg/info/grub-efi-amd64.config: 1: /etc/default/grub: !Windows: not found
dpkg: erreur de traitement du paquet grub-efi-amd64 (--configure) :
 le sous-processus script post-installation installé a retourné une erreur de sortie d'état 127
Paramétrage de linux-image-4.4.0-64-generic (4.4.0-64.85) ...
Paramétrage de linux-image-4.4.0-93-generic (4.4.0-93.116) ...
Paramétrage de linux-image-extra-4.4.0-93-generic (4.4.0-93.116) ...
Des erreurs ont été rencontrées pendant l'exécution :
 grub-efi-amd64
E: Sub-process /usr/bin/dpkg returned an error code (1)

Hors ligne

#19 Le 01/09/2017, à 00:17

nany

Re : Impossible d'installer de nouveaux paquets

Bien, donne le retour de :

cat /var/lib/dpkg/info/grub-efi-amd64

Hors ligne

#20 Le 01/09/2017, à 00:20

Danibe

Re : Impossible d'installer de nouveaux paquets

Il n'existe aucun fichier de ce type, donc j'ai fait "tab" pour avoir la liste des fichiers du même répertoire qui commencent par cela et j'ai :

grub-efi-amd64-bin.list         grub-efi-amd64.config           grub-efi-amd64.postinst         grub-efi-amd64.prerm            grub-efi-amd64-signed.postinst  
grub-efi-amd64-bin.md5sums      grub-efi-amd64.list             grub-efi-amd64.postrm           grub-efi-amd64-signed.list      grub-efi-amd64.templates        
grub-efi-amd64.conffiles        grub-efi-amd64.md5sums          grub-efi-amd64.preinst          grub-efi-amd64-signed.md5sums

Hors ligne

#21 Le 01/09/2017, à 00:26

nany

Re : Impossible d'installer de nouveaux paquets

Oups ! Un oubli de ma part.

cat /var/lib/dpkg/info/grub-efi-amd64.postinst

Hors ligne

#22 Le 01/09/2017, à 00:28

Danibe

Re : Impossible d'installer de nouveaux paquets

Le retour fait 782 lignes... c'est sûr que je peux poster ici ?

Hors ligne

#23 Le 01/09/2017, à 00:35

Danibe

Re : Impossible d'installer de nouveaux paquets

sinon je le mets sur un dl de free.fr

Hors ligne

#24 Le 01/09/2017, à 00:43

nany

Hors ligne

#25 Le 01/09/2017, à 00:45

Danibe

Re : Impossible d'installer de nouveaux paquets

cat /var/lib/dpkg/info/grub-efi-amd64.postinst

root@ubuntu:~# cat /var/lib/dpkg/info/grub-efi-amd64.postinst 
#!/bin/bash
set -e

merge_debconf_into_conf()
{
  local tmpfile; tmpfile="$1"
  local setting; setting="$2"
  local template; template="$3"

  db_get "$template"
  local value; value="$(echo "$RET" | sed -e 's,[$`"\],\\&,g')"
  if grep -q "^${setting}=" "$tmpfile"; then
    value="$(echo "$value" | sed -e 's,[\@],\\&,g')"
    sed -i -re "s@^(${setting}=).*@\1\"${value}\"@" "$tmpfile"
  else
    echo >> "$tmpfile"
    echo "${setting}=\"${value}\"" >> "$tmpfile"
  fi
}

get_wubi_device()
{
  if [ ! -x /usr/share/lupin-support/grub-mkimage ] || \
     ! /usr/share/lupin-support/grub-mkimage --test; then
    return 1
  fi

  local bootdev="$(grub-probe --target=device /boot)" || true
  local loop_file=
  case $bootdev in
    /dev/loop/*|/dev/loop[0-9])
      loop_file="$(losetup "$bootdev" | sed -e "s/^[^(]*(\([^)]\+\)).*/\1/")"
      # If it's loop-mounted from another device, it isn't Wubi.
      case $loop_file in
        /dev/*) return 1 ;;
      esac
    ;;
    *) return 1 ;;
  esac

  echo "$bootdev"
}

# This only works on a Linux system with udev running.  This is probably the
# vast majority of systems where we need any of this, though, and we fall
# back reasonably gracefully if we don't have it.
cached_available_ids=
available_ids()
{
  local id path

  if [ "$cached_available_ids" ]; then
    echo "$cached_available_ids"
    return
  fi

  [ -d /dev/disk/by-id ] || return
  cached_available_ids="$(
    for path in /dev/disk/by-id/*; do
      [ -e "$path" ] || continue
      printf '%s %s\n' "$path" "$(readlink -f "$path")"
    done | sort -k2 -s -u | cut -d' ' -f1
  )"
  echo "$cached_available_ids"
}

# Returns non-zero and no output if no mapping can be found.
device_to_id()
{
  local id
  for id in $(available_ids); do
    if [ "$(readlink -f "$id")" = "$(readlink -f "$1")" ]; then
      echo "$id"
      return 0
    fi
  done
  # Fall back to the plain device name if there's no by-id link for it.
  if [ -e "$1" ]; then
    echo "$1"
    return 0
  fi
  return 1
}

devices_to_ids()
{
  local device id ids
  ids=
  for device; do
    id="$(device_to_id "$device" || true)"
    if [ "$id" ]; then
      ids="${ids:+$ids, }$id"
    fi
  done
  echo "$ids"
}

all_disks()
{
  local id
  for id in $(available_ids); do
    case $id in
      *-part*) ;;
      *) echo "$id" ;;
    esac
  done
}

all_partitions()
{
  local id ids
  ids=
  for id in $(available_ids); do
    if [ "$id" != "$1" ] && [ "${id%-part*}" = "$1" ]; then
      ids="${ids:+$ids }$id"
    fi
  done
  echo "$ids"
}

# In order to determine whether we accidentally ran grub-install without
# upgrade-from-grub-legacy on versions older than 1.98+20100617-1, we need
# to be able to scan a disk to determine whether GRUB 2 was installed in its
# boot sector.  This is specific to i386-pc (but that's the only platform
# where we need it).
scan_grub2()
{
  if ! dd if="$1" bs=512 count=1 2>/dev/null | grep -aq GRUB; then
    # No version of GRUB is installed.
    return 1
  fi

  # The GRUB boot sector always starts with a JMP instruction.
  initial_jmp="$(dd if="$1" bs=2 count=1 2>/dev/null | od -Ax -tx1 | \
                 head -n1 | cut -d' ' -f2,3)"
  [ "$initial_jmp" ] || return 1
  initial_jmp_opcode="${initial_jmp%% *}"
  [ "$initial_jmp_opcode" = eb ] || return 1
  initial_jmp_operand="${initial_jmp#* }"
  case $initial_jmp_operand in
    47|4b|4c|63)
      # I believe this covers all versions of GRUB 2 up to the package
      # version where we gained a more explicit mechanism.  GRUB Legacy
      # always had 48 here.
      return 0
    ;;
  esac

  return 1
}

# for Linux
sysfs_size()
{
  local num_sectors sector_size size
  # Try to find out the size without relying on a partitioning tool being
  # installed. This isn't too hard on Linux 2.6 with sysfs, but we have to
  # try a couple of variants on detection of the sector size.
  if [ -e "$1/size" ]; then
    num_sectors="$(cat "$1/size")"
    sector_size=512
    if [ -e "$1/queue/logical_block_size" ]; then
      sector_size="$(cat "$1/queue/logical_block_size")"
    elif [ -e "$1/queue/hw_sector_size" ]; then
      sector_size="$(cat "$1/queue/hw_sector_size")"
    fi
    size="$(expr "$num_sectors" \* "$sector_size" / 1000 / 1000)"
  fi
  [ "$size" ] || size='???'
  echo "$size"
}

# for kFreeBSD
camcontrol_size()
{
  local num_sectors sector_size size=

  if num_sectors="$(camcontrol readcap "$1" -q -s -N)"; then
    sector_size="$(camcontrol readcap "$1" -q -b)"
    size="$(expr "$num_sectors" \* "$sector_size" / 1000 / 1000)"
  fi

  [ "$size" ] || size='???'
  echo "$size"
}

# Returns value in $RET, like a debconf command.
describe_disk()
{
  local disk id base size
  disk="$1"
  id="$2"

  model=
  case $(uname -s) in
    Linux)
      if which udevadm >/dev/null 2>&1; then
        size="$(sysfs_size "/sys$(udevadm info -n "$disk" -q path)")"
      else
        base="${disk#/dev/}"
        base="$(printf %s "$base" | sed 's,/,!,g')"
        size="$(sysfs_size "/sys/block/$base")"
      fi

      if which udevadm >/dev/null 2>&1; then
        model="$(udevadm info -n "$disk" -q property | sed -n 's/^ID_MODEL=//p')"
        if [ -z "$model" ]; then
          model="$(udevadm info -n "$disk" -q property | sed -n 's/^DM_NAME=//p')"
          if [ -z "$model" ]; then
            model="$(udevadm info -n "$disk" -q property | sed -n 's/^MD_NAME=//p')"
            if [ -z "$model" ] && which dmsetup >/dev/null 2>&1; then
              model="$(dmsetup info -c --noheadings -o name "$disk" 2>/dev/null || true)"
            fi
          fi
        fi
      fi
    ;;
    GNU/kFreeBSD)
      disk_basename=$(basename "$disk")
      size="$(camcontrol_size "$disk_basename")"
      model="$(camcontrol inquiry "$disk_basename" | sed -ne "s/^pass0: <\([^>]*\)>.*/\1/p")"
    ;;
  esac

  [ "$model" ] || model='???'

  db_subst grub-pc/disk_description DEVICE "$disk"
  db_subst grub-pc/disk_description SIZE "$size"
  db_subst grub-pc/disk_description MODEL "$model"
  db_metaget grub-pc/disk_description description
}

# Returns value in $RET, like a debconf command.
describe_partition()
{
  local disk part id path diskbase partbase size
  disk="$1"
  part="$2"
  id="$3"
  path="$4"

  if which udevadm >/dev/null 2>&1; then
    size="$(sysfs_size "/sys$(udevadm info -n "$part" -q path)")"
  else
    diskbase="${disk#/dev/}"
    diskbase="$(printf %s "$diskbase" | sed 's,/,!,g')"
    partbase="${part#/dev/}"
    partbase="$(printf %s "$partbase" | sed 's,/,!,g')"
    size="$(sysfs_size "/sys/block/$diskbase/$partbase")"
  fi

  db_subst grub-pc/partition_description DEVICE "$part"
  db_subst grub-pc/partition_description SIZE "$size"
  db_subst grub-pc/partition_description PATH "$path"
  db_metaget grub-pc/partition_description description
}

usable_partitions()
{
  local last_partition path partition partition_id

  last_partition=
  for path in / /boot /boot/grub; do
    partition="$(grub-probe -t device "$path" || true)"
    if [ -z "$partition" ] || [ "$partition" = "$last_partition" ]; then
      continue
    fi
    partition_id="$(device_to_id "$partition" || true)"
    echo "$path:$partition_id"
    last_partition="$partition"
  done | sort -t: -k2
}

get_mountpoint()
{
  local relpath boot_mountpoint

  relpath="$(grub-mkrelpath "$1")"
  boot_mountpoint="${1#$relpath}"
  echo "${boot_mountpoint:-/}"
}

config_item()
{
  for x in /etc/default/grub /etc/default/grub.d/*.cfg; do
    if [ -e "$x" ]; then
      . "$x"
    fi
  done
  if [ "$(eval echo "\${$1+set}")" = set ]; then
    eval echo "\$$1"
  else
    return
  fi
}

running_in_container()
{
  type systemd-detect-virt >/dev/null 2>&1 && systemd-detect-virt --quiet --container
}

run_grub_install()
{
    if ! grub-install $@ ; then
        echo "Failed: grub-install $@" >&2
        echo "WARNING: Bootloader is not properly installed, system may not be bootable" >&2
    fi
}

case "$1" in
  configure)
    . /usr/share/debconf/confmodule

    devicemap_regenerated=

    if egrep -q '^[[:space:]]*post(inst|rm)_hook[[:space:]]*=[[:space:]]*(/sbin/|/usr/sbin/)?update-grub' /etc/kernel-img.conf 2>/dev/null; then
      echo 'Removing update-grub hooks from /etc/kernel-img.conf in favour of' >&2
      echo '/etc/kernel/ hooks.' >&2
      sed -ri /etc/kernel-img.conf -e '\%^[[:space:]]*post(inst|rm)_hook[[:space:]]*=[[:space:]]*(/sbin/|/usr/sbin/)?update-grub%d'
    fi

    case grub-efi-amd64 in
      grub-pc)
        mkdir -p /boot/grub

        if test -e /boot/grub/device.map && ! test -e /boot/grub/core.img && \
           ! test -e /boot/grub/x86_64-efi/core.img; then
          # Looks like your device.map was generated by GRUB Legacy, which
          # used to generate broken device.map (see #422851).  Avoid the risk
          # by regenerating it.
          grub-mkdevicemap --no-floppy
          devicemap_regenerated=1
        fi
      ;;
    esac

    if test -z "$devicemap_regenerated" && test -s /boot/grub/device.map && \
       dpkg --compare-versions "$2" lt-nl 1.98+20100702-1 && \
       test "$(uname -s)" = Linux; then
      # Earlier versions of GRUB used unstable device names in device.map,
      # which caused a variety of problems.  There is some risk associated with
      # regenerating it (so we prompt the user if it's non-trivial), but on the
      # whole it's less risky to move to /dev/disk/by-id/.
      devicemap_lines="$(egrep -v '^[[:space:]]+#' /boot/grub/device.map | wc -l)"
      grub-mkdevicemap --no-floppy
      devicemap_regenerated=1
      if test "$devicemap_lines" != 1; then
        db_input critical grub2/device_map_regenerated || true
        db_go || true
      fi
    fi

    if test -z "$devicemap_regenerated" && \
       dpkg --compare-versions "$2" lt-nl 1.99~20101210-2 && \
       grep -qs /md-uuid- /boot/grub/device.map; then
      echo "Removing MD devices from device.map, since the BIOS cannot read from these." >&2
      sed -i '/\/md-uuid-/d' /boot/grub/device.map
    fi

    tmp_default_grub="$(mktemp -t grub.XXXXXXXXXX)"
    trap "rm -f ${tmp_default_grub}" EXIT
    cp -p /usr/share/grub/default/grub ${tmp_default_grub}

    merge_debconf_into_conf "$tmp_default_grub" GRUB_CMDLINE_LINUX grub2/linux_cmdline
    merge_debconf_into_conf "$tmp_default_grub" GRUB_CMDLINE_LINUX_DEFAULT grub2/linux_cmdline_default

    case grub-efi-amd64 in
      grub-pc)
        merge_debconf_into_conf "$tmp_default_grub" GRUB_TIMEOUT grub-pc/timeout
        sed -i -e 's/^\(GRUB_TIMEOUT=\)"\([0-9][0-9]*\)"/\1\2/' "$tmp_default_grub"
        db_get grub-pc/hidden_timeout
        if [ "$RET" = false ]; then
          sed -i -e 's/^GRUB_HIDDEN_TIMEOUT=/#&/' "$tmp_default_grub"
        fi
      ;;
      grub-ieee1275)
        if grep ^platform /proc/cpuinfo | grep -q PowerNV; then
		cat <<-EOF >>"$tmp_default_grub"

		# Disable os-prober for ppc64el on the PowerNV platform (for Petitboot)
		GRUB_DISABLE_OS_PROBER=true
		EOF
        fi
        ;;
    esac

    ucf --three-way --debconf-ok --sum-file=/usr/share/grub/default/grub.md5sum ${tmp_default_grub} /etc/default/grub
    package="$(ucfq --with-colons /etc/default/grub | cut -d : -f 2)"
    if echo $package | grep -q "^grub-" ; then
      ucfr --force grub-efi-amd64 /etc/default/grub
    else
      ucfr grub-efi-amd64 /etc/default/grub
    fi

    case grub-efi-amd64 in
      grub-pc)

        fix_mixed_system=
        if test -e /boot/grub/stage2 && test -e /boot/grub/menu.lst && \
           ! test -e /boot/grub/grub2-installed && \
           test -z "$UPGRADE_FROM_GRUB_LEGACY"; then
          # Unfortunately, it's still possible that the user upgraded fully
          # to GRUB 2 in some way other than running
          # upgrade-from-grub-legacy; perhaps they ran grub-install by hand
          # for some reason.  It's really quite difficult to detect this
          # situation, because the only difference between this and a
          # working chainloaded setup is that in this case grub-setup has
          # been run.  So, to try to tell the difference, we scan the boot
          # sectors of all disks for a GRUB 2 boot sector.  Hopefully this
          # won't cause too much to explode, since I can't think of a better
          # method.
          grub2_disks=
          for disk in $(all_disks); do
            if scan_grub2 "$disk"; then
              grub2_disks="${grub2_disks:+$grub2_disks }$(readlink -f "$disk")"
            fi
          done
          if [ "$grub2_disks" ]; then
            # No || true here; it's vital that the user sees this, and it's
            # better to throw an error than to do the wrong thing.
            db_subst grub-pc/mixed_legacy_and_grub2 DISKS "$grub2_disks"
            db_fset grub-pc/mixed_legacy_and_grub2 seen false
            db_input critical grub-pc/mixed_legacy_and_grub2
            db_go
            db_get grub-pc/mixed_legacy_and_grub2
            if [ "$RET" = true ]; then
              db_reset grub-pc/install_devices
              UPGRADE_FROM_GRUB_LEGACY=1
              fix_mixed_system=1
              # Fall through to normal installation logic.
            fi
          fi
        fi

        # Make sure that Wubi users never see confusing device prompts.
        # Wubi is a very specialised hack that does complicated things with
        # grub-install diversions to create an image that's chained from the
        # Windows boot loader to boot an operating system from a file on a
        # Windows file system.  In these circumstances, prompting for where
        # to install GRUB is not going to help anyone.
        wubi_device="$(get_wubi_device)" || true
        if [ "$wubi_device" ]; then
          db_set grub-pc/install_devices "$wubi_device"
          db_fset grub-pc/install_devices seen true
        fi

        if test -e /boot/grub/stage2 && test -e /boot/grub/menu.lst && \
           ! test -e /boot/grub/grub2-installed && \
           test -z "$UPGRADE_FROM_GRUB_LEGACY"; then
          db_get grub-pc/chainload_from_menu.lst
          if $RET ; then
            # Create core.img (but do not risk writing to MBR).
            # Using grub-probe instead of "(hd0)" avoids (UUID=) hack slowness
            # in case /boot/grub is not on (hd0) in device.map.
            echo "Generating core.img" >&2
            grub-install --target=i386-pc --no-floppy --grub-setup=/bin/true "$(grub-probe -t drive /boot/grub)" > /dev/null

            # Update menu.lst to reflect that:
            # - core.img is present now
            # - core.img has to be the first option
            echo "Saving menu.lst backup in /boot/grub/menu.lst_backup_by_grub2_postinst" >&2
            cp /boot/grub/menu.lst{,_backup_by_grub2_postinst}
            echo "Running update-grub Legacy to hook our core.img in it" >&2
            LET_US_TRY_GRUB_2=true /usr/lib/grub-legacy/update-grub 2>&1 | sed -e "s/^/    /g" >&2
            # We just hooked GRUB 2 in menu.lst; then also generate grub.cfg.
            touch /boot/grub/grub.cfg
          fi
        elif running_in_container; then
          # Skip grub-install in containers.
          :
        elif test -z "$2" || test -e /boot/grub/core.img || \
             test -e /boot/grub/x86_64-efi/core.img || \
             test "$UPGRADE_FROM_GRUB_LEGACY" || test "$wubi_device"; then
          question=grub-pc/install_devices
          priority=high
          device_map="$(grub-mkdevicemap -m - | grep -v '^(fd[0-9]\+)' || true)"
          devices="$(echo "$device_map" | cut -f2)"
          if dpkg --compare-versions "$2" lt 1.98+20100702-1 && \
             test "$(uname -s)" = Linux && [ -z "$wubi_device" ]; then
            # Migrate to new by-id naming scheme.
            db_get grub-pc/install_devices
            old_devices="$(echo "$RET" | sed 's/, / /g')"
            new_devices=
            # Common-case optimisation: if the list of devices is
            # identical to the LHS of grub-mkdevicemap's output, then
            # there's no point asking again; just install to all disks.
            # (This handles e.g. "(hd0)" with one disk.)
            if [ "$(echo "$device_map" | cut -f1 | sort)" = \
                 "$(echo "$old_devices" | xargs -n1 | sort)" ]; then
              new_devices="$(devices_to_ids $devices)"
              db_set grub-pc/install_devices "$new_devices"
            # Alternatively, we might be installing to a single partition
            # on a single disk, and we can deal with that too if there's
            # only one available disk and it has an appropriate partition.
            # This doesn't necessarily work for multiple disks because now
            # the order matters.
            elif [ "$(echo "$device_map" | wc -l)" = 1 ] && \
                 [ "$(echo "$old_devices" | wc -w)" = 1 ] && \
                 echo "$old_devices" | grep -q ,; then
              old_device="${old_devices#(}"
              old_device="${old_device%)}"
              old_disk="${old_device%,*}"
              old_partition="${old_device##*,}"
              new_device="$(echo "$device_map" | grep "^($old_disk)" | \
                            cut -f2)"
              new_device="$(device_to_id $new_device)"
              if [ "$new_device" ]; then
                new_device="$new_device-part$old_partition"
                # Run through device_to_id again to check for existence.
                new_device="$(device_to_id $new_device)"
              fi
              if [ "$new_device" ]; then
                new_devices="$new_device"
                db_set grub-pc/install_devices "$new_device"
              fi
            fi
            if [ -z "$new_devices" ]; then
              new_devices="$(devices_to_ids $old_devices)"
              db_set grub-pc/install_devices "$new_devices"
              # Common-case optimisation: if all devices are translatable
              # to by-id and the number of devices there is the same as
              # the number of devices GRUB can see, then there's no point
              # asking again.  (This handles e.g. "/dev/sda" with one
              # disk.)
              old_devices_count="$(echo "$old_devices" | wc -w)"
              new_devices_count="$(echo "$new_devices" | wc -w)"
              devices_count="$(echo "$devices" | wc -w)"
              if [ "$old_devices_count" != "$new_devices_count" ] || \
                 [ "$new_devices_count" != "$devices_count" ]; then
                db_fset grub-pc/install_devices seen false
                db_fset grub-pc/install_devices_empty seen false
              fi
            fi
          else
            db_get grub-pc/install_devices
            valid=1
            for device in $RET; do
              if [ ! -e "${device%,}" ]; then
                valid=0
                break
              fi
            done
            if [ "$valid" = 0 ]; then
              question=grub-pc/install_devices_disks_changed
              priority=critical
              db_set "$question" "$RET"
              db_fset "$question" seen false
              db_fset grub-pc/install_devices_empty seen false
            fi
          fi

          while :; do
            ids=
            descriptions=
            partitions="$(usable_partitions)"
            for device in $devices; do
              disk_id="$(device_to_id "$device" || true)"
              if [ "$disk_id" ]; then
                ids="${ids:+$ids, }$disk_id"
                describe_disk "$(readlink -f "$device")" "$disk_id"
                RET="$(printf %s "$RET" | sed 's/,/\\,/g')"
                descriptions="${descriptions:+$descriptions, }$RET"
                for partition_pair in $partitions; do
                  partition_id="${partition_pair#*:}"
                  if [ "${partition_id#$disk_id-part}" != "$partition_id" ]; then
                    ids="${ids:+$ids, }$partition_id"
                    describe_partition "$(readlink -f "$device")" "$(readlink -f "$partition_id")" "$partition_id" "$(get_mountpoint "${partition_pair%%:*}")"
                    RET="$(printf %s "$RET" | sed 's/,/\\,/g')"
                    descriptions="${descriptions:+$descriptions, }$RET"
                  fi
                done
              fi
            done
            # Some "partitions" may in fact be at the disk level, e.g. RAID.
            # List these as well if they haven't already been listed.
            for partition_pair in $partitions; do
              partition_id="${partition_pair#*:}"
              if [ "${partition_id#*-part}" = "$partition_id" ]; then
                case ", $ids, " in
                  ", $partition_id, ") ;;
                  *)
                    ids="${ids:+$ids, }$partition_id"
                    describe_disk "$(readlink -f "$partition_id")" "$partition_id"
                    RET="$(printf %s "$RET" | sed 's/,/\\,/g')"
                    descriptions="${descriptions:+$descriptions, }$RET"
                    ;;
                esac
              fi
            done
            db_subst "$question" RAW_CHOICES "$ids"
            db_subst "$question" CHOICES "$descriptions"
            db_input "$priority" "$question" || true
            db_go
            db_get "$question"
            failed_devices=
            for i in `echo $RET | sed -e 's/, / /g'` ; do
              real_device="$(readlink -f "$i")"
              if grub-install --target=i386-pc --force --no-floppy $real_device ; then
                # We just installed GRUB 2; then also generate grub.cfg.
                touch /boot/grub/grub.cfg
              else
                failed_devices="$failed_devices $real_device"
              fi
            done

            if [ "$question" != grub-pc/install_devices ]; then
              db_set grub-pc/install_devices "$RET"
              db_fset grub-pc/install_devices seen true
            fi

            if [ "$failed_devices" ]; then
              if [ "$UPGRADE_FROM_GRUB_LEGACY" ]; then
                db_subst grub-pc/install_devices_failed_upgrade FAILED_DEVICES "$failed_devices"
                db_fset grub-pc/install_devices_failed_upgrade seen false
                if db_input critical grub-pc/install_devices_failed_upgrade; then
                  db_go
                  db_get grub-pc/install_devices_failed_upgrade
                  if [ "$RET" = true ]; then
                    db_fset "$question" seen false
                    db_fset grub-pc/install_devices_failed_upgrade seen false
                    continue
                  else
                    exit 1
                  fi
                else
                  exit 1 # noninteractive
                fi
              else
                db_subst grub-pc/install_devices_failed FAILED_DEVICES "$failed_devices"
                db_fset grub-pc/install_devices_failed seen false
                if db_input critical grub-pc/install_devices_failed; then
                  db_go
                  db_get grub-pc/install_devices_failed
                  if [ "$RET" = true ]; then
                    break
                  else
                    db_fset "$question" seen false
                    db_fset grub-pc/install_devices_failed seen false
                    continue
                  fi
                else
                  break # noninteractive
                fi
              fi
            fi

            db_get grub-pc/install_devices
            if [ -z "$RET" ]; then
              # Reset the seen flag if the current answer is false, since
              # otherwise we'll loop with no indication of why.
              db_get grub-pc/install_devices_empty
              if [ "$RET" = false ]; then
                db_fset grub-pc/install_devices_empty seen false
              fi
              if db_input critical grub-pc/install_devices_empty; then
                db_go
                db_get grub-pc/install_devices_empty
                if [ "$RET" = true ]; then
                  break
                else
                  db_fset "$question" seen false
                  db_fset grub-pc/install_devices_empty seen false
                fi
              else
                break # noninteractive
              fi
            else
              break
            fi
          done
        fi

        # /boot/grub/ has more chances of being accessible by GRUB
        for i in /usr/share/grub/unicode.pf2 ; do
          if test -e $i ; then
            mkdir -p /boot/grub
            cp $i /boot/grub/
          fi
        done

        if [ "$fix_mixed_system" ]; then
          # These never contain any valuable information, and they aren't
          # useful for boot any more, since we just overwrote MBR/PBR.
          rm -f /boot/grub/{{xfs,reiserfs,e2fs,fat,jfs,minix}_stage1_5,stage{1,2}}
          # Remove marker file used to indicate that grub-install was run
          # rather than upgrade-from-grub-legacy.  Since stage2 has been
          # removed, we don't need this any more.
          rm -f /boot/grub/grub2-installed
        fi
      ;;

      grub-efi-ia32|grub-efi-amd64|grub-efi-ia64|grub-efi-arm|grub-efi-arm64)
        bootloader_id="$(config_item GRUB_DISTRIBUTOR | tr A-Z a-z | \
                         cut -d' ' -f1)"
        case $bootloader_id in
          kubuntu) bootloader_id=ubuntu ;;
        esac

        if dpkg --compare-versions "$2" lt-nl 2.02~beta2-36ubuntu3.10; then
          if [ -e "/boot/efi/EFI/${bootloader_id}/fbx64.efi" ]; then
            rm -f "/boot/efi/EFI/${bootloader_id}/fbx64.efi";
          fi
        fi

        if [ "$bootloader_id" ] && [ -d "/boot/efi/EFI/$bootloader_id" ]; then
          case grub-efi-amd64 in
            grub-efi-ia32)  target=i386-efi ;;
            grub-efi-amd64) target=x86_64-efi ;;
            grub-efi-ia64)  target=ia64-efi ;;
            grub-efi-arm)   target=arm-efi ;;
            grub-efi-arm64) target=arm64-efi ;;
          esac
          db_get grub2/force_efi_extra_removable
          if [ "$RET" = true ]; then
            FORCE_EXTRA_REMOVABLE="--force-extra-removable"
          fi
          run_grub_install --target="$target" "$FORCE_EXTRA_REMOVABLE"
        fi

        # /boot/grub/ has more chances of being accessible by GRUB
        for i in /usr/share/grub/unicode.pf2 ; do
          if test -e $i ; then
            mkdir -p /boot/grub
            cp $i /boot/grub/
          fi
        done

        if type update-secureboot-policy >/dev/null 2>&1; then
          update-secureboot-policy || true
        fi
      ;;

      grub-ieee1275)
        case $(dpkg --print-architecture) in
          ppc64el)
            # Output may be empty; if so, just update the core image but
            # don't install it to any PReP partition.
            prep_bootdev="$(/usr/lib/grub/powerpc-ieee1275/prep-bootdev)"
            run_grub_install --target=powerpc-ieee1275 $prep_bootdev
          ;;
        esac
      ;;

      grub-yeeloong)
        run_grub_install --target=mipsel-loongson
      ;;

      grub-xen)
        # Install for x86_64 regardless of arch, since a 32-bit userspace can still boot with a 64-bit kernel.
        mkdir -p /boot/xen
        run_grub_install --target=x86_64-xen
        case $(dpkg --print-architecture) in
          i386)
            run_grub_install --target=i386-xen
          ;;
        esac
      ;;
    esac

    # If grub.cfg has been generated, update it.
    if test -e /boot/grub/grub.cfg && ! running_in_container; then
      update-grub 3>&-
    fi
  ;;
  abort-upgrade|abort-remove|abort-deconfigure)
  ;;
  *)
    echo "postinst called with unknown argument \`$1'" >&2
    exit 1
  ;;
esac

# dh_installdeb will replace this with shell code automatically
# generated by other debhelper scripts.

# Automatically added by dh_installdeb
dpkg-maintscript-helper dir_to_symlink /usr/share/doc/grub-efi-amd64 grub-common 1.99-1~ -- "$@"
# End automatically added section


exit 0

Hors ligne