Принудительно fsck.ext4 при перезагрузке, но действительно «принудительно»

Как пользоваться fsck

Команда fsck принимает следующую общую форму:

fsck  

Только root или пользователи с привилегиями sudo могут очистить буфер.

Если FILESYSTEM в качестве аргумента указано no, fsck проверяются устройства, указанные в файле fstab.

Никогда не запускайте fsckна смонтированных разделах, так как это может повредить файловую систему. Прежде чем пытаться проверить или восстановить файловые системы, всегда делайте unmountэто сначала.

Команда fsck является оболочкой для различных контроллеров файловой системы Linux ( fsck.*) и принимает различные параметры в зависимости от типа файловой системы.

Проверьте справочные страницы для получения дополнительной информации о конкретном контролере. Например, чтобы просмотреть доступные параметры fsck.ext4, введите:

man fsck.ext4

Как работает fsck?

Утилита fsck (File System Consistency Check) изначально глубоко проверяла все структуры данных подряд, т. е. целиком всю файловую систему. Для поиска ошибок она задействовала методы эвристического анализа для ускорения и оптимизации процесса поиска ошибок. Однако,  даже в этом случае для больших по объёму файловых систем эта процедура могла занимать много часов.

Позднее была реализована схема оценки состояния файловой системы, в основе которой лежит признак «чистого бита файловой системы». Если происходил сбой и файловая система (ФС) некорректно демонтировалась, то в суперблоке ФС устанавливался этот бит. По-умолчанию в Linux-системах на одном из этапов загрузки системы происходит проверка файловых систем, которые зарегистрированы в файлах /etc/fstab, /etc/vfstab, а также в /etc/filesystems. Таким образом, анализируя «чистый бит» ФС во время загрузки системы утилита определяет, стоит ли проводить проверку.

Журналируемые ФС в настоящее время позволяют утилите работать только с теми структурами данных, которым действительно необходима починка или восстановление. При необходимости fsck может восстановить всю ФС целиком благодаря всё тем же журналам ФС.

Меню GRUB не появляется

Если загрузки компьютера в Ubuntu автоматически, не показывая меню GRUB вообще, иногда можно нажать клавишу производителя BIOS/UEFI во время начальной загрузки и в то время как в режиме UEFI или BIOS из микропрограммных меню выбирают операционную систему, Вам нужно. Общие используемые ключи являются Esc, Удаляют, F1, F2, F10, F11 или F12. На планшетах общими кнопками является Объем или Объем вниз. Во время запуска часто существует экран, который упоминает ключ. Если нет один, или если экран проходит слишком быстро для наблюдения его, проверьте веб-сайт производителя.*

Если это не работает, когда меню GRUB не появляется во время начальной загрузки, сразу после того, как экран-заставка BIOS/UEFI во время начальной загрузки, с BIOS, быстро нажимает и содержит клавишу Shift, которая поднимет экран меню GRUB GNU. С нажатием UEFI (возможно, несколько раз) клавиша Esc для получения до экрана меню GRUB GNU. Иногда экран-заставка производителя является частью загрузчика Windows, поэтому когда Вы включаете машину, это переходит прямо к экрану меню GRUB GNU, и затем нажатие Shift является ненужным.

Если это не работает, когда меню GRUB не появляется во время начальной загрузки, то попробуйте ответы на:

  • Как добраться до меню GRUB во время начальной загрузки?
  • Меню начальной загрузки двойной загрузки не обнаруживается после установки Ubuntu 15.10 вместе с Windows 10

Восстановление начальной загрузки

Из Ubuntu открывают терминал и тип:

Откройте приложение Восстановления Начальной загрузки и выберите вкладку Advanced Options-> Other Options-> загрузочные файлы Windows Восстановления. Флаг начальной загрузки должен быть помещен в тот же раздел, на котором установлена Ubuntu. Раздел, на котором установлена Ubuntu, может быть определен из Дискового приложения, которое встроено в Ubuntu.

Если Вы не можете выбрать опцию загрузочных файлов Windows Восстановления, потому что она отображается серым, обратитесь к .

Rescatux

Rescatux является свободный загрузочный живой CD/USB, который может восстановить GRUB и загрузчик Windows. Rescatux имеет графический интерфейс с меню спасательных задач операционной системы. Если Ваш жесткий диск имеет формат разделения MBR, можно выбрать опцию Restore Windows MBR (BETA) восстановить загрузчик Windows. Если Ваш компьютер имеет встроенное микропрограммное обеспечение UEFI, можно выбрать среди Параметров загрузки опций UEFI.

Параметры загрузки:

  • (> =0.41 беты 1) Обновление порядок UEFI
  • (> =0.41 беты 1), Создают новую Запись загрузки UEFI
  • (> =0.41 беты 1) Состояние Раздела UEFI
  • (> =0.41 беты 1) Фальшивка Microsoft Windows UEFI
  • (> =0.41 беты 1), Скрывают Microsoft Windows UEFI
  • (> =0.41 беты 1), Переустанавливают Microsoft Windows EFI
  • (> =0.41 беты 1) Проверка Начальная загрузка UEFI

Опции GRUB:

  • (> =0.40 беты 11), Легкая Начальная загрузка GNU/Linux Фиксируют
  • Восстановите GRUB и GRUB2
  • (> =0.31 беты 4) Обновление любое меню GRUB2
  • Меню Update Debian/Ubuntu GRUB

Опции Windows:

  • Восстановите Windows MBR (БЕТА)
  • Ясные пароли Windows
  • (> =0.31 беты 4), Способствуют пользователя Windows Роли администратора
  • (> =0.41 беты 1), Переустанавливают Microsoft Windows EFI
  • (> =0.31 беты 4), Разблокировали пользователя Windows

Опции пароля:

  • Измените Пароль GNU/Linux
  • Повторно создайте sudoers файл
  • Ясные пароли Windows

Rescapp является хорошим мастером, который будет вести Вас через Ваши спасательные задачи.

Как заставить Rescatux жить USB из Ubuntu

Вставьте карту флэш-памяти с интерфейсом USB и проверку, если флаг начальной загрузки был включен на флеш-накопителе с помощью приложения GParted. Размонтируйте карту флэш-памяти с интерфейсом USB. Откройте GParted и выберите карту флэш-памяти с интерфейсом USB из списка меню дисков

От выбора меню GParted: Раздел-> Управляет Флагами-> начальная загрузка проверки.
Очень важно проверить, что устройство, на котором Вы устанавливаете Rescatux живой USB, является действительно Вашим флеш-накопителем, так, чтобы Вы не перезаписывали ни одной своей системы или персональных файлов, которые могут сделать Вашу операционную систему незагрузочной. В Ubuntu можно найти имя устройства флеш-накопителя с помощью Дискового приложения.

Размонтируйте устройство раздела USB

Скажем, устройство раздела USB

Использование каталогов изменения к пути каталога, где файл ISO Rescatux, который Вы загрузили, расположен.

Запишите файл ISO Rescatux в карту флэш-памяти с интерфейсом USB. В следующей замене команды с названием файла ISO Rescatux Вы загрузили.

Я также смог сделать Rescatux живым USB с помощью встроенного приложения Создателя Загрузочного диска.

3 Answers 3

If you just use fsck to check the volume you can run

  • n -> dry-run: will not do any change (just checking)
  • f -> force : sometimes it says clean but you can force a new check

If you want to fix filesystem errors, first unmount your partition: umount /dev/sda1

I encountered similar issue especially when you are still accessing the mount point. It can below any one of below two reasons.

You cannot run on the root FS Say you can in directory «/mnt» and you have unmounted the volume mounted on «/mnt». You will encounter same error. Make use that you are not in same directory.

I don’t know why, but I had to service udev stop (on debian based system).

After stopping udev the e2fsck -f /dev/sda1 -command worked and didn’t print the e2fsck: Cannot continue, aborting -Message anymore.

I dont’t know, if it has something to do with http://dev.bizo.com/2012/07/mdadm-device-or-resource-busy.html — but this page gave me the hint to try it.

Советы и рекомандации

Восстановление повреждённых блоков

Следующая команда позволяет восстановить повреждённые участки файловых систем ext2/ext3/ext4 и FAT:

Важно: Разрешение на восстановление запрошено не будет. Подразумевается, что вы уже ответили «Да», запустив команду на выполнение.

# fsck -a

Интерактивное восстановление повреждённых блоков

Полезно в том случае, если файлы на загрузочном разделе были изменены, а журнал не обновился соответствующим образом. В этом случае размонтируйте загрузочный раздел и выполните:

# fsck -r диск

Изменение частоты проверки

Примечание: Команды tune2fs и dumpe2fs работают только с файловыми системами ext2/ext3/ext4.

По умолчанию fsck проверяет файловую систему каждые 30 загрузок (вычисляется отдельно для каждого раздела). Чтобы изменить частотку проверок, выполните:

# tune2fs -c 20 /dev/sda1

Здесь — число загрузок между проверками. Если задать значение , то проверка будет выполняться при каждой загрузке, а значение отключит сканирование.

Текущую частоту проверок и опции монтирования конкретного раздела можно узнать командой:

# dumpe2fs -h /dev/sda1 | grep -i 'mount count'

Параметры fstab

fstab — файл системных настроек, который используется для передачи ядру Linux информации о том, какие разделы (файловые системы) монтировать и в какие точки дерева файловой системы.

Записи в выглядят примерно следующим образом.

/dev/sda1   /         ext4      defaults       0  1
/dev/sda2   /other    ext4      defaults       0  2
/dev/sda3   /win      ntfs-3g   defaults       0  

Шестое поле каждой строки (выделено) — опция fsck:

  • — не проверять.
  • — файловая система (раздел), которая должна быть проверена первой; для корневого раздела () должно использоваться именно это значение.
  • — прочие файловые системы, которые должны быть проверены.

Опции fstab

— это файл конфигурации, который сообщает системе, как и где монтировать разделы.

Файл содержит список записей в следующей форме:

Последний, 6-й столбец ( ) — это параметр, который контролирует порядок, в котором проверки файловой системы выполняются во время перезагрузки.

0 — не проверять. 1 — файловые системы, которые нужно проверять сначала и по одной за раз. 2 — Все остальные файловые системы, которые проверяются позже и, возможно, параллельно.

Корневая файловая система должна иметь значение , а все остальные файловые системы, которые вы хотите проверить, должны иметь значение .

Проверка HDD на бэд-блоки на Linux с помощью GParted

GParted как раз для тех, кому текстовый интерфейс не по душе. Утилита выполняет большое количество задач, связанных с работой HDD на Ubuntu и всех Debian-подобных системах. В их число входит и проверка диска на ошибки.

Для
начала нам нужно скачать и установить GParted. Вводим следующую
команду, чтобы выполнить загрузку из официальных репозиториев:

  1. Открываем
    приложение. На главном экране сразу же выводятся все носители. Если
    какой-то из них помечен восклицательным знаком, значит, с ним уже что-то
    не так.
  2. Щёлкаем по тому диску, который хотим проверить.
  3. Жмём на кнопку «Разделы», расположенную сверху.
  4. Выбираем «Проверка на ошибки».

Программа отсканирует диск. В зависимости от его объёма процесс может занять продолжительное время. После сканирования Вы будете оповещены о его результатах.

Практическое использование команды fsck

Теперь, когда вы немного знакомы с командой fsck, давайте посмотрим на практические примеры использования этой команды.

Ремонт USB-диска и других съемных устройств

Для наших целей предположим, что вы уже определили проблемное устройство /dev/sdb.

Во-первых, вам нужно убедиться, что диск отключен:

sudo umount /dev/sdb

Теперь запустите команду fsck:

sudo fsck /dev/sdb

Проверьте вывод на наличие ошибок. Если ничего не отображается, проверьте код выхода с помощью echo $?.

Есть также некоторые опции флагов, которые мы можем добавить, чтобы позволить автоматическое исправление. Эти команды не стандартизированы, и вы должны проверить тип файловой системы и сравнить документацию с этой конкретной страницы руководства.

Несмотря на это, вы можете использовать -pfsck для автоматического восстановления.

sudo fsck -p /dev/sdb

Аналогичным образом -y будут применены исправления к любой обнаруженной поврежденности файловой системы.

Восстановить корневую файловую систему

Вы не можете размонтировать корневой раздел, пока система активна. Если вы подозреваете, что ваша основная файловая система повреждена, вы должны использовать здесь другой подход.

Есть несколько вариантов, которые вы можете использовать. Вы можете запустить fsck во время загрузки, в режиме восстановления или использовать live cd на тему восстановления.

Многие дистрибутивы Linux автоматически запускают fsck после определенного числа неудачных попыток загрузки. Если вы предпочитаете взять дело в свои руки, вы можете запланировать, что система сделает это самостоятельно.

В большинстве современных версий Linux есть инструмент под названием tune2fs.

sudo tune2fs -c 1 /dev/sda

Предполагая, что ваше корневое устройство dev/sda, это команда, которую вы должны ввести.

Теперь, что на самом деле происходит, так это то, что вы меняете системные настройки так, что fsck запускается при каждом nколичестве загрузок (1 в примере). Вы также можете установить это на стандартный интервал времени. Варианты days, weeks, или months.

Допустим, вы хотите, чтобы fsck запускался каждый раз при загрузке, если в течение недели не было проверки. Вы можете использовать -i для указания интервала, и команда будет выглядеть следующим образом.

sudo tune2fs -i 1w /dev/sda	

Если вы используете systemd, вы можете принудительно запустить fsck при следующей загрузке, введя следующее:

fsck.mode=force
fsck.repair=yes

Вывод

Вы всегда можете обратиться к man-страницам для получения дополнительной информации. Просто используйте man fsckв терминале.

Мы надеемся, что вы узнали что-то новое о команде fsck. Если у вас есть какие-либо комментарии или вопросы, пожалуйста, оставьте их ниже.

Проверьте файловые системы при загрузке

В большинстве дистрибутивов Linux запускается во время загрузки, если файловая система помечена как грязная или после определенного количества загрузок или времени.

Чтобы увидеть текущий счетчик монтирования, проверить номер частоты, интервал проверки и время последней проверки для определенного раздела, используйте инструмент:

  • «Максимальное количество монтирований» — это количество монтирований, после которых будет проверяться файловая система. Значение или означает, что никогда не будет работать.
  • «Интервал проверки» — это максимальное время между двумя проверками файловой системы.

Если, например, вы хотите запускать после каждых 25 загрузок (монтирования), введите:

Вы также можете установить максимальное время между двумя проверками. Например, чтобы установить один месяц, вы должны выполнить:

Чтобы заставить работать во время загрузки на дистрибутивах SystemD, передайте следующие параметры загрузки ядра:

В старых дистрибутивах будет работать при загрузке, если файл присутствует:

Tips and tricks

Attempt to repair damaged blocks

To automatically repair damaged portions of an ext2/ext3/ext4 or FAT file system, run:

Warning: This will not ask if you want to repair it, as the answer is Yes when you run it.

# fsck -a

Repair damaged blocks interactively

This is useful for when files on the boot partition have changed, and the journal failed to properly update. In this case, unmount the boot partition, and run the following code to repair damaged portions:

# fsck -r drive

Changing the check frequency

Note: The following commands tune2fs and dumpe2fs work only with ext2/ext3/ext4 file systems.

By default, fsck checks a file system every 30 boots (counted individually for each partition). To change the frequency of checking, run:

# tune2fs -c 20 /dev/sda1

In this example, is the number of boots between two checks.

Note that would make it scan at every boot, while would stop scanning altogether.

If you wish to see the frequency number and the current mount count for a specific partition, use:

# dumpe2fs -h /dev/sda1 | grep -i 'mount count'

fstab options

fstab is a system configuration file and is used to tell the Linux kernel which partitions (file systems) to mount and where on the file system tree.

A typical entry may look like this:

/dev/sda1   /         ext4      defaults       0  1
/dev/sda2   /other    ext4      defaults       0  2
/dev/sda3   /win      ntfs-3g   defaults       0  

The 6th column (in bold) is the fsck option.

  • — do not check.
  • — first file system (partition) to check; (root partition) should be set to .
  • — all other file systems to be checked.

Boot time checking

Mechanism

There are two players involved:

  1. systemd will fsck all file systems having a fsck pass number greater than 0 (either with or a ). For the root file system, it also has to be mounted read-only initially with the kernel parameter and only then remounted read-write from fstab (note that the mount option implies ).

The first option is the recommended default, and what you will end up with if you follow the Installation guide. If you want to go with option 2 instead, you should remove the hook from and use on the kernel command-line. The kernel parameter can be used to make sure fsck is disabled entirely for both options.

Forcing the check

If you use the mkinitcpio hook, you can force fsck at boot time by passing as a kernel parameter. This will check every file system you have on the machine.

Alternatively, systemd provides , which checks all configured file systems, which were not checked in the initramfs. However, checking the root file system this way causes a delay in the boot process, because the file system has to be remounted.

This article or section needs expansion.

Note: For those accustomed to use other GNU/Linux distributions, the old tricks consisting in writing a file with the name to the root of each file system or using the command with the flag were only working for the old SysVinit and early versions of Upstart and are not working with systemd. The aforementioned solution is thus the only one working for Arch Linux.

Sequoia’s 55PB Lustre+ZFS Filesystem

Sequoia’s 55PB Lustre+ZFS Filesystem

Вы хотите восстановить удаленные файлы, папки и данные в Windows 10/8 / 7? Проверьте этот список бесплатного программного обеспечения для восстановления данных, чтобы помочь вам восстановить файлы.

Значок DVD-диска не отображается или отсутствует в папке «Мой компьютер» или «Эта папка ПК»? Драйвер DVD Drive Repair восстановит отсутствующие значки DVD в Windows 8 | 7.

Пакет Verifier для проверки установщика Windows будет устранять неполадки в файлах кэширования установщика Windows. Возможно, вам придется перестроить ОС и переустановить приложения.

Некоторые особенности использования fsck в Linux

Для Linux-систем довольно часто (в особенности с использованием ФС ext) проверка ФС может быть организована таким образом, что она будет проводиться при прошествии некоторого числа демонтирований, даже если ФС полностью исправны. Это особенно актуально для настольных компьютеров, которые могут выключаться/включаться каждые сутки, перезагружаться в связи с особенностью их работы и применения, а также из-за свободного к ним доступа для подключения внешних устройств. В таких случаях проверка ФС (хоть и является полезной и благоприятной процедурой), оказывается слишком частой, а потому бессмысленной.

По-умолчанию в Linux проверка ФС проводится по прошествии 20 демонтирований. Для того, чтобы изменить количество демонтирований, после которых нужна проверка ФС нужно воспользоваться командой tune2fs:

$ sudo tune2fs -с 50 /dev/sda1
tune2fs 1.44.1 (24-Mar-2018)
Setting maximal mount count to 50

2. Исправление LVM с шифрованием

Может так быть, что действия из предыдущего примера возможны только при нормальной загрузке системы, когда доступны все возможные утилиты. Соответственно, в Emergency mode указанные операции не удастся выполнить.

Поэтому рассмотрим пример восстановления системы с Live образа. Причина анализируемой проблемы в том, что apt autoremove удалила пакет cryptsetup и другие важные для расшифровки и нормальной работы раздела утилиты. Это привело к тому, что система перестала загружаться (из-за того, что корневой раздел не может быть смонтирован и расшифрован используя LVM).

Если вы не используете LVM и полнодисковое шифрование, то дальнейшее возможно вам не подходит.

В данном примере удалось исправить систему и переустановить cryptsetup и lvm2 в окружении chroot: для этого понадобилось загрузиться с флешки Live USB, запустить последующие команды в терминале и перезагрузиться

Поиск корневого раздела:

sudo fdisk -l

Расшифровываем раздел.

sudo cryptsetup open --type luks /dev/nvme0n1p3 nvme0n1p3_crypt

Проверка HDD на бэд-блоки на Linux с помощью smartmontools

Теперь давайте рассмотрим более современный и надежный способ
проверить диск на битые секторы linux. Современные накопители ATA/SATA
,SCSI/SAS,SSD имеют встроенную систему самоконтроля S.M.A.R.T (Self-Monitoring, Analysis and Reporting Technology,
Технология самоконтроля, анализа и отчетности), которая производит
мониторинг параметров накопителя и поможет определить ухудшение
параметров работы накопителя на ранних стадиях. Для работы со S.M.A.R.T в
Linux есть утилита smartmontools.

Давайте сначала ее установим. Если ваш дистрибутив основан на Debian\Ubuntu, то вводите:

Если же у Вас дистрибутив на основе RHEL\CentOS, то вводите:

Теперь, когда мы установили smartmontools мы можем посмотреть страницу помощи, с помощью команды:

или

Давайте перейдем к работе с утилитой. Вводим следующую команду с параметром -H,чтобы утилита показала нам информацию о состоянии накопителя:

Как видим, проверка диска на битые секторы linux завершена и утилита говорит нам, что с накопителем все в порядке!

Ещё одна команда, если SMART поддерживается, то добавляем -s. Если он не поддерживается или уже включён, то этот аргумент можно убрать.

Дополнительно, можно указать следующие параметры -a или —all, чтобы получить еще больше информации о накопителе, или -x и —xall, чтобы просмотреть информацию в том числе и об остальных параметрах накопителя.

5 ответов

Строка, создающая это сообщение, — :

Он пропускает «полную проверку», но только что удостоверился, что некоторые быстрые тесты в журнале чистые и нет лишних инодов:

Это нормально и ожидаемо. Если бы это была действительно тщательная проверка, это заняло бы намного больше времени, но обычно это занимает секунду или меньше. Страница справочника Systemd имеет условия, при которых запускается полная проверка:

Вы можете просто проверить, что тесты практически не выполнялись (если вы используете systemd):

ответ дан
12 February 2017 в 02:33

Вы уверены, что fsck требует 30 секунд, а не только то, что следующее консольное сообщение, касающееся udevd, занимает 30 секунд? Другими словами, может быть, udevd тратит 30 секунд на тайм-аут работы с библиотекой, прежде чем показывать консольное сообщение?

Попробуйте удалить (или временно переместить в другое место)

и посмотрите если это поможет.

ответ дан
12 February 2017 в 02:33

Этот fsck при каждой загрузке случался со мной из-за плохих часов. Похоже, что systemd-fsck @ запускается до systemd-timesyncd, и без RTC с резервным питанием от батареи системное время неверно во время запуска fsck.

Я подтвердил, что это действительно то, что запускает полную проверку (вместо быстрого выхода из fsck), отключив systemd-timesynd, установив в clock значение предварительной синхронизации, найденное в journalctl, и запустив fsck. Затем e2fsck переходит к полной проверке, как только обнаруживает, что время последней записи суперблока находится в будущем:

Обратите внимание, что этот триггер для полной проверки не связан с другими триггерами max число монтирования и интервал времени с момента последней проверки, замеченный в , упомянутом в других ответах здесь. Обратите внимание, что без установки часов (то есть синхронизации timeyncd) fsck не выполнит полную проверку, но быстро завершит работу с сообщением «очистка файловой системы»

Обратите внимание, что без установки часов (то есть синхронизации timeyncd) fsck не выполнит полную проверку, но быстро завершит работу с сообщением «очистка файловой системы». В качестве обходного пути я отключил fsck в / etc / fstab, установив в поле «pass» значение 0

В конце концов, я куплю RTC с батарейным питанием для этого устройства

В качестве обходного пути я отключил fsck в / etc / fstab, установив в поле «pass» значение 0. В конце концов, я куплю RTC с батарейным питанием для этого устройства.

ответ дан
12 February 2017 в 02:33

Мои поиски позволяют мне сделать вывод, что максимальное количество монтировок в Ubuntu по умолчанию установлено равным -1. Это означает, что fsck никогда не запустится ни при какой загрузке, независимо от количества монтирований. Вы можете проверить свои по команде —

Вы можете увеличить его по вашему требованию, используя . Типичный пример:

Настройте его по своему усмотрению.

ответ дан
12 February 2017 в 02:33

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

Измените частоту на каждые 50 загрузок или каждые 30 дней, используя:

Предполагая, что сегодня 13 ноября 2016 года, проверьте, когда будет запущен , используя:

ответ дан
12 February 2017 в 02:33

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Все про сервера
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: