Как заставить Ubuntu исправить корневой каталог, не взаимодействуя с пользователем при загрузке?

0

Я использую Ubuntu на промышленной плате ( Beaglebone Black ). Иногда в результате сбоя питания или других проблем при загрузке ОС просит нажать F, чтобы исправить корневой раздел, и ждет, пока пользователь что-то сделает. Но я хочу убедиться, что ОС загружается, потому что там нет ни одного пользователя, который мог бы нажать какую-либо кнопку, на самом деле к моей встроенной плате не подключен последовательный кабель, чтобы любой мог послать ей любой символ.

Как настроить Ubuntu так, чтобы он всегда исправлял файловую систему, не спрашивая пользователя?

hmojtaba
источник

Ответы:

0

Используйте -aаргумент.

fsck /dev/sdaX -a -p

$ man fsck

Взято из справочных страниц:

   Options  to  different filesystem-specific fsck's are not standardized.
   If in doubt, please consult the man pages  of  the  filesystem-specific
   checker.   Although not guaranteed, the following options are supported
   by most filesystem checkers:

   -a     Automatically repair the filesystem without any  questions  (use
          this  option with caution).  Note that e2fsck(8) supports -a for
          backward compatibility only.  This option is mapped to  e2fsck's
          -p  option  which is safe to use, unlike the -a option that some
          filesystem checkers support.

   -n     For some filesystem-specific checkers, the -n option will  cause
          the fs-specific fsck to avoid attempting to repair any problems,
          but simply report such problems to stdout.  This is however  not
          true  for  all  filesystem-specific  checkers.   In  particular,
          fsck.reiserfs(8) will not report any corruption  if  given  this
          option.  fsck.minix(8) does not support the -n option at all.

   -r     Interactively  repair  the  filesystem  (ask for confirmations).
          Note: It is generally a bad idea to use this option if  multiple
          fsck's  are  being  run  in  parallel.   Also  note that this is
          e2fsck's default behavior; it supports this option for  backward
          compatibility reasons only.

   -y     For  some filesystem-specific checkers, the -y option will cause
          the fs-specific fsck to  always  attempt  to  fix  any  detected
          filesystem corruption automatically.  Sometimes an expert may be
          able to do better driving the fsck manually.  Note that not  all
          filesystem-specific checkers implement this option.  In particu‐
          lar fsck.minix(8) and  fsck.cramfs(8)  do  not  support  the  -y
          option as of this writing.

Экран быстрой справки показывает:

Emergency help:
 -p                   Automatic repair (no questions)
 -n                   Make no changes to the filesystem
 -y                   Assume "yes" to all questions
 -c                   Check for bad blocks and add them to the badblock list
 -f                   Force checking even if filesystem is marked clean
 -v                   Be verbose
 -b superblock        Use alternative superblock
 -B blocksize         Force blocksize when looking for superblock
 -j external_journal  Set location of the external journal
 -l bad_blocks_file   Add to badblocks list
 -L bad_blocks_file   Set badblocks list

Другие связанные элементы:

на /etc/fstabзвонки /etc/init.d/checkfs.shдля его проверки. Вы можете отредактировать этот файл, чтобы дать ему необходимые параметры.

Проверьте эти блоки:

[ "$fscheck" = yes ] && log_warning_msg "Fast boot enabled, so skipping file system check."

if [ "$fscheck" = yes ] && [ ! "$BAT" ] && [ "$FSCKTYPES" != "none" ]

Л.Д. Джеймс
источник
Спасибо, моя проблема в том, что когда ядро ​​загружается, оно обнаруживает некоторые ошибки в корневом (/) разделе и просит нажать F, чтобы исправить их, и ждет, пока пользователь нажмет кнопку без какого-либо тайм-аута. Могу ли я передать что-то, может быть, в fstab, чтобы, когда ядро ​​захотело автоматически смонтировать корневой раздел, исправьте ошибки?
hmojtaba
@hmojtaba Что у вас есть в 6-м поле /etc/fstabстроки? Я уверен, что поле пустое или 0будет указывать системе, что его не нужно проверять, и он будет пропущен. Если вы спрашиваете, как сделать так, чтобы он проверял и передавал автофикс через /etc/fstabлинию, я не думаю, что он для этого есть. Вы можете создать скрипт для быстрой проверки и уведомить вас, если необходимо проверить файловую систему, тогда вы можете проверить его вручную. Я исследую это подробнее и дополню свой ответ тем, что нашел.
Л.Д. Джеймс
Спасибо за ваше внимание, мне нужно, чтобы раздел был отсканирован, чтобы последнее поле было не 0, а равно 1. Если бы был хотя бы тайм-аут, если пользователь не нажимал какую-либо кнопку, он исправил бы это автоматически или даже пропустил исправление и смонтировать корневой раздел и продолжить загрузку ОС! это встроенная ОС, которая будет использоваться в качестве продукта! Последнее, что я хочу, - это убунту, чтобы он остановился и попросил пользователя нажать кнопку, когда нет никого, кто мог бы это сделать!
hmojtaba
@hmojtaba Я добавил свой ответ внизу (другие связанные пункты). Посмотрим, поможет ли это.
Л.Д. Джеймс
Благодаря подсказкам в вашем ответе я нашел соответствующие параметры (вроде "$fscheck" = yes) не в /etc/init.d/checkfs.sh(не было такого файла, но в другом файле /etc/init/checkfs.sh.conf...), но что-то похожее на это в /etc/default/rcSnamed, FSCKFIX=noтогда я изменил его на FSCKFIX=yes. Я не проверял, работает ли он или нет, сообщу вам о результатах. OH я просто нашел другой материал /etc/init/mountall.conf... ждать моего гнезда редактирования
hmojtaba