Bug 28135 - Происходит попытка использования luks на компонентах RAID с метаданными v0.9
Summary: Происходит попытка использования luks на компонентах RAID с метаданными v0.9
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: make-initrd-luks (show other bugs)
Version: unstable
Hardware: all Linux
: P3 normal
Assignee: Alexey Gladkov
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-11-27 17:19 MSK by Anton V. Boyarshinov
Modified: 2018-04-23 18:42 MSK (History)
7 users (show)

See Also:


Attachments
LUKS-prevent-luks-activating-on-disassembled-RAID.patch (996 bytes, patch)
2012-11-27 17:19 MSK, Anton V. Boyarshinov
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Anton V. Boyarshinov 2012-11-27 17:19:36 MSK
Created attachment 5655 [details]
LUKS-prevent-luks-activating-on-disassembled-RAID.patch

При использовании LUKS поверх RAID с версией метаданных 0.9, происходит попытка задействования luks на отдельных дисках, входящих в RAID, так как с точки зрения cryptsetup они выглядят корректными luks разделами.

Предполагается, что приложенный патч предотвращает эту ситуацию.
Comment 1 Alexey Gladkov 2012-11-27 17:39:06 MSK
Насколько я понимаю, в случае 0.9 заголовок LUKS будет находится в начале и этот раздел можно смонтировать отдельно. Тогда blkid тоже прочтёт superblock и тоже будет считать такой раздел как crypto.

Разве нет ?
Comment 2 Alexey Gladkov 2012-11-27 17:58:48 MSK
Меня смущает:

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.
Comment 3 Alexey Gladkov 2012-11-27 18:12:27 MSK
Судя по порядку проверки:

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, о которой говорилось в другой баге, но это отдельная история (это я планирую добавить на днях).
Comment 4 Anton V. Boyarshinov 2012-11-27 18:16:27 MSK
(В ответ на комментарий №1)
> Насколько я понимаю, в случае 0.9 заголовок LUKS будет находится в начале и
> этот раздел можно смонтировать отдельно. Тогда blkid тоже прочтёт superblock и
> тоже будет считать такой раздел как crypto.
С одной стороны, я неоднократно слышал (да и сам однажды сталкивался) о попытках собрать RAID из устройств, которые когда-то были в составе RAID и сохранили в конце диска метаданные.
С другой стороны -- там не было luks.

Тимур, проверялся ли этот патч и что выдаёт blkid на такие устройства?
Comment 5 Anton V. Boyarshinov 2012-11-27 18:18:51 MSK
(В ответ на комментарий №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 это немного слишком экзотично).
Comment 6 Anton V. Boyarshinov 2012-11-27 18:22:09 MSK
(В ответ на комментарий №5)
>  (так как raid
> поверх luks это немного слишком экзотично).
хотя.. если raid поверх luks, то его метаданные не будут читаемы :)
Comment 7 Alexey Gladkov 2012-11-27 18:29:28 MSK
Антон, ты правильно вспомнил, что возможно останутся старые метаданные и из-за порядка проверки он будет всегда видеться как рейд.

Таким образом, не получится ли то что бывший рейдовый диск с luks перестанет обрабатываться вообще ?

Согласен, что в этой ситуации пользователь в некотором смысле ССЗБ, но ведь были же у нас такие случаи на обычных дисках, когда make-initrd утверждал, что диск с файловой системой raid_member.
Comment 8 Anton V. Boyarshinov 2012-11-29 11:11:00 MSK
(В ответ на комментарий №7)
> Антон, ты правильно вспомнил, что возможно останутся старые метаданные и из-за
> порядка проверки он будет всегда видеться как рейд.
> 
> Таким образом, не получится ли то что бывший рейдовый диск с luks перестанет
> обрабатываться вообще ?
Бывший рейдовый диск в любом случае обрабатывается криво хоть есть там luks хоть нету...

> Согласен, что в этой ситуации пользователь в некотором смысле ССЗБ, но ведь
> были же у нас такие случаи на обычных дисках, когда make-initrd утверждал, что
> диск с файловой системой raid_member.
Это общая проблема, так как с этими старыми метеданными нельзя различить разломанный raid с разделами и/или fs от диска, который вынули из raid и не занулили ему конец..
Comment 9 Anton Farygin 2012-11-29 11:25:26 MSK
Если кто-то не удалил метаданные RAID с диска, и сделал на нём что-то другое, то он конечно же сам себе злобный буратино, и не надо закладываться на такую ситуацию.

у mdadm есть параметр, убирающий метаданные RAID с диска.
Comment 10 Alexey Gladkov 2012-11-29 13:31:12 MSK
(В ответ на комментарий №9)
> Если кто-то не удалил метаданные RAID с диска, и сделал на нём что-то другое,
> то он конечно же сам себе злобный буратино, и не надо закладываться на такую
> ситуацию.

Мой вопрос был связан лишь с опасением, изменения поведения. У тех у кого всё работало может перестать работать. Но это скорее для ясности, чем аргумент против (assigned я уже ставил).
Comment 11 Alexey Gladkov 2012-11-29 13:39:19 MSK
0.7.9-alt1-15-g9ec741b
Comment 12 Alexey Gladkov 2018-04-23 18:42:13 MSK
Патч уже давно приложен.