无法锁定/ var / lib / dpkg / lock(只读)


11

我试图在我的远程服务器(这是esxi服务器中的vm machine(debian))上安装ruby。出现此错误:

命令:

须藤apt-get install ruby​​1.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 

更新:

安装输出

/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

UDP日期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不可靠,尤其是因为您的root fs看起来是只读的。您也可以发布输出cat /proc/mounts吗?
mrb

请检查更新2
Subhransu Mishra

Answers:


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这样做的,但是除非您不知道为什么首先将ro盲目地重新安装,否则很危险。最好只是重新引导到单用户模式并运行fsck。仅当它干净(或固定)时,才可以引导回rw状态。如果它很干净并且仍然安装在ro上,那么也许可以尝试强制使用。
bahamat 2012年

@bahamat感谢您的评论,我相应地更改了答案。
jofel 2012年

@jofel请检查update3-dmesg的输出,它看起来像是io问题。我下一步应该怎么做?
Subhransu Mishra 2012年

@jofel我应该做一个tune2fs -c 0 -i 0d /dev/sda3并重新启动系统吗?
Subhransu Mishra 2012年

@Subhransu根据根系统分区上数据的重要性,我将尝试首先进行备份。然后,我将引导进入单用户模式(恢复模式),然后手动运行fsck。自动fsck通常只报告错误,而不能修复错误。因此,避免在可能损坏的磁盘上进行不必要的IO。磁盘的SMART功能有时有助于检测磁盘是否确实损坏。
jofel 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.