Як я можу fsck розділ, коли пристрій читає як зайнятий (але підтверджено інакше)?


11

Я намагаюся запустити, fsck -p /dev/sda5щоб виправити помилки на розділі ext4, проте команда виводить

fsck from util-linux-ng 2.17.2
fsck.ext4: Device or resource busy while trying to open /dev/sda5
Filesystem mounted or opened exclusively by another program?

Я підтвердив використання, /etc/mtabі lsofщо нічого не використовує розділ, і він не встановлений. Я також fuser -k /dev/sda5насильно закривав що-небудь, використовуючи файл, і umountнамагався відключити його безрезультатно.

Як я можу змусити fsckхоча б перевірити розділ і, сподіваюся, відремонтувати, незважаючи на те, що він читається як зайнятий? Якщо припустити, що я досить впевнений, що він не встановлений і не використовується, і що можливість корупції даних не є проблемою.

Усі команди виконувались як корінь 32-бітного liveCD Ubuntu 10.04. Розділ - це системна (не домашня) частина 32-розрядної установки Ubuntu 10.04.


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

Я зустрічаюся з тією ж проблемою в системі RHEL5.8. / tmp відключено, / etc / mtab та / proc / mounts не відображають файлової системи. Я навіть перезавантажив машину, переконавшись, що я єдиний ввійшов у систему. lsof не показує файл, який використовується у / tmp. Ця ж процедура прекрасно працює на 4 подібних серверах, встановлених за допомогою того ж профілю kickstart. Різниця між цими серверами і цим полягає в тому, що до цього приєднано сховище SAN. Чи може це зробити багатопроменевий демон?
Брам

У моєму випадку це не допомогло, але Red Hat KB ( access.redhat.com/knowledge/solutions/54184 ) рекомендує додати параметр ядра nodmraid як вирішення цієї проблеми.
Брам

Відповіді:


4

Є такі речі (як правило, в ядрі, як NFS потоки, обмінювати файли, прив'язувати кріплення тощо), які можуть зайняти файлову систему, яка не відображатиметься fuser.

Якщо ви спробуєте fsckвстановити файлову систему, вона пошкодиться. Ви повинні знайти живий компакт-диск, який не змонтує автоматично ваші файлові системи, наприклад, Knoppix чи Fedora.


Поки що все було запущено з живого диска. Я намагаюся fsckзастосувати локальну файлову систему, тому я сподіваюся, що NFS не підтримує її зайнятістю - однак, я розумію, що ви говорите про те, що ядро ​​зберігає його зайнятим способами, які не обов'язково відображатимуться. Оскільки це все ще відбувається в середовищі живого диска, чи знаєте ви спосіб запобігти доступу до нього ядра досить довго, щоб я запустився fsck?
Keeblebrox

Yikes. Використовується з живого диска? Я можу подумати лише про дві речі: 1) Спробуйте інший живий диск (наприклад, Fedora замість Ubuntu). 2) Перевірте / etc / fstab у реальній системі. Можливо, є файл swap або прив’язане кріплення, яке автоматично вмикається? Не обов'язково в тому порядку, я можу додати ...
Стівен Притчард

Гаразд, я якось зовсім пропустив останній рядок питання. Я відповідно оновив свою відповідь.
Стівен Притчард

+1, оскільки ваша згадка про автоматично встановлений своп призвів до неспорідненого прориву, і ваші відповіді допомогли вирішити більшу проблему. Я все ще хочу знайти спосіб примусити, fsckколи я знаю, що пристрій не зайнятий і не встановлений, і коли пошкодження даних не є проблемою.
Keeblebrox

Може бути, mdadm виявив рейдові підписи на розділі та прив’язаний до нього? Перевірити / proc / mdstat.
psusi

4

Ви можете видалити розділ fstabі перезавантажити машину


2

Спробуйте завантажити інший liveCD - я рекомендую SystemRescueCD , розроблений спеціально для вирішення проблем з установками Linux. Він також менший, ніж типові ОС LiveCD. А щоб бути на безпечній стороні, біжіть fsckвід консолі (немає X).

Якщо стандарт fsck -pне працює, ви також можете спробувати e2fsck -y -f.


Як повідомляє сторінка man , e2fsck -y -fпримушує перевірити чистий розділ. У ній нічого не згадується про змонтовані перегородки. Чи знаєте ви, чи примусить це перевірка також?
Keeblebrox

Можливо, це не так, але вам обов'язково слід уникати встановлених файлом системних файлів (див. Параграфи у верхній частині сторінки e2fsck). Інша думка: якщо /etc/mtabздається, що розділ не встановлений, але ви все-таки отримаєте помилку, також слід перевірити /proc/mounts, оскільки mtabфайл може застаріти з якоїсь дивної причини.
rozcietrzewiacz

0

Питання / відповідь, пов’язаний із цим на веб-сторінці /server/556014/centos-thinks-disk-is-busy-cant-mount-or-fsck

Зокрема, файлова система вже може використовуватись іншим, ніж монтажем fsck. Будь-який з термозахисних пристроїв та lsof може допомогти з'ясувати, що таке драйвер / додаток.

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