No se puede bloquear / var / lib / dpkg / lock (solo lectura)

11

Estaba tratando de instalar ruby ​​en mi servidor remoto (esta es una máquina vm (debian) en un servidor esxi). Recibí este error:

El comando:

sudo apt-get install ruby1.8

Error:

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.

entonces intenté:

sudo dpkg --configure -a 

Salida:

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

ACTUALIZAR:

salida de montaje

/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.

ACTUALIZACIÓN2:

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

salida de dmesg(alguna ú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 salida:

ingrese la descripción de la imagen aquí

Subhransu Mishra
fuente
La salida de mountno es confiable, especialmente porque su raíz fs parece ser de solo lectura. ¿Puedes publicar la salida de cat /proc/mountstambién?
mrb
compruebe la actualización2
Subhransu Mishra

Respuestas:

11

Su sistema de archivos raíz ( /) está montado de solo lectura como se muestra /dev/disk/...en la línea /proc/mounts. La razón de esto podría ser que se detectó un error de disco en el arranque ( errors=remount-roopción) o un error de E / S posterior.

Verifique los registros del kernel en busca de errores con el dmesgcomando y busque /var/log/syslogo /var/log/messages(pero tenga en cuenta que estos archivos probablemente no contienen las últimas entradas de registro). Si hay algún error de E / S, es posible que deba reemplazar el disco. Si no, inicie en modo de usuario único y ejecútelo fsck.ext4 UUID=cf4fb4ae-6d12-407b-bf43-3b0daaaaaf7para intentar corregir los errores.

Si fsckno informa errores y sigue siendo de solo lectura al reiniciar, puede ejecutar:

sudo mount / -o remount,rw 

para intentar montar el disco de lectura-escritura.

Mirar los archivos de registro /var/log/no ayuda mucho, ya que actualmente es de solo lectura.


A menudo, la razón por la /var/lib/dpkg/lockque no se puede bloquear es que una actualización automática del sistema se ejecuta en segundo plano, pero en su caso se queja específicamente de un sistema de archivos de solo lectura.

jofel
fuente
Iba a +1esto, pero es peligroso volver a montar ciegamente a menos que sepas por qué es ro en primer lugar. Es mejor reiniciar en modo de usuario único y ejecutar fsck. Solo si está limpio (o fijo) debe reiniciar al estado rw. Si está limpio y sigue montando ro, entonces quizás intente forzar las cosas.
bahamat
@bahamat Gracias por tu comentario, cambié mi respuesta en consecuencia.
jofel
@jofel Compruebe la actualización3: la salida de dmesg, parece un problema io. ¿Cuál debería ser mi próximo paso?
Subhransu Mishra
@jofel, ¿debería hacer tune2fs -c 0 -i 0d /dev/sda3y reiniciar el sistema?
Subhransu Mishra
@Subhransu Dependiendo de lo importante que sean los datos en la partición del sistema raíz, primero intentaré hacer una copia de seguridad. Luego iniciaría en modo de usuario único (modo de recuperación) y luego ejecutaría fsck manualmente. El fsck automático a menudo solo informa errores pero no los repara. Por lo tanto, evite las E / S innecesarias en un posible disco roto. La función SMART del disco a veces ayuda a detectar si el disco está realmente roto.
jofel