ไม่สามารถล็อค / var / lib / dpkg / lock (อ่านอย่างเดียว)


11

ฉันพยายามติดตั้งทับทิมบนเซิร์ฟเวอร์ระยะไกลของฉัน (นี่คือเครื่อง vm (debian) ในเซิร์ฟเวอร์ esxi) ฉันได้รับข้อผิดพลาดนี้:

คำสั่ง:

sudo apt-get install ruby1.8

ข้อผิดพลาด:

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.

จากนั้นฉันลอง:

sudo dpkg --configure -a 

เอาท์พุท:

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

UPDATE:

เอาท์พุทของภูเขา

/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

ผลลัพธ์ของdmesg(บางส่วนสุดท้าย)

[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 เอาท์พุท:

ป้อนคำอธิบายรูปภาพที่นี่


ผลลัพธ์ของmountไม่น่าเชื่อถือโดยเฉพาะอย่างยิ่งเมื่อรูท f ของคุณดูเหมือนเป็นแบบอ่านอย่างเดียว คุณสามารถโพสต์ผลลัพธ์cat /proc/mountsเช่นกันได้หรือไม่
mrb

โปรดตรวจสอบ
update2

คำตอบ:


11

ระบบไฟล์รูทของคุณ ( /) ติดตั้งแบบอ่านอย่างเดียวเป็น/dev/disk/...บรรทัดที่/proc/mountsแสดง เหตุผลนี้อาจเป็นเพราะตรวจพบข้อผิดพลาดของดิสก์ขณะบู๊ต ( errors=remount-roตัวเลือก) หรือข้อผิดพลาด I / O ที่ตามมา

ตรวจสอบล็อกเคอร์เนลเพื่อหาข้อผิดพลาดใด ๆ กับdmesgคำสั่งและค้นหา/var/log/syslogหรือ/var/log/messages(แต่โปรดทราบว่าไฟล์เหล่านี้อาจไม่มีรายการบันทึกล่าสุด) หากมีข้อผิดพลาด I / O ใด ๆ คุณอาจต้องเปลี่ยนดิสก์ หากไม่เป็นเช่นนั้นให้บูตเข้าสู่โหมดผู้ใช้คนเดียวและเรียกใช้fsck.ext4 UUID=cf4fb4ae-6d12-407b-bf43-3b0daaaaaf7เพื่อลองแก้ไขข้อผิดพลาด

หากfsckรายงานข้อผิดพลาดยังคงเป็นแบบอ่านอย่างเดียวเมื่อรีบูตคุณสามารถเรียกใช้:

sudo mount / -o remount,rw 

เพื่อลองเมานต์ดิสก์อ่าน - เขียน

การดูที่ไฟล์บันทึกการทำงาน/var/log/นั้นไม่ได้ช่วยอะไรมากเพราะมันเป็นแบบอ่านอย่างเดียว


บ่อยครั้งที่สาเหตุที่/var/lib/dpkg/lockไม่สามารถล็อคได้คือการอัปเดตระบบอัตโนมัติทำงานในพื้นหลัง แต่ในกรณีของคุณมันบ่นเกี่ยวกับระบบไฟล์แบบอ่านอย่างเดียวโดยเฉพาะ


ฉันกำลังจะไปที่+1นี่ แต่มันอันตรายที่จะต้องเล่าให้ฟังใหม่ rw สุ่มสี่สุ่มห้าจนกว่าคุณจะรู้ว่าทำไมมันถึง ro ในตอนแรก fsckมันจะดีกว่าที่จะเพียงแค่การรีบูตเข้าสู่โหมดผู้ใช้คนเดียวและเรียกใช้ เฉพาะในกรณีที่มันสะอาด (หรือคงที่) คุณควรบูตกลับสู่สถานะ rw ถ้ามันสะอาดและยังติดตั้ง ro อยู่บางทีก็ลองบังคับ
bahamat

@bahamat ขอบคุณสำหรับความคิดเห็นของคุณฉันเปลี่ยนคำตอบแล้ว
jofel

@jofel โปรดตรวจสอบ update3 - ผลลัพธ์ของ dmesg มันตะเข็บเหมือนปัญหา io ขั้นตอนต่อไปของฉันคืออะไร
Subhransu Mishra

@jofel ฉันควรทำtune2fs -c 0 -i 0d /dev/sda3และรีบูตระบบ?
Subhransu Mishra

@Subhransu ขึ้นอยู่กับความสำคัญของข้อมูลบนพาร์ติชันระบบรากของคุณฉันจะพยายามทำการสำรองข้อมูลก่อน ฉันจะบูตเข้าสู่โหมดผู้ใช้คนเดียว (โหมดการกู้คืน) แล้วเรียกใช้ fsck ด้วยตนเอง fsck อัตโนมัติมักจะรายงานข้อผิดพลาดเท่านั้น แต่ไม่สามารถแก้ไขได้ ดังนั้นควรหลีกเลี่ยง IO ที่ไม่จำเป็นบนดิสก์ที่อาจเสียหาย คุณสมบัติ SMART- ของดิสก์บางครั้งช่วยในการตรวจสอบว่าดิสก์เสียจริง ๆ
jofel
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.