/ var / lib / dpkg / lock을 잠글 수 없음 (읽기 전용)


11

원격 서버에 루비를 설치하려고했습니다 (이것은 esxi 서버의 vm 시스템 (debian)입니다).이 오류가 발생했습니다.

명령 :

sudo apt-get 설치 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 

최신 정보:

마운트 출력

/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특히 루트 fs가 읽기 전용 인 것처럼 보이므로 출력이 신뢰할 수 없습니다. 당신 cat /proc/mounts은뿐만 아니라 출력을 게시 할 수 있습니까 ?
mrb

업데이트 2를 확인하십시오
Subhransu Mishra

답변:


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인지 알지 않는 한 맹목적으로 rw를 다시 마운트하는 것은 위험합니다. 단일 사용자 모드로 재부팅하고 실행하는 것이 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.