Регистрация и оверлейные файлы в существующей установке Ubuntu

У меня есть система Ubuntu, которая в основном будет использоваться в качестве автономного устройства, и мне нужно изящно восстанавливаться после внезапной потери питания и начать нормально работать.

Я понимаю, что overlayfs - это путь, но мне все еще нужно регистрировать и хранить данные, включая системные журналы, такие как сбои и ведение журнала.

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

  1. Правильно ли мое понимание? Есть ли другие варианты, которые я должен рассмотреть?
  2. Ubuntu уже установлена ​​и работает (готовые системы), как я могу сделать это без полной переустановки?
  3. Достаточно ли вести поиск журналов и журналов сбоев или существуют другие системные журналы, которые также обычно сохраняются в подобных ситуациях?
  4. Есть ли руководство для этого? Руководства, которые я видел, покрывают оверлеи вообще или реализуют их без особой регистрации, но я не видел ни руководства, ни сценария, который делает оверлеи с регистрацией с хорошей детализацией, поэтому мне приходится искать каждую часть отдельно.

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

1 ответ

  1. Используя Ubuntu LiveUSB, запустите gparted, чтобы уменьшить существующий раздел ext4 и создать новый раздел, называемый "data-rw" как в имени, так и в метке.

  2. Перезагружать.

Этот раздел будет автоматически смонтирован при загрузке, вероятно, в /media/user/data_rw, Теперь, когда у нас есть второй диск, давайте переместим на него файлы журнала. Почти все ведение журнала делается для /var/logИтак, давайте создадим новый каталог на втором диске и свяжем его там.

  1. Создайте каталог журналов в новом разделе, синхронизируйте существующие файлы с пользователями и разрешениями и выполните привязку в fstab, чтобы она автоматически загружалась:

    sudo mkdir /media/user/data_rw/log
    sudo rsync -a --include '*/' --exclude '*' /var/log/ /media/user/data_rw/log/
    sudo nano /etc/fstab

Добавьте эти строки в конец (при необходимости измените имя устройства):

/dev/sda3 /media/user/data_rw ext4 rw,nosuid,nodev,relatime,data=ordered 0 2  
/media/user/data_rw/log /var/log none rw,bind 0 0  
  1. Мы хотели бы принудительно проверить диск на доступный для записи раздел с автоматическим исправлением ошибок. Теоретически, это должно сработать, но не ясно, что это в моем случае, поэтому рассмотрим это подробнее. редактировать /etc/default/grub и найти строку с GRUB_CMDLINE_LINUX_DEFAULT, затем добавьте fsck.mode=force fsck.repair=yes на эту линию. Делать sudo update-grub записать изменения в загрузчик

  2. Установите оверлеи, sudo apt-get install overlayroot и редактировать /etc/overlayroot.conf изменив параметр overlayroot на overlayroot="tmpfs:swap=1,recurse=0" Это приведет к тому, что overlayroot покроет только корневой диск и ничего больше, оставив наш диск data_rw в покое.

Теперь перезагрузите компьютер, и вы увидите, что добавление файла в ~/ исчезнет при следующей загрузке, но при добавлении файла в /media/user/data_rw или же /var/log будет сохраняться через сапоги.

С помощью journalctl вы должны обнаружить, что журналы сохраняются и при загрузке, и если ваша система дает сбой, вы должны найти журналы сбоев в /var/log даже после перезагрузки.

Если вам нужно изменить защищенную файловую систему, перезагрузите компьютер и когда появится grub, нажмите e отредактировать скрипт запуска grub. На линии Linux добавить overlayroot=disabled к концу. Это будет работать до перезагрузки. Вы можете добавить новый параметр загрузчика grub, если это часто требуется.

Поскольку записи никогда не производятся в корневой раздел, доступный только для чтения, он никогда не должен отображать ошибки и должен прекрасно загружаться после внезапного отключения питания. Однако раздел data_rw может иметь незавершенные записи в него. Fsck должен исправить это, но в худшем случае диск не будет монтироваться при загрузке, привязка не произойдет, а журналы будут записаны в оверлей и не будут сохранены. Тем не менее, система будет продолжать работать, и если это критически необходимо, вы можете обнаружить это состояние с помощью сценариев или программного обеспечения и принять меры.

Вы можете написать напрямую в /media/user/data_rw или использовать службу регистрации systemd для захвата ваших журналов.

Большая часть этого ответа возможна благодаря следующим ресурсам:

https://spin.atomicobject.com/2015/03/10/protecting-ubuntu-root-filesystem/

/questions/10486/kak-sdelat-mount-bind-postoyannyim/10496#10496

Как сделать mount --bind постоянным?

Автоматически форсировать fsck -fy при обнаружении "НЕОЖИДАННОЙ НЕСОСТОЯТЕЛЬНОСТИ; ЗАПУСТИТЕ fsck ВРУЧНУЮ".

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