Không thể khóa / var / lib / dpkg / lock (chỉ đọc)


11

Tôi đã cố gắng cài đặt ruby ​​trên máy chủ từ xa của mình (đây là máy vm (debian) trong máy chủ esxi.) Tôi gặp lỗi này:

Lệnh:

sudo apt-get cài đặt ruby1.8

Lỗi :

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.

sau đó tôi đã thử:

sudo dpkg --configure -a 

Đầu ra:

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

CẬP NHẬT:

đầu ra của 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.

CẬP NHẬT2:

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

đầu ra của dmesg(một số phần cuối)

[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 đầu ra:

nhập mô tả hình ảnh ở đây


Đầu ra của mountkhông đáng tin cậy, đặc biệt là vì fs gốc của bạn dường như chỉ đọc. Bạn có thể gửi đầu ra cat /proc/mountslà tốt?
mrb

vui lòng kiểm tra bản cập nhật2
Subhransu Mishra

Câu trả lời:


11

Hệ thống tập tin gốc của bạn ( /) được gắn chỉ đọc dưới dạng /dev/disk/...dòng trong /proc/mountschương trình. Lý do cho điều này có thể là do lỗi đĩa được phát hiện khi khởi động ( errors=remount-rotùy chọn) hoặc lỗi I / O tiếp theo.

Kiểm tra nhật ký kernel xem có lỗi nào không dmesgvà xem /var/log/sysloghoặc /var/log/messages(nhưng lưu ý rằng các tệp này có thể không chứa các mục nhật ký cuối cùng). Nếu có bất kỳ lỗi I / O nào, bạn có thể cần phải thay thế đĩa. Nếu không, hãy khởi động sang chế độ người dùng đơn và chạy fsck.ext4 UUID=cf4fb4ae-6d12-407b-bf43-3b0daaaaaf7để cố gắng sửa lỗi.

Nếu fsckbáo cáo không có lỗi và nó vẫn chỉ đọc khi khởi động lại, bạn có thể chạy:

sudo mount / -o remount,rw 

để cố gắn đĩa đọc-ghi.

Nhìn vào các tệp nhật ký /var/log/không giúp được gì nhiều, vì hiện tại nó chỉ đọc.


Thông thường, lý do tại sao /var/lib/dpkg/lockkhông thể bị khóa là vì một bản cập nhật hệ thống tự động chạy trong nền, nhưng trong trường hợp của bạn, nó đặc biệt phàn nàn về một hệ thống tệp chỉ đọc.


Tôi đã đi đến +1đây nhưng thật nguy hiểm khi chỉ mù quáng kể lại rw trừ khi bạn biết tại sao nó lại ở vị trí đầu tiên. Tốt hơn là chỉ nên khởi động lại vào chế độ người dùng duy nhất và chạy fsck. Chỉ khi nó sạch (hoặc cố định) thì bạn mới nên khởi động lại trạng thái rw. Nếu nó sạch và vẫn gắn ro, thì có lẽ cố gắng ép buộc mọi thứ.
bahamat

@bahamat Cảm ơn bình luận của bạn, tôi đã thay đổi câu trả lời của tôi cho phù hợp.
jofel

@jofel Vui lòng kiểm tra update3 - đầu ra của dmesg, nó giống như vấn đề io của nó. bước tiếp theo của tôi là gì?
Subhransu Mishra

@jofel tôi có nên làm tune2fs -c 0 -i 0d /dev/sda3và khởi động lại hệ thống không?
Subhransu Mishra

@Subhransu Tùy thuộc vào mức độ quan trọng của dữ liệu trên phân vùng hệ thống gốc của bạn, tôi sẽ cố gắng tạo bản sao lưu trước. Sau đó tôi sẽ khởi động vào chế độ người dùng (chế độ phục hồi) và sau đó chạy fsck bằng tay. Fsck tự động thường chỉ báo lỗi nhưng không sửa lỗi. Vì vậy, tránh IO không cần thiết trên một đĩa bị hỏng có thể. Tính năng SMART của đĩa đôi khi giúp phát hiện xem đĩa có thực sự bị hỏng hay không.
jofel
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.