Разделение и хэширование в Ubuntu
Мне нужно разделить Ubuntu на два раздела: один раздел, содержащий все файлы, которые не изменяются со временем, например, из-за изменений в дате / времени и логинах, и другой раздел, который содержит все эти файлы, которые могут фактически меняться время. Чтобы проверить, что хеширование (подпись) первого раздела остается неизменным (т. Е. Оно не изменяется со временем), мне необходимо использовать алгоритм хеширования, такой как MD5 или SHA1.
Вопросы:
Как определить, какие каталоги / файлы в файловой системе следует включать в каждый раздел?
Шаги, чтобы сделать это разделение, при условии, что 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}'
Жиль придумал этот последний, так что поддержите его ответ:)