/ Var / lib / dpkg / lock kann nicht gesperrt werden (schreibgeschützt)

11

Ich habe versucht, Ruby auf meinem Remote-Server zu installieren (dies ist ein VM-Computer (Debian) auf einem ESXI-Server.) Ich habe folgende Fehlermeldung erhalten:

Der Befehl:

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.

dann habe ich versucht:

sudo dpkg --configure -a 

Ausgabe:

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

AKTUALISIEREN:

Ausgabe von Mount

/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

Ausgabe von dmesg(ein letzter Teil)

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

Geben Sie hier die Bildbeschreibung ein

Subhransu Mishra
quelle
Die Ausgabe von mountist nicht zuverlässig, zumal Ihre Root-Fs schreibgeschützt zu sein scheinen. Können Sie auch die Ausgabe von posten cat /proc/mounts?
mrb
Bitte überprüfen Sie das Update2
Subhransu Mishra

Antworten:

11

Ihr Root-Dateisystem ( /) ist schreibgeschützt gemountet, wie die /dev/disk/...Zeile in /proc/mountszeigt. Der Grund dafür könnte sein, dass beim Booten ( errors=remount-roOption) oder einem nachfolgenden E / A-Fehler ein Festplattenfehler festgestellt wurde .

Überprüfen Sie die Kernel-Protokolle mit dem dmesgBefehl auf Fehler und suchen Sie in /var/log/syslogoder /var/log/messages(beachten Sie jedoch, dass diese Dateien wahrscheinlich nicht die letzten Protokolleinträge enthalten). Wenn E / A-Fehler auftreten, müssen Sie möglicherweise die Festplatte austauschen. Wenn nicht, starten Sie im Einzelbenutzermodus und führen Sie fsck.ext4 UUID=cf4fb4ae-6d12-407b-bf43-3b0daaaaaf7ihn aus, um die Fehler zu beheben.

Wenn fsckkeine Fehler gemeldet werden und es beim Neustart immer noch schreibgeschützt ist, können Sie Folgendes ausführen:

sudo mount / -o remount,rw 

um zu versuchen, die Festplatte mit Lese- / Schreibzugriff zu mounten.

Das Betrachten der Anmeldedateien /var/log/hilft nicht viel, da es derzeit schreibgeschützt ist.


Der Grund, warum /var/lib/dpkg/locknicht gesperrt werden kann, ist häufig, dass ein automatisches Systemupdate im Hintergrund ausgeführt wird. In Ihrem Fall wird jedoch speziell über ein schreibgeschütztes Dateisystem geklagt.

Jofel
quelle
Ich wollte das machen, +1aber es ist gefährlich, rw einfach blind wieder zu montieren, es sei denn, Sie wissen, warum es überhaupt ro ist. Es ist besser, einfach im Einzelbenutzermodus neu zu starten und auszuführen fsck. Nur wenn es sauber (oder repariert) ist, sollten Sie wieder in den rw-Zustand booten. Wenn es sauber ist und immer noch wächst, versuchen Sie vielleicht, Dinge zu erzwingen.
Bahamat
@bahamat Danke für deinen Kommentar, ich habe meine Antwort entsprechend geändert.
Jofel
@jofel Bitte überprüfen Sie das Update3 - die Ausgabe von dmesg, es scheint wie sein Io-Problem. Was sollte mein nächster Schritt sein?
Subhransu Mishra
@jofel soll ich a machen tune2fs -c 0 -i 0d /dev/sda3und das System neu starten ?
Subhransu Mishra
@Subhransu Abhängig davon, wie wichtig die Daten auf Ihrer Root-Systempartition sind, würde ich versuchen, zuerst ein Backup zu erstellen. Ich würde dann in den Einzelbenutzermodus (Wiederherstellungsmodus) booten und dann fsck manuell ausführen. Das automatische fsck meldet häufig nur Fehler, behebt sie jedoch nicht. Vermeiden Sie daher unnötige E / A auf einer möglicherweise defekten Festplatte. Die SMART-Funktion der Festplatte hilft manchmal zu erkennen, ob die Festplatte wirklich kaputt ist.
Jofel