Created attachment 5655 [details] LUKS-prevent-luks-activating-on-disassembled-RAID.patch При использовании LUKS поверх RAID с версией метаданных 0.9, происходит попытка задействования luks на отдельных дисках, входящих в RAID, так как с точки зрения cryptsetup они выглядят корректными luks разделами. Предполагается, что приложенный патч предотвращает эту ситуацию.
Насколько я понимаю, в случае 0.9 заголовок LUKS будет находится в начале и этот раздел можно смонтировать отдельно. Тогда blkid тоже прочтёт superblock и тоже будет считать такой раздел как crypto. Разве нет ?
Меня смущает: http://git.altlinux.org/gears/u/util-linux.git?p=util-linux.git;a=blob;f=libblkid/src/superblocks/superblocks.c;h=879a40ff59506adc59459e204b0a8c9f8f149c8d;hb=HEAD#l420 The function also does not check for collision between RAIDs and crypto devices. The first detected RAID or crypto device is returned.
Судя по порядку проверки: http://git.altlinux.org/gears/u/util-linux.git?p=util-linux.git;a=blob;f=libblkid/src/superblocks/superblocks.c;h=879a40ff59506adc59459e204b0a8c9f8f149c8d;hb=HEAD#l78 рейд (или его кусок) найдётся первым и данным libblkid можно верить. Я бы ещё подстраховался проверкой по /etc/crypttab, о которой говорилось в другой баге, но это отдельная история (это я планирую добавить на днях).
(В ответ на комментарий №1) > Насколько я понимаю, в случае 0.9 заголовок LUKS будет находится в начале и > этот раздел можно смонтировать отдельно. Тогда blkid тоже прочтёт superblock и > тоже будет считать такой раздел как crypto. С одной стороны, я неоднократно слышал (да и сам однажды сталкивался) о попытках собрать RAID из устройств, которые когда-то были в составе RAID и сохранили в конце диска метаданные. С другой стороны -- там не было luks. Тимур, проверялся ли этот патч и что выдаёт blkid на такие устройства?
(В ответ на комментарий №3) > Судя по порядку проверки: > > http://git.altlinux.org/gears/u/util-linux.git?p=util-linux.git;a=blob;f=libblkid/src/superblocks/superblocks.c;h=879a40ff59506adc59459e204b0a8c9f8f149c8d;hb=HEAD#l78 > > рейд (или его кусок) найдётся первым и данным libblkid можно верить. И, пожалуй, есть основания считать, что это сделано так не случайно и, соответственно, имеет большую вероятность сохраниться и в будущем (так как raid поверх luks это немного слишком экзотично).
(В ответ на комментарий №5) > (так как raid > поверх luks это немного слишком экзотично). хотя.. если raid поверх luks, то его метаданные не будут читаемы :)
Антон, ты правильно вспомнил, что возможно останутся старые метаданные и из-за порядка проверки он будет всегда видеться как рейд. Таким образом, не получится ли то что бывший рейдовый диск с luks перестанет обрабатываться вообще ? Согласен, что в этой ситуации пользователь в некотором смысле ССЗБ, но ведь были же у нас такие случаи на обычных дисках, когда make-initrd утверждал, что диск с файловой системой raid_member.
(В ответ на комментарий №7) > Антон, ты правильно вспомнил, что возможно останутся старые метаданные и из-за > порядка проверки он будет всегда видеться как рейд. > > Таким образом, не получится ли то что бывший рейдовый диск с luks перестанет > обрабатываться вообще ? Бывший рейдовый диск в любом случае обрабатывается криво хоть есть там luks хоть нету... > Согласен, что в этой ситуации пользователь в некотором смысле ССЗБ, но ведь > были же у нас такие случаи на обычных дисках, когда make-initrd утверждал, что > диск с файловой системой raid_member. Это общая проблема, так как с этими старыми метеданными нельзя различить разломанный raid с разделами и/или fs от диска, который вынули из raid и не занулили ему конец..
Если кто-то не удалил метаданные RAID с диска, и сделал на нём что-то другое, то он конечно же сам себе злобный буратино, и не надо закладываться на такую ситуацию. у mdadm есть параметр, убирающий метаданные RAID с диска.
(В ответ на комментарий №9) > Если кто-то не удалил метаданные RAID с диска, и сделал на нём что-то другое, > то он конечно же сам себе злобный буратино, и не надо закладываться на такую > ситуацию. Мой вопрос был связан лишь с опасением, изменения поведения. У тех у кого всё работало может перестать работать. Но это скорее для ясности, чем аргумент против (assigned я уже ставил).
0.7.9-alt1-15-g9ec741b
Патч уже давно приложен.