Tidak dapat mengunci / var / lib / dpkg / mengunci (hanya baca)

11

Saya mencoba menginstal ruby ​​di server jarak jauh saya (ini adalah mesin vm (debian) di server esxi.) Saya mendapatkan kesalahan ini:

Perintah:

sudo apt-get install ruby1.8

Kesalahan:

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.

kemudian saya mencoba:

sudo dpkg --configure -a 

Keluaran:

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

MEMPERBARUI:

output dari 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

output dari dmesg(beberapa bagian terakhir)

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

masukkan deskripsi gambar di sini

Subhransu Mishra
sumber
Output dari mounttidak dapat diandalkan, terutama karena root fs Anda tampaknya hanya-baca. Bisakah Anda memposting output cat /proc/mountsjuga?
mrb
silakan periksa pembaruan2
Subhransu Mishra

Jawaban:

11

Sistem file root Anda ( /) di-mount hanya-baca sebagai /dev/disk/...baris dalam /proc/mountsmenunjukkan. Alasan untuk ini mungkin karena kesalahan disk terdeteksi saat boot ( errors=remount-roopsi) atau kesalahan I / O berikutnya.

Periksa log kernel untuk setiap kesalahan dengan dmesgperintah dan lihat /var/log/syslogatau /var/log/messages(tetapi perhatikan bahwa file-file ini mungkin tidak mengandung entri log terakhir). Jika ada kesalahan I / O, Anda mungkin perlu mengganti disk. Jika tidak, boot ke mode pengguna tunggal dan jalankan fsck.ext4 UUID=cf4fb4ae-6d12-407b-bf43-3b0daaaaaf7untuk mencoba memperbaiki kesalahan.

Jika fscklaporan tidak ada kesalahan dan masih hanya baca saat reboot, Anda dapat menjalankan:

sudo mount / -o remount,rw 

untuk mencoba me-mount disk baca-tulis.

Melihat file-file log di /var/log/tidak banyak membantu, karena saat ini hanya-baca.


Seringkali, alasan mengapa /var/lib/dpkg/locktidak dapat dikunci adalah karena pembaruan sistem otomatis berjalan di latar belakang, tetapi dalam kasus Anda secara khusus mengeluh tentang sistem file read-only.

Jofel
sumber
Saya akan melakukan +1ini, tetapi berbahaya untuk hanya mengirim ulang secara membabi buta kecuali Anda tahu mengapa itu pertama-tama. Lebih baik reboot ke mode pengguna tunggal dan jalankan fsck. Hanya jika bersih (atau diperbaiki) Anda dapat boot kembali ke status rw. Jika masih bersih dan masih terpasang, maka mungkin cobalah untuk memaksakan sesuatu.
bahamat
@ Bahaham Terima kasih atas komentar Anda, saya mengubah jawaban saya sesuai.
jofel
@ jofel Silakan periksa update3 - output dmesg, itu seperti masalah io. apa yang harus saya langkah selanjutnya?
Subhransu Mishra
@ jofel, haruskah saya melakukan tune2fs -c 0 -i 0d /dev/sda3dan me-reboot sistem?
Subhransu Mishra
@ Subhransu Tergantung seberapa penting data pada partisi sistem root Anda, saya akan mencoba membuat cadangan terlebih dahulu. Saya kemudian akan boot ke mode pengguna tunggal (mode pemulihan) dan kemudian jalankan fsck secara manual. Fsck otomatis seringkali hanya melaporkan kesalahan tetapi tidak memperbaikinya. Jadi hindari IO yang tidak perlu pada disk yang mungkin rusak. Fitur SMART pada disk terkadang membantu mendeteksi apakah disk tersebut benar-benar rusak.
jofel