Не вдається заблокувати / 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 

ОНОВЛЕННЯ:

вихід кріплення

/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.

ОНОВЛЕННЯ2:

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

УДАЧА 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?
мрб

перевірте update2
Subhransu Mishra

Відповіді:


11

Ваша коренева файлова система ( /) встановлена ​​лише для читання, як показано /dev/disk/...у рядку /proc/mounts. Причиною цього могло бути те, що виявлена ​​помилка диска під час завантаження ( errors=remount-roопція) або наступна помилка вводу / виводу.

Перевірте журнали ядра на наявність помилок із dmesgкомандою та загляньте в ( /var/log/syslogабо /var/log/messagesзауважте, що ці файли, ймовірно, не містять останніх записів журналу). Якщо є якісь помилки вводу / виводу, можливо, вам доведеться замінити диск. Якщо ні, завантажтеся в режим одного користувача та запустіть, fsck.ext4 UUID=cf4fb4ae-6d12-407b-bf43-3b0daaaaaf7щоб спробувати виправити помилки.

Якщо у fsckзвітах немає помилок і він все ще читається лише при перезавантаженні, ви можете запустити:

sudo mount / -o remount,rw 

спробувати встановити диск для читання-запису.

Перегляд файлів журналів /var/log/не дуже допомагає, як це є на даний момент лише для читання.


Часто причиною /var/lib/dpkg/lockнеможливості блокування є те, що автоматичне оновлення системи працює у фоновому режимі, але у вашому випадку вона спеціально скаржиться на файлову систему лише для читання.


Я збирався до +1цього, але небезпечно просто сліпо перераховувати rw, якщо ви не знаєте, чому це в першу чергу ро. Краще просто перезавантажитись в режимі єдиного користувача та запустити fsck. Тільки якщо вона чиста (або виправлена), ви повинні завантажуватись до стану rw. Якщо це чисто і все ще монтується ро, то, можливо, спробуйте примусити речі.
bahamat

@bahamat Дякую за ваш коментар, я відповідно змінив свою відповідь.
Джофель

@jofel Перевірте update3 - вихід dmesg, він схожий на його проблему з io. що має бути моїм наступним кроком?
Subhransu Mishra

@jofel я повинен зробити tune2fs -c 0 -i 0d /dev/sda3і перезавантажити систему?
Subhransu Mishra

@Subhransu Залежно від того, наскільки важливі дані у вашому розділі кореневої системи, я спершу спробую зробити резервну копію. Потім я б завантажився в єдиний користувальницький режим (режим відновлення), а потім запустив fsck вручну. Автоматичний fsck часто повідомляє лише про помилки, але не виправляє їх. Тому уникайте зайвого IO на можливому зламаному диску. Функція SMART диска іноді допомагає виявити, чи диск дійсно зламаний.
jofel
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.