Bug 28181

Summary: перемонтировать файловые системы с EVMS-томов на обычные
Product: Sisyphus Reporter: Michael Shigorin <mike>
Component: installerAssignee: Michael Shigorin <mike>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: critical    
Priority: P3 CC: aen, antohami, boyarsh, cas, glebfm, klark, mike, rider, sem, stanv, zerg
Version: unstable   
Hardware: all   
OS: Linux   
Bug Depends on: 28200    
Bug Blocks: 27685, 28966, 38789    
Attachments:
Description Flags
remount script draft
none
cleaned up version
none
Лог крэша
none
Лог выполнения скрипта перемонтирования
none
swapoff/swapon
none
0001-11-remount-initial-luks-support.patch none

Description Michael Shigorin 2012-12-04 21:54:43 MSK
Created attachment 5663 [details]
remount script draft

По мотивам bug #28020, bug #28136 и результатам эксперимента решили:

- после завершения разбивки/форматирования ФС при помощи EVMS отключать
  эти ФС и тома под ними с тем, чтобы освободить блочные устройства для
  возможности работы с ними напрямую либо подъёма в штатном виде (LVM2-
  плагин EVMS назначает имена устройств вида /dev/mapper/lvm2|main|root,
  что не устраивает нынешнюю libdevmapper);

- перед продолжением (как минимум до установки загрузчика) обеспечить
  подъём блочных устройств, включая mdraid, lvm2 и luks-контейнеры, в их
  итоговом виде, соответствующем ситуации в установленной системе.

При этом:

- добавляется скрипт installer/preinstall.d/11-remount.sh в installer;
- убирается grub-2.00-evms-crap-alt.patch из grub2;
- можно убрать хаки в alterator-grub/{backend3/grub,bin/grub-disk}
  из alterator-grub и в installer/preinstall.d/50-initrd.sh из installer.

Набросок пока без поддержки LUKS (для которой также потребуется дополнительная работа по alterator-vm и ещё один шаг установки в случае создания таких контейнеров) прилагается.

Если найдутся проблемы или потребуются дополнительные доработки -- переоткрываем.
Comment 1 Michael Shigorin 2012-12-04 23:26:29 MSK
Created attachment 5664 [details]
cleaned up version

Этот вариант хотя бы можно читать; у меня работает с md и lvm.
Comment 2 Repository Robot 2012-12-06 05:51:33 MSK
installer-1.8.0-alt1 -> sisyphus:

* Tue Dec 04 2012 Michael Shigorin <mike@altlinux> 1.8.0-alt1
- introduced volume remounting (closes: #28181)
Comment 3 AEN 2012-12-06 09:07:28 MSK
(В ответ на комментарий №2)
> installer-1.8.0-alt1 -> sisyphus:
> 
> * Tue Dec 04 2012 Michael Shigorin <mike@altlinux> 1.8.0-alt1
> - introduced volume remounting (closes: #28181)

С LUKS работает? Если пока нет, то переоткрывайте, не спешите. Или заведите новый баг только про поддержку LUKS при перемонтировании.
Comment 4 Michael Shigorin 2012-12-06 15:05:35 MSK
Просьба к RM по возможности проверить у себя работу инсталятора с переделанными:
grub2 >= 2.00-alt7
alterator-grub >= 0.9-alt1
installer >= 1.8.0-alt1

У меня на x86_64 и i586 при корне (и других ФС) на sdaX, mdX и LVM они работают.

Обратите внимание на необходимость make-initrd-lvm в системах с LVM root.

(In reply to comment #3)
> С LUKS работает?
Нет, на этой стадии и не предполагалось -- надо сделать интерфейс запроса пароля
и убрать его из alterator-vm, не хотелось застревать.

> Или заведите новый баг только про поддержку LUKS при перемонтировании.
Разве что так.
Comment 5 Michael Shigorin 2012-12-06 16:49:21 MSK
Ещё надо перепроверить корень на mdraid с суперблоком версии 1, у нас с boyarsh@ обнаружились проблемы в initrd (make-initrd-mdadm-0.7.9-alt1 у меня установлен).
Comment 6 Andrey Cherepanov 2012-12-07 12:37:22 MSK
Сегодняшний образ Кентавра выдаёт ошибку в скрипте 11-remount.sh:
double free в umount
Comment 7 Andrey Cherepanov 2012-12-07 12:38:20 MSK
Created attachment 5667 [details]
Лог крэша
Comment 8 AEN 2012-12-07 12:40:10 MSK
(В ответ на комментарий №6)
> Сегодняшний образ Кентавра выдаёт ошибку в скрипте 11-remount.sh:
> double free в umount

Дайте ссылку на образ, пожалуйста.
Comment 9 Anton V. Boyarshinov 2012-12-07 12:42:38 MSK
(В ответ на комментарий №8)
> (В ответ на комментарий №6)
> > Сегодняшний образ Кентавра выдаёт ошибку в скрипте 11-remount.sh:
> > double free в umount
> 
> Дайте ссылку на образ, пожалуйста.

Сегодняшний ночной кентавр, Миша знает где брать.
Comment 10 Andrey Cherepanov 2012-12-07 12:43:11 MSK
Comment on attachment 5667 [details]
Лог крэша

Установка производилась на два раздела: / (обычный ext4), /home (LUKS, ext4).
Comment 11 AEN 2012-12-07 12:44:39 MSK
(В ответ на комментарий №10)
> (From update of attachment 5667 [details])
> Установка производилась на два раздела: / (обычный ext4), /home (LUKS, ext4).

2cas@: перемонтирование для  LUKS пока не работает. Прошу подтвердить ошибку без него.
Comment 12 AEN 2012-12-07 12:46:21 MSK
2mike: Прошу не закрывать багу до решения проблемы с LUKS (он упомянут в формулировке). 
Если cas@ подтвердит, что проблема только в LUKS, то можно перевесить на timonbl4@
Comment 13 Andrey Cherepanov 2012-12-07 13:13:18 MSK
(В ответ на комментарий №12)
> Если cas@ подтвердит, что проблема только в LUKS, то можно перевесить на
> timonbl4@
Увы, на двух обычных разделах тоже падает. Второй (/home) даже не примонтировался.

Во вложении лог /tmp/11-remount.log.
Comment 14 Andrey Cherepanov 2012-12-07 13:14:18 MSK
Created attachment 5668 [details]
Лог выполнения скрипта перемонтирования
Comment 15 Andrey Cherepanov 2012-12-07 13:18:52 MSK
Comment on attachment 5668 [details]
Лог выполнения скрипта перемонтирования

Падает при выполнении команды 
chroot /mnt/destination umount -a
Comment 16 Andrey Cherepanov 2012-12-07 13:28:19 MSK
/etc/mtab (нужный для umount -a) - симлинк на /proc/mounts, который не смонтирован.

Следовательно, в скрипте нужно до чрутнутого запуска сделать
mount --bind /proc /mnt/destination/proc

а размонтировать:
chroot /mnt/destination/ umount -a -v
(чтобы писало, что происходит)
Comment 17 Andrey Cherepanov 2012-12-07 13:32:51 MSK
...правда, выдаёт /dev target is busy (/ в чруте подцеплен, как /dev/evms/sda1). Возможно, нужно 

chroot /mnt/destination/ umount -a -v -е ext2,ext3,ext4,xfs,ntfs,vfat

Но тогда теряется смысл скрипта.
Comment 18 Michael Shigorin 2012-12-07 15:25:09 MSK
(In reply to comment #16)
> /etc/mtab (нужный для umount -a) - симлинк на /proc/mounts, который не 
> смонтирован.
(исходный ответ) Если ты смотришь после отвала 11-remount.sh -- то да, _уже_ размонтирован.  Отладочная версия скрипта (самый первый аттач) для того и делала несколько раз дамп смонтированного в $destdir из /proc/mounts, а вручную отключается только $destdir/dev/pts.

(после уточнения) Оказывается, в Centaurus действительно не смонтирован; учту, спасибо.

> Следовательно, в скрипте нужно до чрутнутого запуска сделать
> mount --bind /proc /mnt/destination/proc
...если не смонтирован.

> а размонтировать:
> chroot /mnt/destination/ umount -a -v
> (чтобы писало, что происходит)
При отладке в начало скрипта добавлял:

set -x
exec 2>/tmp/11.log >&2

а в конец или перед интересующим местом -- sleep 3600 ||:, чтоб qtbrowser не успел зацепиться за новый сокет в $destdir/tmp/alterator и при этом killall sleep позволял пройти дальше.

LUKS действительно пока в работе (см. тж. bug #28200).
Comment 19 Andrey Cherepanov 2012-12-07 16:34:11 MSK
(В ответ на комментарий №18)
> LUKS действительно пока в работе (см. тж. bug #28200).
Источник косяков найден. Это был... (барабанная дробь!) существующий раздела LUKS. Но он не подцеплялся и тихонько лежал себе. Если его не трогать, а изменять другие разделы (удалять, создавать, менять точку монтирования), то проблема не возникает.
Comment 20 Anton V. Boyarshinov 2012-12-07 16:50:10 MSK
(В ответ на комментарий №19)
> (В ответ на комментарий №18)
> > LUKS действительно пока в работе (см. тж. bug #28200).
> Источник косяков найден. Это был... (барабанная дробь!) существующий раздела
> LUKS. Но он не подцеплялся и тихонько лежал себе. Если его не трогать, а
> изменять другие разделы (удалять, создавать, менять точку монтирования), то
> проблема не возникает.

Увы, это не так, у меня не работает и без остаточного luks.
Работает только в случае, когда задействованы только первычные разделы (1-4).
При появлении вторичного раздела -- ломается по device buisy (думаю, это evms гадит)
Comment 21 Michael Shigorin 2012-12-07 17:29:25 MSK
Created attachment 5669 [details]
swapoff/swapon

<boyarsh> установка / /var работает
<boyarsh> установка swap / /var -- нет
[...]
*mike не делал swap...
<boyarsh> а, всё ясно
Comment 22 Michael Shigorin 2012-12-07 18:42:12 MSK
Ещё одна неприятность замечена при двух lvm vg: группа с root lv поднимается, группа с home lv после vgchange -ay остаётся без LIVE-таблицы в dmsetup info и, соответственно, без /dev/mapper/data-home с /dev/data/home; vgchange -ay выдаёт:

device-mapper: reload ioctl on  failed: Invalid argument

Гуглится плохо, вот у кого-то похожее в другом случае (у меня data lv на sda5):
https://www.linux-answered.com/2012/05/02/rhel-6-3-lvm-raid-lets-try-this-again/
Comment 23 Michael Shigorin 2012-12-07 22:31:37 MSK
Created attachment 5670 [details]
0001-11-remount-initial-luks-support.patch

Учёт существования свопов и исправление помарки со слишком ранней попыткой отмонтирования /mnt/destination/ ушли в сизиф как installer-1.8.1-alt1; набросок, с которым вручную тестирую перемонтирование LUKS, на всякий прилагается (без рукоприкладства на него сейчас можно класть только своп, который не подключится).
Comment 24 Michael Shigorin 2012-12-07 22:50:32 MSK
(In reply to comment #18)
> (In reply to comment #16)
> > /etc/mtab [...] симлинк на /proc/mounts, который не смонтирован.
> (после уточнения) Оказывается, в Centaurus действительно не смонтирован
(ещё раз посмотрев) Смонтирован, дело было не в бобине.
Comment 25 Anton V. Boyarshinov 2012-12-12 13:28:14 MSK
installer-1.8.5-alt1
alterator-preinstall-0.7.1-alt1
Comment 26 AEN 2012-12-12 13:35:24 MSK
(В ответ на комментарий №25)
> installer-1.8.5-alt1
> alterator-preinstall-0.7.1-alt1


А поддержка LUKS работает?
28200, от которой зависит эта бага, не закрыта.
Comment 27 Michael Shigorin 2012-12-13 14:59:44 MSK
(In reply to comment #26)
> А поддержка LUKS работает?
Она проверялась отдельным бранчем (installer делает только деактивацию); спортировал на текущую реализацию сегодня утром, как раз допроверял на примере свопа (как вариант, /opt -- чтобы не повлияло на установленную систему).

Сделано в installer-1.8.7-alt1; отправил 1.8.8-alt1 с исправлением для случая "lvm over mdraid".

> 28200, от которой зависит эта бага, не закрыта.
Эта зависимость добавлена скорее для связности, смыслового блокера нет.
(BTW в bugzilla есть поле "see also" для наборов ссылок на ту же/другие BTS)
Comment 28 Michael Shigorin 2012-12-17 11:31:55 MSK
На данный момент все известные мне проблемы по этой баге решены;
при возникновении неизвестных прошу открыть новую.
Comment 29 Michael Shigorin 2013-05-22 17:00:20 MSK
TWIMC: при столкновении с livecd-install скрипты перемонтирования были вынесены в отдельный пакет installer-scripts-remount-stage2; дёргаются они из alterator-livecd и alterator-preinstall, а не livecd-install и installer, как можно было бы подумать.
Comment 30 Michael Shigorin 2013-05-23 18:17:30 MSK
А ещё в os-prober был костыль, оторванный в 1.52-alt2.
Comment 31 Sergey V Turchin 2013-05-23 18:28:57 MSK
(В ответ на комментарий №30)
> А ещё в os-prober был костыль, оторванный в 1.52-alt2.
А я-то думал, почему в нормальной установке не работает?!
Comment 32 Sergey V Turchin 2013-05-23 18:30:25 MSK
(В ответ на комментарий №30)
> А ещё в os-prober был костыль, оторванный в 1.52-alt2.
Кстати, а почему $DURING_INSTALL пустой в случае LiveCD?
Comment 33 Michael Shigorin 2013-05-23 18:55:08 MSK
(In reply to comment #32)
> Кстати, а почему $DURING_INSTALL пустой в случае LiveCD?
Думаю, это ещё одна ошибка, которую надо будет исправлять после внимательного сличения исходников installer и livecd-install/alterator-livecd (что в планах).
Comment 34 Sergey V Turchin 2013-05-24 16:54:05 MSK
На всякий попробуйте установку на несколько разделов(с /home,/usr) и обычным установщиком (не с LiveCD).
Comment 35 Michael Shigorin 2013-05-24 17:00:46 MSK
(In reply to comment #34)
> попробуйте установку на несколько разделов и обычным установщиком
УМВР.  Если у тебя что-то не Р, вешай отдельно и внятно: http://egorfine.com/ru/articles/effective-bugreports/ :)
Comment 36 Sergey V Turchin 2013-05-24 17:07:54 MSK
(В ответ на комментарий №35)
> УМВР.
В каком regular можно это воспроизвести при обычном установщике(не с LiveCD)?
Comment 37 AEN 2013-05-24 17:18:19 MSK
(В ответ на комментарий №36)
> (В ответ на комментарий №35)
> > УМВР.
> В каком regular можно это воспроизвести при обычном установщике(не с LiveCD)?

Во всех regular установка только с Live by design.
Comment 38 Sergey V Turchin 2013-05-24 18:16:16 MSK
(В ответ на комментарий №37)
> Во всех regular установка только с Live by design.
Если у нас будет такой "design" до выхода KDesktop, я лучше исключу в нем обычную установку совсем и добавлю установку с LiveCD во избежании.
Comment 39 AEN 2013-05-24 18:20:07 MSK
(В ответ на комментарий №38)
> (В ответ на комментарий №37)
> > Во всех regular установка только с Live by design.
> Если у нас будет такой "design" до выхода KDesktop, я лучше исключу в нем
> обычную установку совсем и добавлю установку с LiveCD во избежании.

В Симпли и Кентавре есть полные установки и они тестируются. Если сейчас остались проблемы, то откройте, пожалуйста, новую багу и опишите способ воспроизведния по шагам.
А regular останутся такими как есть, -- это не дистрибутивы.
Comment 40 Sergey V Turchin 2013-05-24 18:52:32 MSK
(В ответ на комментарий №39)
> В Симпли и Кентавре есть полные установки и они тестируются.
"Тестируются", значит.

> Если сейчас остались проблемы
Откуда ж я знаю, какие проблемы вылезут после выхода дистрибутива?

> А regular останутся такими как есть, -- это не дистрибутивы.
starterkits лежат в каталоге distributions
Comment 41 AEN 2013-05-24 18:55:29 MSK
(В ответ на комментарий №40)
> (В ответ на комментарий №39)
> > В Симпли и Кентавре есть полные установки и они тестируются.
> "Тестируются", значит.
> 
> > Если сейчас остались проблемы
> Откуда ж я знаю, какие проблемы вылезут после выхода дистрибутива?

Тестируйте до выхода.

> 
> > А regular останутся такими как есть, -- это не дистрибутивы.
> starterkits лежат в каталоге distributions

Тем не менее в release notes написано, что это не дистрибутивы. И об их назначении -- тоже.

И давайте закончим этот бесплодный разговор.
Comment 42 Sergey V Turchin 2013-05-29 15:30:24 MSK
(В ответ на комментарий №41)
> > starterkits лежат в каталоге distributions
> Тем не менее в release notes написано, что это не дистрибутивы.
В лицензионном соглашении большими буквами -- "ДИСТРИБУТИВ". Нужно исправить.
Comment 43 Sergey V Turchin 2013-05-29 15:51:20 MSK
(В ответ на комментарий №42)
> В лицензионном соглашении большими буквами -- "ДИСТРИБУТИВ".
Так же, подобную информацию нужно давать до установки, а не после.
Comment 44 Sergey V Turchin 2013-05-29 15:59:52 MSK
(В ответ на комментарий №43)
> Так же, подобную информацию нужно давать до установки, а не после.
Например, в бетах на картинках сразу нарисовано красными буквами "бета".