Estou atualizando o kernel no Debian 9.0. Estenda para o kernel para 4.9.0-1-amd64.
O pacote está instalado, no entanto, no final do procedimento, recebi o erro enigmático:
device-mapper: reload ioctl on osprober-linux-sda2 failed: Device or resource busy
Command failed
Também estou preocupado com a reinicialização e não a inicialização correta.
A execução de dpkg-reconfigure linux-image-4.9.0-1-amd64
também produz o mesmo erro.
Curiosamente, em /etc/fstab
não tenho sda2
partição, e o procedimento usado para trabalhar até agora. Ele simplesmente parou de funcionar após os últimos upgrades de pacotes (na verdade, eu poderia jurar que vi o erro primeiro após a última atualização do pacote udev
para 232-18). VMs com Jessie ainda estão funcionando bem.
Então fstab
é:
$cat /etc/fstab
/dev/sda1 / ext3 errors=remount-ro,noatime 0 1
/dev/sda3 none swap sw 0 0
No entanto, executando blkid
, lembro-me agora /dev/sda2
é a partição de registro no diário ext3:
/dev/sda1: UUID="43dcd715-1914-4da8-8e55-27879705920a" EXT_JOURNAL="b153f326-cb4e-491b-9b38-f9750dcf5165" TYPE="ext3" PARTUUID="8aac691c-01"
/dev/sda2: LABEL="j-my-dev" UUID="b153f326-cb4e-491b-9b38-f9750dcf5165" LOGUUID="b153f326-cb4e-491b-9b38-f9750dcf5165" TYPE="jbd" PARTUUID="8aac691c-02"
/dev/sda3: UUID="a04c0b69-07d5-40e1-8c80-6914118f6df4" TYPE="swap" PARTUUID="8aac691c-03"
Depois de investigar um pouco mais, também encontrei um arquivo pendente que ainda menciona o antigo sda2
(já que essa VM foi migrada de um servidor com o LVM há muitas luas)
O conteúdo de /etc/blkid.tab
foi:
<device DEVNO="0x0802" TIME="1414777337.116803" UUID="B24u3l-mvwB-vyxK-GRNw-vc6o-r2sS-NDgVru" TYPE="LVM2_member">/dev/sda2</device>
Eu o excluí, no entanto, provavelmente não faz diferença, pois o blkid.tab
adequado é o esperado em /var/run/blkid/blkid.tab
<device DEVNO="0x0801" TIME="1487991512.317454" UUID="43dcd715-1914-4da8-8e55-27879705920a" EXT_JOURNAL="b153f326-cb4e-491b-9b38-f9750dcf5165" TYPE="ext3" PARTUUID="8aac691c-01">/dev/sda1</device>
<device DEVNO="0x0802" TIME="1487991415.63466" LABEL="j-my-dev" UUID="b153f326-cb4e-491b-9b38-f9750dcf5165" LOGUUID="b153f326-cb4e-491b-9b38-f9750dcf5165" TYPE="jbd" PARTUUID="8aac691c-02">/dev/sda2</device>
<device DEVNO="0x0803" TIME="1487991512.507280" UUID="a04c0b69-07d5-40e1-8c80-6914118f6df4" TYPE="swap" PARTUUID="8aac691c-03">/dev/sda3</device>
A execução do dpkg-reconfigure
anterior continua com o mesmo erro.
Eu também consegui identificar o erro para upgrade-grub
sendo chamado em dpkg-reconfigure
. Correndo separadamente:
#update-grub
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.9.0-1-amd64
Found initrd image: /boot/initrd.img-4.9.0-1-amd64
device-mapper: reload ioctl on osprober-linux-sda2 failed: Device or resource busy
Command failed
done
stracing upgrade-grub
, é evidente que isso acontece em /etc/grub.d/30_os-prober
e, lendo esse script, o comando incorreto é os-prober
.
Então, rodando:
#os-prober
device-mapper: reload ioctl on osprober-linux-sda2 failed: Device or resource busy
Command failed
O erro vem de os-prober
calling:
#/usr/bin/linux-boot-prober /dev/sda2
device-mapper: reload ioctl on osprober-linux-sda2 failed: Device or resource busy
Command failed
Olhando para 30_os-prober
, também descubro sobre GRUB_OS_PROBER_SKIP_LIST
.
if [ "x${GRUB_OS_PROBER_SKIP_LIST}" != "x" ] && [ "x'echo ${GRUB_OS_PROBER_SKIP_LIST} | grep -i -e '\b'${EXPUUID}'\b''" != "x" ] ; then
echo "Skipped ${LONGNAME} on ${DEVICE} by user request." >&2
continue
fi
Pesquisando este artigo: Faça o grub2 ignorar uma determinada partição , o que levou eu para colocar em /etc/default/grub
:
GRUB_OS_PROBER_SKIP_LIST="b153f326-cb4e-491b-9b38-f9750dcf5165@/dev/sda2"
No entanto, o erro ainda acontece, e colocar o script 30_os-prober
no modo de depuração mostra que o bloco de código responsável por manipular GRUB_OS_PROBER_SKIP_LIST
não é executado. por exemplo. ele nem alcança a linha if
exibida acima.
Minha versão do GRUB é 2.02~beta3-5
. O que fazer?
UPDATE: conforme solicitação @ GaD3R, o libmapper-dev é 1.02.1