Разделение и хэширование в Ubuntu

Мне нужно разделить Ubuntu на два раздела: один раздел, содержащий все файлы, которые не изменяются со временем, например, из-за изменений в дате / времени и логинах, и другой раздел, который содержит все эти файлы, которые могут фактически меняться время. Чтобы проверить, что хеширование (подпись) первого раздела остается неизменным (т. Е. Оно не изменяется со временем), мне необходимо использовать алгоритм хеширования, такой как MD5 или SHA1.

Вопросы:

  1. Как определить, какие каталоги / файлы в файловой системе следует включать в каждый раздел?

  2. Шаги, чтобы сделать это разделение, при условии, что Ubuntu продолжает работать как обычно?

Заранее спасибо!

1 ответ

Решение

Linux в целом медленно движется к системе, в которой / можно монтировать как "только для чтения", а другие разделы можно монтировать как "доступные для записи".

Этот шаг выполняется путем перемещения объектов в каталоги с "run" в качестве подкаталога. Это "доступные для записи". Когда вы смотрите на df -h вы уже увидите несколько таких:

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            5,8G     0  5,8G   0% /dev
tmpfs           1,2G  9,5M  1,2G   1% /run
/dev/sda2        46G  8,1G   36G  19% /
tmpfs           5,9G   31M  5,8G   1% /dev/shm
tmpfs           5,0M  4,0K  5,0M   1% /run/lock
tmpfs           5,9G     0  5,9G   0% /sys/fs/cgroup
/dev/sda1        47M  3,6M   43M   8% /boot/efi
/dev/sda5        34G   11G   22G  34% /home
/dev/sdb1       917G  235G  636G  27% /discworld
cgmfs           100K     0  100K   0% /run/cgmanager/fs
tmpfs           1,2G   76K  1,2G   1% /run/user/1000

В качестве другой меры они (часто) монтируются как временная файловая система (tmpfs).


Теперь, чтобы добраться до сути.

Поскольку файлы на данный момент не определены как доступные для записи или нет, они разбросаны по всей файловой системе.

Следуя FHS и придерживаясь основных каталогов:

  • /bin, /lib, /sbin а также /usr может быть установлен только для чтения.
  • /etc, /home, /srv, /tmp, /var должно быть доступно для записи.
  • /dev, /proc, /selinux а также /sys обрабатываются специальными файловыми системами.

Readonlyroot на страницах Debian содержит более подробную статью о конкретных файлах, которые запрещают доступ к каталогу только для чтения. Например /etc/ в значительной степени беспорядок в том, чтобы разделить его на файлы только для чтения и записи.


Команда в конце ссылки работает только для zsh, В чате @serg придумали это как альтернативу:

{ lsof +L1; lsof|sed -n '/SYSV/d; /DEL\|(path /p;' ; } |grep -Ev '/(dev|home|tmp|var)'

Этот список команд процессов, которые открыты:

lsof /

А вот фильтр, показывающий только идентификаторы процессов, которые не позволяют монтировать только для чтения:

lsof -F pa /home | awk '/^p/ {pid = substr($0, 2)} /^a.*w/ {print pid}'

Жиль придумал этот последний, так что поддержите его ответ:)

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