Não é possível bloquear / var / lib / dpkg / lock (somente leitura)

11

Eu estava tentando instalar o ruby ​​no meu servidor remoto (esta é uma máquina vm (debian) em um servidor esxi.) Eu recebi este erro:

O comando:

sudo apt-get install ruby1.8

Erro:

W: Not using locking for read only lock file /var/lib/dpkg/lock
E: Unable to write to /var/cache/apt/
E: The package lists or status file could not be parsed or opened.

então eu tentei:

sudo dpkg --configure -a 

Resultado:

dpkg: unable to access dpkg status area: Read-only file system 

ATUALIZAR:

saída de montagem

/dev/sda3 on / type ext4 (rw,errors=remount-ro)
tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
udev on /dev type tmpfs (rw,mode=0755)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620)
/dev/sda1 on /boot type ext4 (rw)
/dev/sdb1 on /home type ext4 (rw)

mount: warning: /etc/mtab is not writable (e.g. read-only filesystem).
       It's possible that information reported by mount(8) is not
       up to date. For actual information about system mount points
       check the /proc/mounts file.

UPDATE2:

cat /proc/mounts


rootfs / rootfs rw 0 0
none /sys sysfs rw,nosuid,nodev,noexec,relatime 0 0
none /proc proc rw,nosuid,nodev,noexec,relatime 0 0
none /dev devtmpfs rw,relatime,size=1553128k,nr_inodes=216450,mode=755 0 0
none /dev/pts devpts rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000 0 0
/dev/disk/by-uuid/cf4fb4ae-6d12-407b-bf43-3b0daaaaaf74 / ext4 ro,relatime,errors=remount-ro,barrier=1,data=ordered 0 0
tmpfs /lib/init/rw tmpfs rw,nosuid,relatime,mode=755 0 0
tmpfs /dev/shm tmpfs rw,nosuid,nodev,relatime 0 0
/dev/sda1 /boot ext4 rw,relatime,barrier=1,data=ordered 0 0
/dev/sdb1 /home ext4 rw,relatime,barrier=1,data=ordered 0 0

UDPDATE 3

saída de dmesg(alguma última parte)

[1968636.237601] JBD2: Detected IO errors while flushing file data on sdb1-8
[1968772.229102] JBD2: Detected IO errors while flushing file data on sdb1-8
[1968789.799409] IPv6 addrconf: prefix with wrong length 56
[1968990.325125] IPv6 addrconf: prefix with wrong length 56
[1969190.801848] IPv6 addrconf: prefix with wrong length 56
[1969192.245363] JBD2: Detected IO errors while flushing file data on sdb1-8
[1969197.698223] IPv6 addrconf: prefix with wrong length 56
[1969223.105506] JBD2: Detected IO errors while flushing file data on sdb1-8
[1969349.119764] JBD2: Detected IO errors while flushing file data on sdb1-8
[1969398.205686] IPv6 addrconf: prefix with wrong length 56
[1969598.713179] IPv6 addrconf: prefix with wrong length 56
[1969607.241633] JBD2: Detected IO errors while flushing file data on sdb1-8
[1969799.220758] IPv6 addrconf: prefix with wrong length 56
[1969825.462909] JBD2: Detected IO errors while flushing file data on sdb1-8
[1969831.231049] JBD2: Detected IO errors while flushing file data on sdb1-8
[1969999.728348] IPv6 addrconf: prefix with wrong length 56
[1970200.247944] IPv6 addrconf: prefix with wrong length 56
[1970221.321558] JBD2: Detected IO errors while flushing file data on sdb1-8
[1970253.105491] JBD2: Detected IO errors while flushing file data on sdb1-8

/var/log/syslog resultado:

insira a descrição da imagem aqui

Subhransu Mishra
fonte
A saída de mountnão é confiável, especialmente porque o seu root fs parece ser somente leitura. Você também pode postar a saída cat /proc/mounts?
Mrb 29/08/2012
por favor verifique o update2
Subhransu Mishra

Respostas:

11

Seu sistema de arquivos raiz ( /) é montado como somente leitura, como mostra a /dev/disk/...linha /proc/mounts. A razão para isso pode ser que um erro de disco foi detectado na inicialização ( errors=remount-roopção) ou erro de E / S subsequente.

Verifique os logs do kernel em busca de erros com o dmesgcomando e verifique /var/log/syslogou /var/log/messages(mas observe que esses arquivos provavelmente não contêm as últimas entradas de log). Se houver algum erro de E / S, talvez seja necessário substituir o disco. Caso contrário, inicialize no modo de usuário único e execute fsck.ext4 UUID=cf4fb4ae-6d12-407b-bf43-3b0daaaaaf7para tentar corrigir os erros.

Se fscknão houver erros e ainda assim for somente leitura na reinicialização, você poderá executar:

sudo mount / -o remount,rw 

para tentar montar o disco de leitura e gravação.

Observar os arquivos de log /var/log/não ajuda muito, pois atualmente é somente leitura.


Freqüentemente, a razão pela qual /var/lib/dpkg/locknão pode ser bloqueado é que uma atualização automática do sistema é executada em segundo plano, mas no seu caso está especificamente reclamando de um sistema de arquivos somente leitura.

jofel
fonte
Eu estava indo para +1isso, mas é perigoso remontar cegamente o rw, a menos que você saiba por que é ro. É melhor apenas reiniciar no modo de usuário único e executar fsck. Somente se estiver limpo (ou fixo) você deve inicializar de volta ao estado rw. Se estiver limpo e ainda estiver montando, talvez tente forçar as coisas.
bahamat
@ bahamat Obrigado pelo seu comentário, mudei a minha resposta em conformidade.
Jofel
@jofel Por favor, verifique o update3 - a saída do dmesg, que parece um problema io. qual deve ser o meu próximo passo ?
Subhransu Mishra
@ jofel devo fazer um tune2fs -c 0 -i 0d /dev/sda3e reiniciar o sistema?
Subhransu Mishra
@Subhransu Dependendo da importância dos dados na partição do sistema raiz, eu tentaria fazer um backup primeiro. Eu inicializava então no modo de usuário único (modo de recuperação) e depois executava o fsck manualmente. O fsck automático geralmente informa apenas erros, mas não os corrige. Portanto, evite E / S desnecessárias em um possível disco quebrado. Às vezes, o recurso SMART do disco ajuda a detectar se o disco está realmente quebrado.
Jofel