Summary: | initrd. Брать название luks устройств из /etc/crypttab | ||||||
---|---|---|---|---|---|---|---|
Product: | Sisyphus | Reporter: | timonbl4 <timonbl4> | ||||
Component: | make-initrd-luks | Assignee: | Alexey Gladkov <legion> | ||||
Status: | RESOLVED LATER | QA Contact: | qa-sisyphus | ||||
Severity: | enhancement | ||||||
Priority: | P3 | CC: | aen, boyarsh, glebfm, ldv, legion, mike, placeholder | ||||
Version: | unstable | ||||||
Hardware: | all | ||||||
OS: | Linux | ||||||
Attachments: |
|
Description
timonbl4@altlinux.org
2012-11-21 16:11:49 MSK
Created attachment 5643 [details]
Патч на make-initrd 0.7.9-alt1
Патчи на ветку legion/master: http://git.altlinux.org/people/timonbl4/packages/?p=make-initrd.git;a=shortlog;h=aab942ee02debefa157d0b694767adf723751cf9 + LUKS_ROOT_UUID=$(blkid -o value -s UUID "$LUKS_ROOT") Видимо вы не поняли мой ответ по почте. Эти значения можно получить из udev (он их получает через libblkid) в хэндлере. Не нужно лишний раз дёргать одни и те же механизмы для получения одного и того же. + if [ x"$crypttab_block" = x"$LUKS_ROOT" ] || [ x"$crypttab_block" = x"UUID=$LUKS_ROOT_UUID" ]; then Не могли бы вы придерживаться стиля принятого в остальном коде ? (В ответ на комментарий №3) > + LUKS_ROOT_UUID=$(blkid -o value -s UUID "$LUKS_ROOT") > > Видимо вы не поняли мой ответ по почте. Эти значения можно получить из udev (он > их получает через libblkid) в хэндлере. $ID_FS_UUID_ENC ? > + if [ x"$crypttab_block" = x"$LUKS_ROOT" ] || [ x"$crypttab_block" = > x"UUID=$LUKS_ROOT_UUID" ]; then > > Не могли бы вы придерживаться стиля принятого в остальном коде ? Можете пояснить? (In reply to comment #4) > > + if [ x"$crypttab_block" = x"$LUKS_ROOT" ] || [ x"$crypttab_block" = > > x"UUID=$LUKS_ROOT_UUID" ]; then > > Не могли бы вы придерживаться стиля принятого в остальном коде ? > Можете пояснить? Видимо, [ x$a = x... ] -- дикая архаика, которая в некоторых местах ещё встречается (не считая случаев вроде configure, когда работать должно и на совсем странном хламе). Возможно, лучше так: > if [ "$crypttab_block" = "$LUKS_ROOT" -o "$crypttab_block" = "UUID=$LUKS_ROOT_UUID" ]; then Хотя я бы м.б. оформил как > case "$crypttab_block" in > "$LUKS_ROOT"|"UUID=$LUKS_ROOT_UUID") ...;; > esac (В ответ на комментарий №4) > $ID_FS_UUID_ENC ? Угу ... ID_FS_UUID*. Их там насколько я помню несколько под разные цели. Передать её можно точно также как LUKS_ROOT. > > + if [ x"$crypttab_block" = x"$LUKS_ROOT" ] || [ x"$crypttab_block" = > > x"UUID=$LUKS_ROOT_UUID" ]; then > > > > Не могли бы вы придерживаться стиля принятого в остальном коде ? > > Можете пояснить? выражения в if/while не разделяются. x"something" это бесполезный код -> "something". Кстати, в вашем "while read" нет проверки на пустые строки и комментарии. Если с первыми проблем больших нет если верить, что LUKS_ROOT_UUID всегда заполнен, но с вторым можно легко выдать не то. (In reply to comment #0) > При загрузке получаем: в initrd активируем sda1, называет sda1-luks, init > скрипты не находят luks1 и пытается повторно активировать sda1 TWIMC: текущий сизифный installer не создаёт /etc/crypttab, вследствие чего получаем bug #28255. Reopen if needed |