Мне нравится запускать систему без присмотра для ежедневного использования в киоске.
Тем не менее, система может быть отключена в любое время, если кто-то не произвел надлежащего отключения. По умолчанию Ubuntu не отключается из-за потери питания. После перезагрузки после отключения питания можно запустить fsck для проверки файловой системы, а fsck может дать команду системе перезагрузиться после ее завершения. Таким образом, даже если никакие данные конфигурации не будут повреждены, машина может не загрузиться после потери питания. Итак, я протестировал некоторые обходные пути:
измените приоритет fsck монтирования root на
0
(последнее поле вfstab
корневой записи), что предотвращает запускfsck
после каждой потери питания. Тем не менее, система может загружаться с монтируемым root-доступом только для чтения, что не ожидается многими службами, и вместо графического входа в систему появляется приглашение для входа в консоль.Заменить
errrors=remount-ro
наerrors=continue
. Это создает плохое предчувствие, что дальнейшая потеря данных может произойти из-за незавершенной файловой системы. Тем не менее, приfsck
включении снова, это должно увеличить загрузочную способность системы после потери питания. Итак, я бросил 1).Переконфигурируйте grub2 для использования обычного времени ожидания по умолчанию после неудачной загрузки. Для этого я добавил
GRUB_RECORDFAIL_TIMEOUT=0
к/etc/default/grub
.
Тем не менее, трудно понять, являются ли эти взломы доказательством потери мощности системы. Есть идеи? Еще можно сделать?
Ответы:
Для приложения киоска проблема решается с помощью корневого раздела только для чтения. Кроме того, любые изменения, внесенные или сохраненные пользователями, отменяются при следующей перезагрузке.
Чтобы обеспечить доступный для записи корень для большинства нужд приложений, можно использовать overlayfs для наложения раздела только для чтения на доступный для записи ram tempfs.
В нижней части https://help.ubuntu.com/community/aufsRootFileSystemOnUsbFlash есть скрипт, который помогает создать такую настройку . Скрипт содержит инструкции по настройке:
sudo chmod 0755 root-ro
sudo update-initramfs -u
Я предлагаю , чтобы добавить
GRUB_RECORDFAIL_TIMEOUT=0
к/etc/default/grub
и работатьsudo update-grub
тоже, иначе меню загрузки может появиться без тайм - аута.После этого перезагрузите компьютер. Затем машина запускается в режиме только для чтения, который можно проверить с помощью
mount
. Любое изменение вступит в силу при следующей перезагрузке. Для внесения любых изменений, установки программного обеспечения, обновлений и т. Д. Вам просто нужно войти в меню GRUB, нажать,e
чтобы изменить командные строки загрузки, и добавитьdisable-root-ro=true
строку, начинающуюся с ядра. Нажмите F10, чтобы продолжить загрузку. Затем вы можете использоватьmount
для подтверждения того, что root монтируется как доступный для записи. Внесите изменения и перезагрузитесь, система снова будет доступна для чтения.источник
Несколько раз после нечистой перезагрузки (скажем, при отключении питания или нажатии кнопки сброса или даже при панике ядра) система не загружается и просит вас нажать «y», чтобы fsck восстановил раздел.
Если вы хотите избежать этого, отредактируйте / etc / default / rcS и измените:
Для того, чтобы:
Это обеспечит автоматическое выполнение этого ремонта без запроса вас.
Недостатком может быть то, что вы можете потерять данные и, возможно, захотите сначала извлечь жесткий диск и клонировать его, если на нем есть что-то критическое, что не скопировано.
Например, если в контроллере жесткого диска произошла ошибка, и fsck ошибочно определил раздел как поврежденный и попытался восстановить его, это может привести к потере данных, которой в противном случае можно избежать. Я никогда не сталкивался с этим сам и за последние 7 лет или около того имел дело с почти тысячей серверов - но все же об этом нужно помнить.
источник
На сегодняшний день для решения, доступного только для чтения, можно также установить пакет,
overlayroot
выполнивкоторый легко предоставит вам полное решение, подобное утвержденному ответу. Это также позволяет для полезной команды
который войдет в оболочку, на которой установлен прежний базовый диск только для чтения
/
. Затем можно внести любые изменения в защищенную систему, например, и использовать ееapt-get
для установки пакетов на прежний диск только для чтения. Однако после выхода из оболочки настоятельно рекомендуется перезагрузить компьютер, поскольку временно перезаписанные файлы в ОЗУ могут затенить вновь установленные.источник