Impossibile bloccare / var / lib / dpkg / lock (sola lettura)


11

Stavo cercando di installare ruby ​​sul mio server remoto (questa è una macchina vm (debian) in un server esxi.) Ho ricevuto questo errore:

Il comando:

sudo apt-get install ruby1.8

Errore:

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.

poi ho provato:

sudo dpkg --configure -a 

Produzione:

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

AGGIORNARE:

uscita del monte

/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

uscita di dmesg(qualche ultima 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 produzione:

inserisci qui la descrizione dell'immagine


L'output di mountnon è affidabile, soprattutto perché il tuo root fs sembra essere di sola lettura. Puoi pubblicare anche l'output di cat /proc/mounts?
MR

si prega di controllare update2
Subhransu Mishra il

Risposte:


11

Il filesystem di root ( /) è montato in sola lettura come mostra la /dev/disk/...riga in /proc/mounts. Il motivo potrebbe essere che è stato rilevato un errore del disco all'avvio ( errors=remount-roopzione) o successivo errore I / O.

Controllare i log del kernel per eventuali errori con il dmesgcomando e cercare /var/log/syslogo /var/log/messages(ma si noti che questi file probabilmente non contengono le ultime voci di registro). In caso di errori I / O, potrebbe essere necessario sostituire il disco. In caso contrario, avviare in modalità utente singolo ed eseguire fsck.ext4 UUID=cf4fb4ae-6d12-407b-bf43-3b0daaaaaf7per provare a correggere gli errori.

Se fscknon viene segnalato alcun errore ed è ancora di sola lettura al riavvio, è possibile eseguire:

sudo mount / -o remount,rw 

per provare a montare il disco in lettura-scrittura.

Guardare i file di registro /var/log/non aiuta molto, dato che al momento è di sola lettura.


Spesso, il motivo per cui /var/lib/dpkg/locknon è possibile bloccare è che un aggiornamento automatico del sistema viene eseguito in background, ma nel tuo caso si lamenta specificamente di un file system di sola lettura.


Stavo andando a +1questo, ma è pericoloso rimontare ciecamente solo rw a meno che tu non sappia perché è ro in primo luogo. È meglio riavviare in modalità singolo utente ed eseguire fsck. Solo se è pulito (o risolto) è necessario riavviare allo stato rw. Se è pulito e sta ancora montando ro, allora forse prova a forzare le cose.
bahamat,

@bahamat Grazie per il tuo commento, ho modificato la mia risposta di conseguenza.
jofel,

@jofel Si prega di controllare update3 - l'output di dmesg, si adatta come il suo problema io. quale dovrebbe essere il mio prossimo passo?
Subhransu Mishra,

@jofel dovrei fare un tune2fs -c 0 -i 0d /dev/sda3e riavviare il sistema?
Subhransu Mishra,

@Subhransu A seconda dell'importanza dei dati sulla partizione del sistema radice, proverei prima a fare un backup. Vorrei quindi avviare in modalità utente singolo (modalità di ripristino) e quindi eseguire fsck manualmente. Fsck automatico spesso segnala solo errori ma non li corregge. Quindi evita IO inutili su un possibile disco rotto. La funzione SMART del disco a volte aiuta a rilevare se il disco è veramente rotto.
jofel,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.