Як я можу перевірити / dev / xvda1?


60

Я бачу, коли ви ввійшли в екземпляр EC2 (Ubuntu)

*** /dev/xvda1 should be checked for errors ***

Я не можу, fsck /dev/xvda1тому що він встановлений, і sudo umount /dev/xvda1виходить з ладу, тому що він використовується. lsofпоказує

jbd2/xvda  172               root  cwd       DIR              202,1     4096          2 /
jbd2/xvda  172               root  rtd       DIR              202,1     4096          2 /
jbd2/xvda  172               root  txt   unknown                                        /proc/172/exe

і kill -SIGKILL 172є неефективним.

Що робити?


Чи можете ви встановити / dev / xvda1 на "noauto" у fstab та перезавантажити?
Nils Toedtmann

Про Ubuntu дивіться відповідь за адресою askubuntu.com/a/548772/184435
danorton

Відповіді:


51

Більшість Linux в ці дні повинні виконувати вимушений fsck під час завантаження, коли файл / forcefsck присутній у системі. Якщо ви можете вільно перезавантажити VM, запустіть

touch /forcefsck

Потім перезавантажтесь у вашому зручності


95

Для нашого екземпляра ubuntu ec2 вищевказані відповіді не спрацювали повністю.

У Ubuntu за замовчуванням перевірка не включена у файлі rcS . Тому

  1. Редагувати файл rcS sudo vi / etc / default / rcS

нижче лінії

#FSCKFIX=no

Додайте

FSCKFIX=yes
  1. Редагувати файл fstab. sudo vi / etc / fstab

Шукайте запис для /, і якщо остання цифра - "0", змініть її на "1". Останнє поле fsckorder і fsck використовується для визначення порядку перевірки дисків. Якщо значення "0", диск пропускається .

Наприклад,

LABEL=cloudimg-rootfs   /        ext4   defaults,discard        0 0

до

LABEL=cloudimg-rootfs   /        ext4   defaults,discard        0 1 
  1. Створити / forcefsck файл

    sudo touch / forcefsck

Перезавантажте консоль ec2.

Поверніть значення fsckorder з '1' до '0' в / etc / fstab Видаліть рядок, FSCKFIX=yesщоб повернути файл rcS у початковий стан.

Сподіваюся, це допомагає.


5
Це працювало для мене. Просто "touch / forcefsck" це не вирішує, мені довелося також включити FSCKFIX.
Флорін Андрій

1
Те ж саме; просто робити sudo touch /forcefsckдо перезавантаження не працює на 14,04 системі Ubuntu, але ця відповідь зробив.
Teemu Leisti

Мені довелося зробити ще один крок - модифікацію до / etc / fstab, як описано тут: nathanpfry.com/… Це дивно, оскільки востаннє в мене це сталося, я використав вашу відповідь, і вона спрацювала як є.
childofsoong,

2
Дякую, це вирішило це для мене на екземплярі ec2 від AWS. Мені не довелося перезавантажуватися з консолі, це sudo rebootвирішило простий із вашими змінами.
Ральф

Це також вирішило проблему на моєму локальному комп’ютері. Я вважаю, що це слід відзначити як найкраще.
Арда

7

Оскільки ви не можете завантажуватися на живий диск, це може здатися трохи дивним, але я думаю, що це зробить роботу)

високий рівень:

  • завантажиться в новий (інший) екземпляр.
  • приєднати сховище зі старого примірника до нового (поточного).
  • бігати fsck.
  • від'єднайте сховище від нового (поточного) та повторно приєднайте його до старого примірника.

0

Я просто виконую 3 кроки нижче, і проблема вирішена.

  1. Додайте "FSCKFIX = так" до / etc / default / rcS
  2. sudo touch / forcefsck
  3. перезавантаження судо

Дякую усім.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.