Завантажте fsck.ext4 при перезавантаженні, але насправді "силою"


21

Один з моїх серверів Ubuntu 10.04 створює мені проблеми. Коли я запускаю, fsck.ext4 -n /dev/sda5мені кажуть, що у вільному підрахунку inode є кількість помилок, кількість вільних блоків тощо.

Я намагався:

touch /forcefsck

Також спробували:

shutdown -rF now

і досі після перезавантаження я бачу помилки.

Я також щойно перевірив свій нетбук eeePC, Ubuntu 10.10, і у мене є та сама проблема!

Як я можу змусити реально "вимушений" "силовий" "серйозно виправити свою файлову систему" fsck файлової системи "/" при перезавантаженні?

Пояснення: запускаю, fsck.ext4 -nоскільки це змонтована файлова система, щоб перевірити, чи є помилки. Це говорить мені, що є. Я подумав, що автоматичний fsck кожні 30 версій під час завантаження - це якраз для усунення помилок у кореневій файловій системі. Але в моєму випадку це не робиться. Я міг перезавантажитись з LiveCD і виправити помилки, а потім перезавантажити знову, але це серйозні простої для живого сервера. Перезавантаження, автоматичний fsck, а потім продовження завантаження набагато стійкіше на прямому сервері, і я вважаю, що це має бути правильна поведінка.

Додаткова інформація: Ось результат. Це схоже на щось, що виправили б autofsck, чи не так?

root@server:~# fsck.ext4 -n /dev/sda5
e2fsck 1.41.11 (14-Mar-2010)
Warning!  /dev/sda5 is mounted.
Warning: skipping journal recovery because doing a read-only filesystem check.
/dev/sda5 contains a file system with errors, check forced.
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
Free blocks count wrong (1849368, counted=1948909).
Fix? no

Free inodes count wrong (545504, counted=552134).
Fix? no


/dev/sda5: ********** WARNING: Filesystem still has errors **********

/dev/sda5: 116752/662256 files (0.2% non-contiguous), 795324/2644692 blocks

яку версію сервера Ubuntu ви використовуєте?
crncosta

10.04. Я відредагую своє запитання.
UrkoM

Я не думаю, що ви насправді можете це зробити, адже вам може бути краще робити перевірку вручну.
RolandiXor

1
Вибачте, але мені ще потрібна додаткова інформація. Ви робите fsck на змонтованих файлових системах? чи можете ви завантажитися з LiveCD і перевірити ще раз (з відключеним / dev / sda5)?
crncosta

Хіба не можливо, що не файлова система, а жорсткий диск зламано? У такому випадку можна було б очікувати, що ext4 не виправляє помилок, так як це було б лише кілька поганих секторів.
Стефано Палацо

Відповіді:


10

Зі сторінки e2fsck man:

"Зауважте, що загалом не можна безпечно запускати e2fsck у змонтованих файлових системах. Єдиним винятком є, якщо вказано параметр -n, а параметри -c, -l або -L не вказані. Однак, навіть якщо це безпечно Для цього результати, надруковані e2fsck, недійсні, якщо встановлена ​​файлова система. Якщо e2fsck запитує, чи слід перевіряти встановлену файлову систему, єдина правильна відповідь - "ні". Тільки експерти, які дійсно знають, що вони роблять, повинні розглянути можливість відповісти на це питання будь-яким іншим способом ".

Отже, якщо ви перевіряєте змонтований FS за допомогою fsck, навіть використовуючи параметр -n, результат може бути недійсним. Не перевіряйте змонтовані файлові системи. Використовуйте Live-CD / Live-USB.

Якщо ви не перевіряєте файлову систему під час її встановлення, я не розумію, для чого вам потрібно використовувати, touch /forcefsckви можете просто відключити її та виправити. Але якщо це так, і після виправлення у вашому FS все ще є помилки, ви можете розглянути можливість використання:

e2fsck -cy /dev/sda5

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

Якщо ви хочете перевірити змонтовану файлову систему, я не знаю, як діяти, але думаю, вам слід створити ще одне питання.


Ви праві, файлова система змонтована. І звичайно, мені потрібно робити fsck, коли він не вимикається. Але я запускаю fsck -n, щоб перевірити під час монтажу, не вносячи змін, і це говорить мені, що є помилки. І чи не повинен виправити fsck при перезавантаженні ???
UrkoM

Я щойно помітив, що ви говорите в першому реченні: чому fsck -n не буде дійсним у змонтованій файловій системі? Як я можу перевірити, чи змонтована файлова система має помилки надійно?
UrkoM

Ви можете перевірити сторінку e2fsck, на якій сказано: "Зауважте, що взагалі не безпечно запускати e2fsck у змонтованих файлових системах. Єдиним винятком є, якщо вказано параметр -n, а параметри -c, -l або -L не вказано. Однак, навіть якщо це безпечно зробити, результати, надруковані e2fsck, недійсні, якщо встановлена ​​файлова система. Якщо e2fsck запитує, чи слід перевіряти встановлену файлову систему, єдина правильна відповідь: '' ні "". Тільки експерти, які дійсно знають, що роблять, повинні вирішити відповідь на це питання будь-яким іншим способом ".
Няміу Галеантроп

Я не знаю, як перевірити змонтовану файлову систему, можливо, вам слід створити інше питання.
Няміу Галеантроп

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

24

Я знаю, що це справді стара тема, але мені недавно довелося вирішити цю проблему, тому я хотів опублікувати, як змусити ОС виправити проблеми, виявлені з fsck під час завантаження (за 12.04).

Вам потрібно запустити команду sudo touch /forcefsck. Це призведе до виконання fsck при наступному завантаженні. Ви можете побачити результати fsck у /var/log/boot.log.

Однак вам не гарантується, що fsck виправить все, що знайде. Для цього вам потрібно буде відредагувати файл / etc / default / rcS. У кінці цього файлу є рядок:

FSCKFIX=no

Це потрібно змінити на таке:

FSCKFIX=yes

Це матиме такий самий ефект, як і запуск fsck з параметром -y, який змусить реалізувати всі можливі виправлення, і він не вимагатиме взаємодії з користувачем.

Це дозволить вам запускати fsck, як просив ОП, не вдаючись до завантаження з живого диска, що не завжди можливо, особливо якщо ви знаходитесь у віддаленій системі.


1
Редагування цього запису на моєму екземплярі Ubuntu EC2 разом із командами sudo touch /forcefsckта sudo shutdown -rкомандами успішно вирішило проблеми файлової системи та попередження про перевірку після входу. Легко і не руйнує - ура.
c.gutierrez

Це ж питання було задано і в серверній помилці, і ця відповідь була також тією, яка працювала на мене, в системі Ubuntu 14.04. Просто робити sudo touch /forcefsckта потім перезавантажувати не вдалося; редагування rcSбуло необхідне.
Teemu Leisti

12
sudo touch /forcefsck
sudo reboot

У вас є помилка друку - ви торкаєтесь / forcefcsk. Змінюються "c" і "s". fsck - скорочення FileSystemChecK.


Це не працює для мене, оскільки коренева файлова система монтується лише для читання через помилки, з якими я виправляю fsck! Проблема з куркою та яйцями, яку можна вирішити лише за допомогою LiveCD або перетягуючи накопичувач в іншу машину.
HDave

3

Ви не можете примусити fsck увімкнути /, який відновиться, оскільки розділ використовується. Спробуйте запустити перевірку з іншого розділу або живого компакт-диска.


2
Дуже вірно, але автоматичний fsck при завантаженні повинен відбуватися до того, як розділ використовується, саме для того, щоб мати змогу виправити помилки на "/". Інакше в чому сенс?
UrkoM

3
Я вважаю, що перевірка трапляється перед використанням, проте це скоріше дорадча перевірка. Ви вирішуєте, як виправити помилки. Проста перевірка - при перегляді / etc / fstab. "/" Отримує іншу перевірку, ніж інші розділи.
charlie-tca

Це трапляється до того, як корінь перекручується? тобто. Диск INITial Ram.
mckenzm

1

Ви можете зробити автоматичні зміни таким чином:

Tune2fs -c 5 -i 10 / dev / sda1

-c- максимальна кількість кріплень перед запуском fsckі -iмаксимальна кількість днів перед запуском fsck.

У цьому випадку буде робитися кожні 5 кріплення або кожні 10 днів, залежно від того, що відбудеться раніше.

У мене є два комп’ютери, один з Linux SuSE 13.2, а другий з Linux Mint 18.0, і в обох він працює чудово.


Назвіть форми та коментарі в автоматичній формі наступним чином: Tune2fs -c 5 -i 10 / dev / sda1 Де: -c - максимальна кількість монтов до запуску fsck Де: -i - максимальна кількість днів до запуску fsck У цьому випадку буде робитися кожні 5 кріплення або кожні 10 днів, залежно від того, що відбудеться раніше. У мене є два комп’ютери, один з Linux SuSE 13.2 і другий з Linux MInt 18.0, і обидва працюють відмінно.
hk3jld

Назвіть форми та коментарі в автоматичній формі наступним чином: Tune2fs -c 5 -i 10 / dev / sda1 Де: -c - максимальна кількість монтов до запуску fsck Де: -i - максимальна кількість днів до запуску fsck У цьому випадку буде робитися кожні 5 кріплення або кожні 10 днів, залежно від того, що відбудеться раніше. У мене є два комп’ютери, один з Linux SuSE 13.2 і другий з Linux MInt 18.0, і обидва працюють відмінно. Я не знаю англійської мови, але використовую перекладача, сподіваюсь, що навчання добре
hk3jld

1
Чи працює він і на Ubuntu?
Джордж Удосен

0

touch /forcefsckпоодинці не забезпечив роботу моєї системи fsckпри наступному завантаженні. Мені також потрібно було бігати:

sudo tune2fs -c 1 /dev/<my partition>

напр

sudo tune2fs -c 1 /dev/sda1

Більше пояснення я знайшов тут: Як змусити fsck перевірити файлову систему після перезавантаження

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