Мой Ubuntu запускает fsck при каждой загрузке

18

При каждой загрузке это одно и то же:

/dev/sda1: clean, 908443/38690816 files, 44176803/154733312 blocks

Это какой-то вариант, который использует Ubuntu для обеспечения согласованности файловой системы или что-то не так с моим HDD? fsck занимает до 30 секунд при загрузке и, следовательно, увеличивает время, необходимое в противном случае.

Полная выходная информация (частично на немецком языке):

Begin: Loading essential drivers ... done.
Begin: Running /scripts/init-premount ... done.
Begin: Mounting root file system ... Begin: Running /scripts/local-top ... done.
Begin: Running /scripts/local-premount ... done.
Begin: Running /scripts/local-bottom ... done.
done.
Begin: Running /scripts/init-bottom ... done.
fsck von util-linux 2.20.1
/dev/sda1: sauber, 908443/38690816 Dateien, 44176803/154733312 Blöcke
udevd[623]: unknown key 'SYSFS{idVendor}' in /lib/udev/rules.d/45-libticables.rules:6

udevd[623]: invalid rule '/lib/udev/rules.d/45-libticables.rules:6'

 * Starting mDNS/DNS-SD daemon                                                 [ OK ]
 * Starting Reload cups, upon starting avahi-daemon to make sure remote queues are populated                                                                   [ OK ]
 * Starting configure network device security                                  [ OK ]
 * Starting bluetooth daemon                                                   [ OK ]
 ####* Starting all other stuff
    
задан s3lph 27.11.2013 в 23:20
источник

5 ответов

25
  

/ dev / sda1: clean, 908443/38690816 Файлы, 44176803/154733312 Блоки

Линия, создающая это сообщение, это :

/* Print the summary message when we're skipping a full check */
log_out(ctx, _("%s: clean, %u/%u files, %llu/%llu blocks"),

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

cat /var/log/boot.log 
fsck from util-linux 2.20.1
fsck from util-linux 2.20.1
/dev/sda1: clean, 260598/771552 files, 1684682/3080192 blocks
/dev/sdb10: recovering journal
/dev/sdb10: Clearing orphaned inode 142568 (uid=1000, gid=1000, mode=0100664, size=32768)
/dev/sdb10: Clearing orphaned inode 138527 (uid=1000, gid=1000, mode=0100600, size=9580)
/dev/sdb10: clean, 54957/991232 files, 3498365/3958006 blocks

Это нормально и ожидается. Если бы это была настоящая тщательная проверка, это заняло бы гораздо больше времени, но обычно это занимает второе или меньшее место. На странице руководства systemd systemd-fsck(8) есть условия, при которых выполняется полная проверка:

  

systemd-fsck-root.service отвечает за проверку файловой системы на      корневой файловой системы, но только если корневая файловая система не была проверена   в initramfs. systemd-fsck @ .service используется для всего другого файла   систем и корневой файловой системы в initramfs.

     

Эти службы запускаются при загрузке, если passno в / etc / fstab для   для файловой системы установлено значение больше нуля. Файловая система   проверка для root выполняется перед другими файловыми системами. Другие   файловые системы могут проверяться параллельно, за исключением случаев, когда они включены   тот же вращающийся диск.

     

systemd-fsck не знает сведений о конкретных файловых системах,   и просто выполняет проверки файловой системы, специфичные для каждого   тип файловой системы (/sbin/fsck.*). Этот помощник решит,   Фактически, файловая система должна быть проверена на основе времени, прошедшего с момента последнего   проверка, количество монтировок, нечистое размонтирование и т. д.

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

sudo systemd-analyze blame | grep fsck
          1.608s [email protected]\x2duuid-408535fe\x2d28e6\x2d4d82\x2dbb59\x2d9810ead089a3.service
            87ms [email protected]\x2dlvhome.service
    
ответ дан Braiam 01.12.2013 в 15:55
источник
1

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

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

/lib/udev/rules.d/45-libticables.rules

и посмотрите, помогает ли это.

    
ответ дан Joseph Santaniello 04.12.2013 в 12:33
0

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

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

fsck from util-linux 2.29.2
e2fsck 1.43.4 (31-Jan-2017)
Superblock last write time (Mon Jun 19 00:48:11 2017,
    now = Tue Jan 31 20:09:28 2017) is in the future.
Fix<y>? yes
Pass 1: Checking inodes, blocks, and sizes
...

Обратите внимание, что этот триггер для полной проверки не связан с другими триггерами максимального количества монтирования и временного интервала с последней проверки, см. в dumpe2fs -h , упомянутой в других ответах здесь.

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

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

    
ответ дан alexei 19.06.2017 в 07:00
-1

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

sudo dumpe2fs -h /dev/sda8 | grep -i 'mount count'

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

sudo tune2fs -c 30 -i 1w /dev/sda8

Настройте его в соответствии с вашим соглашением.     

ответ дан Vivek Ji 26.08.2016 в 14:01
-1

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

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

$ sudo tune2fs -c 50 -i 1m /dev/sdc3

tune2fs 1.42.13 (17-May-2015)
Setting maximal mount count to 50
Setting interval between checks to 2592000 seconds

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

$ sudo dumpe2fs -h /dev/sdc3 | grep Next

dumpe2fs 1.42.13 (17-May-2015)
Next check after:         Tue Dec 13 22:45:39 2016
    
ответ дан WinEunuuchs2Unix 26.11.2016 в 04:03