Impossible de verrouiller / var / lib / dpkg / lock (lecture seule)

11

J'essayais d'installer ruby ​​sur mon serveur distant (il s'agit d'une machine vm (debian) sur un serveur esxi.) J'ai eu cette erreur:

La commande:

sudo apt-get install ruby1.8

Erreur :

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.

alors j'ai essayé:

sudo dpkg --configure -a 

Production:

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

METTRE À JOUR:

sortie de montage

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

MISE À JOUR2:

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

sortie de dmesg(une dernière partie)

[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 production:

entrez la description de l'image ici

Subhransu Mishra
la source
La sortie de mountn'est pas fiable, d'autant plus que votre fs racine semble être en lecture seule. Pouvez-vous également publier la sortie de cat /proc/mounts?
mrb
veuillez vérifier la mise à jour2
Subhransu Mishra

Réponses:

11

Votre système de fichiers racine ( /) est monté en lecture seule comme le montre la /dev/disk/...ligne /proc/mounts. La raison pourrait être qu'une erreur de disque a été détectée au démarrage ( errors=remount-rooption) ou une erreur d'E / S ultérieure.

Vérifiez les journaux du noyau pour toute erreur avec la dmesgcommande et recherchez dans /var/log/syslogou /var/log/messages(mais notez que ces fichiers ne contiennent probablement pas les dernières entrées du journal). S'il y a des erreurs d'E / S, vous devrez peut-être remplacer le disque. Sinon, démarrez en mode mono-utilisateur et exécutez fsck.ext4 UUID=cf4fb4ae-6d12-407b-bf43-3b0daaaaaf7pour tenter de corriger les erreurs.

Si fsckaucune erreur n'est signalée et qu'il est toujours en lecture seule au redémarrage, vous pouvez exécuter:

sudo mount / -o remount,rw 

pour essayer de monter le disque en lecture-écriture.

La consultation des fichiers journaux /var/log/n'aide pas beaucoup, car elle est pour le moment en lecture seule.


Souvent, la raison pour laquelle /var/lib/dpkg/lockil ne peut pas être verrouillé est qu'une mise à jour automatique du système s'exécute en arrière-plan, mais dans votre cas, elle se plaint spécifiquement d'un système de fichiers en lecture seule.

jofel
la source
J'allais à +1cela, mais il est dangereux de remonter aveuglément rw à moins que vous ne sachiez pourquoi c'est ro en premier lieu. Il vaut mieux simplement redémarrer en mode mono-utilisateur et exécuter fsck. Ce n'est que s'il est propre (ou réparé) que vous devez redémarrer à l'état rw. Si c'est propre et qu'il monte toujours, essayez peut-être de forcer les choses.
bahamat
@bahamat Merci pour votre commentaire, j'ai changé ma réponse en conséquence.
jofel
@jofel Veuillez vérifier la mise à jour3 - la sortie de dmesg, il semble comme son problème io. quelle devrait être ma prochaine étape?
Subhransu Mishra
@jofel dois-je faire un tune2fs -c 0 -i 0d /dev/sda3redémarrage du système?
Subhransu Mishra
@Subhransu Selon l'importance des données sur votre partition système racine, j'essaierais d'abord de faire une sauvegarde. Je voudrais ensuite démarrer en mode mono-utilisateur (mode de récupération), puis exécuter fsck manuellement. Le fsck automatique ne rapporte souvent que des erreurs mais ne les corrige pas. Evitez donc les E / S inutiles sur un disque cassé possible. La fonction SMART du disque aide parfois à détecter si le disque est vraiment cassé.
jofel