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

произошло с приложением qt5 с использованием темы gtk в Ubuntu MATE

$ ./my-application
Gtk-Message: Failed to load module "canberra-gtk-module"
Gtk-Message: Failed to load module "topmenu-gtk-module"

, давайте найдем libs

$ locate libcanberra-gtk-module.so
/usr/lib/x86_64-linux-gnu/gtk-2.0/modules/libcanberra-gtk-module.so
/usr/lib/x86_64-linux-gnu/gtk-3.0/modules/libcanberra-gtk-module.so

, устанавливая LD_LIBRARY_PATH, решая проблему

или отключить переменную окружения GTK_MODULES

$ unset GTK_MODULES; ./my-application
1
задан 12 February 2017 в 03:33

4 ответа

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

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

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

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

1
ответ дан 24 May 2018 в 14:48
  • 1
    Нет, это определенно fsck. [F1] печатается около 3 секунд, fsck-clean - около 30 секунд. – s3lph 5 December 2013 в 02:22
  • 2
    Какой тип файловой системы вы используете? – Joseph Santaniello 6 December 2013 в 00:27
  • 3
    Я использую EXT4 – s3lph 6 December 2013 в 00:35
  • 4
    Является ли пауза перед печатью «fsck von ...»? или до "/ dev / sda ..."? – Joseph Santaniello 6 December 2013 в 00:45
  • 5
    Где вы монтируете / dev / sda1? Вы можете попробовать добавить: noauto,x-systemd.automount к параметрам fstab, если это / home или что-то еще. Таким образом, система будет пропускать установку до тех пор, пока она не будет достигнута: wiki.archlinux.org/index.php/Systemd#Automount – Joseph Santaniello 6 December 2013 в 00:51

Этот 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 для этого устройства.

0
ответ дан 24 May 2018 в 14:48

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

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

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

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

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

-1
ответ дан 24 May 2018 в 14:48
  • 1
    Нет, это означает, что значение будет потеряно ядром и e2fsck: linux.die.net/man/8/tune2fs "Если max-mount-counts равно 0 или -1, количество раз, когда монтируется файловая система, будет игнорироваться e2fsck (8) и ядром. " – HappyCactus 2 September 2016 в 19:13
  • 2
    Мой плохой, изменит пост. – Vivek Ji 3 September 2016 в 08:54

Как отмечали другие, максимальное количество монтирования по умолчанию может быть установлено по умолчанию -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
-1
ответ дан 24 May 2018 в 14:48
  • 1
    Это неверно. В man-странице для [tune2fs] ( linux.die.net/man/8/tune2fs ) указано, что нулевой интервал проверки означает отключение ichecking при максимальном счетчике, а -1 максимальное количество счетчиков - отключить проверку по максимальному счету , И, установив их, эта проблема не была устранена в моей системе (что было связано с плохими часами - без RTC). – alexei 19 June 2017 в 07:52
  • 2
    @alexei Я вынул ссылку на -1 спасибо за указание на это. – WinEunuuchs2Unix 20 June 2017 в 01:58
  • 3
    FTR Я переработал эти команды в совершенно новой настройке Ubuntu 16.04.3 31 октября 2017 года, и они все еще работают как отправленные. По-прежнему новые установки по умолчанию запускают fsck каждую загрузку. – WinEunuuchs2Unix 1 November 2017 в 03:09

Другие вопросы по тегам:

Похожие вопросы: