/ var / lib / dpkg / lockをロックできません(読み取り専用)


11

リモートサーバー(これはesxiサーバーのvmマシン(debian)です)にルビーをインストールしようとしていました。このエラーが発生しました:

コマンド:

sudo 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

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

回答:


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がマウントされている場合は、おそらく強制的に実行してみてください。
12

@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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.