LINUX.ORG.RU

Почему меняется контрольная сумма раздела диска после перезагрузки?


0

1

Имеется стандартная установка Дебиан 9.
Вывод lsblk:
sda 8:0 0 931,5G 0 disk
├─sda1 8:1 0 512M 0 part /boot/efi
├─sda2 8:2 0 244M 0 part /boot
└─sda3 8:3 0 930,8G 0 part
└─sda3_crypt 254:0 0 930,8G 0 crypt
├─srv--vg-root 254:1 0 926,9G 0 lvm /
└─srv--vg-swap_1 254:2 0 3,9G 0 lvm [SWAP]

1. Контрольные суммы отдельных файлов, находящихся на sda2 и sda1 после перезагрузки не меняются.
2. Время последней модификации файлов, находящихся на разделах sda2 и sda1, после перезагрузки не меняется.

Но при этом, проверка контрольной суммы(md5sum), раздела sda2, после каждой перезагрузки показывает разные значения.

Проверил диффом, понятнее не стало:
5,6c5,6
< 0000420 2000 0000 2000 0000 07e0 0000 9614 5b4f
< 0000430 9614 5b4f 0018 ffff ef53 0000 0001 0000
---

0000420 2000 0000 2000 0000 07e0 0000 7efe 5b50

0000430 7efe 5b50 0019 ffff ef53 0000 0001 0000

22c22
< 0000570 0004 0000 0000 0000 2d57 0004 0000 0000
---

0000570 0004 0000 0000 0000 2d59 0004 0000 0000


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

Поясните, пожалуйста, что происходит?
Ну, или дайте наводку, что можно почитать?

С уважением Виктор.

В метаданных файловой системы какие-то изменения.

Deleted
()

Метаданные файловой системы. Если нужно, чтобы не менялось, придётся монтировать в RO. Если стоит задача контроля изменений, то ты вообще не с той стороны зашёл.

anonymous
()

Мат часть отсутствует полностью. Вам непосредственно жесткий диск предоставляет интерфейс работы с файлами или всё же там ещё и файловая система, которая кучу метаданных харнит на разделе?

sparks ★★★
()
Ответ на: комментарий от sparks

Думаю, это зависит от ФС. В ext4 должно меняться, да.

anonymous
()

Время доступа к файлам, время монтирования фс и тд сохраняются.

anonymous
()

2. Время последней модификации файлов, находящихся на разделах sda2 и sda1, после перезагрузки не меняется.

А кроме времени модификации есть еще 2 времени - время создания и время последнего обращения (чтения). Вот время последнего обращения и меняется после чтения файла.

sigurd ★★★★★
()
Ответ на: комментарий от sigurd

Никакие(!) атрибуты файлов у меня не менялись. Меняются байты не связанные ни с какими файлами. Это действительно похоже на какие-то метаданные.

На sda2 файловая система ext2. Перемонтировал с ro. Теперь никаких изменений после перезагрузки не происходит. Но это неудачное решение, при обновлении ядра придется каждый раз менять ro на rw.

Время доступа к файлам, время монтирования фс и тд сохраняются.
В метаданных файловой системы какие-то изменения.

Это работает только для ext2? Почему для sda1(fat32) метаданные не меняются? Куда копать? Дайте ссылку пожалуста.

Метаданные файловой системы. Если нужно, чтобы не менялось, придётся монтировать в RO. Если стоит задача контроля изменений, то ты вообще не с той стороны зашёл.

С какой стороны подходить?

С уважением Виктор.

maltsevvv
() автор топика
Ответ на: комментарий от maltsevvv

при обновлении ядра придется каждый раз менять ro на rw

Именно поэтому это очень удачное решение (напоминаю, что есть такая штука, как mount -o remount,rw). Я сам раньше так делал, держал /boot в ro, а в нём держал спасательный initrd с набором полезных утилит, шансы неожиданно потерять такой раздел близки к 0. Сейчас в таком смысла особого нет, за две минуты можно скачать и записать на флешку live-образ.

redgremlin ★★★★★
()
Ответ на: комментарий от maltsevvv

С какой стороны подходить?

Но это неудачное решение, при обновлении ядра придется каждый раз менять ro на rw.

Я так понимаю, речь про /boot без шифрования?

anonymous
()
Ответ на: комментарий от maltsevvv

Это работает только для ext2? Почему для sda1(fat32) метаданные не меняются?

Потому что это разные файловые системы, и они работают по-разному.

Хочешь, чтобы контрольные суммы не менялись - монтируй в ro, других вариантов нет.

Deleted
()
Ответ на: комментарий от anonymous

Со стороны iso9660 или squashfs.

???????????

Я так понимаю, речь про /boot без шифрования?

Да. После перезагрузки проверяется контрольная сумма незашифрованных дисков и выводится соответствующее сообщение.

mount -o remount,rw

Попробую. Спасибо.

С уважением Виктор

maltsevvv
() автор топика
Ответ на: комментарий от maltsevvv

Да.

Внеси /boot в общий корень на dm-crypt и настрой GRUB соответствующим образом. Тогда останется проверять только ESP (это он же на FAT32).

Да, и пиши отдельные ответы на отдельные комментарии, даже если анонимусы кажутся одинаковыми.

anonymous
()
Ответ на: комментарий от sparks

Нет. Он на то и ro. Там даже в суперблок не пишется ничего чтобы не менять время последнего монтирования и флаг чистого отмонтирования

Nastishka ★★★★★
()
Ответ на: комментарий от anonymous

Пробовал этот вариант. Геморойно, а секюрности нисколько не прибавляет. Все равно проверка после запуска требуется.

С уважением Виктор

maltsevvv
() автор топика
Ответ на: комментарий от Nastishka

Дока с описанием ext4 с kernel.org считает иначе

ro______Mount filesystem read only. Note that ext4 will
________replay the journal (and thus write to the
________partition) even when mounted «read only». The
________mount options «ro,noload» can be used to prevent
________writes to the filesystem.

sparks ★★★
()
Ответ на: комментарий от maltsevvv

Геморойно

Одна опция и всё работает. Непонятно, где геморрой.

а секюрности нисколько не прибавляет

Действительно, или initramfs на открытом разделе, или на шифрованном.

anonymous
()

Все таки... возвращаясь к моему вопросу. Как разобраться что пишется на диск, вне файлов? Что почитать по этому поводу? Только на стандарты ссылки не присылайте.

С уважением Виктор.

maltsevvv
() автор топика
Ответ на: комментарий от maltsevvv

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

ValdikSS ★★★★★
()
Ответ на: комментарий от maltsevvv

Если вы хотите проверять целостность операционной системы и соответствующих файлов, вам нужна доверенная загрузка (Trusted Boot), и TPM на материнской плате (надеюсь, у вас x86).

https://github.com/zajdee/tpm-luks

Также, TPM можно использовать для генерации TOTP-кода: https://github.com/mjg59/tpmtotp

ValdikSS ★★★★★
()
Ответ на: комментарий от redgremlin

Чот я не улавливаю смысла. Повредить раздел можно только при записи на него. Но пока ты не обновляешь ядро, на boot ничего не пишется. А когда ты перемонтируешь его в rw и обновляешь ядро, ты как раз можешь его повредить. В чём смысл?

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.