Bug 28181 - перемонтировать файловые системы с EVMS-томов на обычные
: перемонтировать файловые системы с EVMS-томов на обычные
Status: CLOSED FIXED
: Sisyphus
(All bugs in Sisyphus/installer)
: unstable
: all Linux
: P3 critical
Assigned To:
:
:
:
: 28200
: 27685 28966
  Show dependency tree
 
Reported: 2012-12-04 21:54 by
Modified: 2013-05-29 15:59 (History)


Attachments
remount script draft (1.24 KB, text/plain)
2012-12-04 21:54, Michael Shigorin
no flags Details
cleaned up version (1.78 KB, text/plain)
2012-12-04 23:26, Michael Shigorin
no flags Details
Лог крэша (12.58 KB, image/png)
2012-12-07 12:38, Andrey Cherepanov
no flags Details
Лог выполнения скрипта перемонтирования (2.19 KB, text/x-log)
2012-12-07 13:14, Andrey Cherepanov
no flags Details
swapoff/swapon (1015 bytes, patch)
2012-12-07 17:29, Michael Shigorin
no flags Details | Diff
0001-11-remount-initial-luks-support.patch (1.33 KB, patch)
2012-12-07 22:31, Michael Shigorin
no flags Details | Diff


Note

You need to log in before you can comment on or make changes to this bug.


Description From 2012-12-04 21:54:43
Created an attachment (id=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 From 2012-12-04 23:26:29 -------
Created an attachment (id=5664) [details]
cleaned up version

Этот вариант хотя бы можно читать; у меня работает с md и lvm.
------- Comment #2 From 2012-12-06 05:51:33 -------
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 From 2012-12-06 09:07:28 -------
(В ответ на комментарий №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 From 2012-12-06 15:05:35 -------
Просьба к 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 From 2012-12-06 16:49:21 -------
Ещё надо перепроверить корень на mdraid с суперблоком версии 1, у нас с
boyarsh@ обнаружились проблемы в initrd (make-initrd-mdadm-0.7.9-alt1 у меня
установлен).
------- Comment #6 From 2012-12-07 12:37:22 -------
Сегодняшний образ Кентавра выдаёт ошибку в скрипте 11-remount.sh:
double free в umount
------- Comment #7 From 2012-12-07 12:38:20 -------
Created an attachment (id=5667) [details]
Лог крэша
------- Comment #8 From 2012-12-07 12:40:10 -------
(В ответ на комментарий №6)
> Сегодняшний образ Кентавра выдаёт ошибку в скрипте 11-remount.sh:
> double free в umount

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

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

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

Во вложении лог /tmp/11-remount.log.
------- Comment #14 From 2012-12-07 13:14:18 -------
Created an attachment (id=5668) [details]
Лог выполнения скрипта перемонтирования
------- Comment #15 From 2012-12-07 13:18:52 -------
(From update of attachment 5668 [details])
Падает при выполнении команды 
chroot /mnt/destination umount -a
------- Comment #16 From 2012-12-07 13:28:19 -------
/etc/mtab (нужный для umount -a) - симлинк на /proc/mounts, который не
смонтирован.

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

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

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

Но тогда теряется смысл скрипта.
------- Comment #18 From 2012-12-07 15:25:09 -------
(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 From 2012-12-07 16:34:11 -------
(В ответ на комментарий №18)
> LUKS действительно пока в работе (см. тж. bug #28200).
Источник косяков найден. Это был... (барабанная дробь!) существующий раздела
LUKS. Но он не подцеплялся и тихонько лежал себе. Если его не трогать, а
изменять другие разделы (удалять, создавать, менять точку монтирования), то
проблема не возникает.
------- Comment #20 From 2012-12-07 16:50:10 -------
(В ответ на комментарий №19)
> (В ответ на комментарий №18)
> > LUKS действительно пока в работе (см. тж. bug #28200).
> Источник косяков найден. Это был... (барабанная дробь!) существующий раздела
> LUKS. Но он не подцеплялся и тихонько лежал себе. Если его не трогать, а
> изменять другие разделы (удалять, создавать, менять точку монтирования), то
> проблема не возникает.

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

<boyarsh> установка / /var работает
<boyarsh> установка swap / /var -- нет
[...]
*mike не делал swap...
<boyarsh> а, всё ясно
------- Comment #22 From 2012-12-07 18:42:12 -------
Ещё одна неприятность замечена при двух 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 From 2012-12-07 22:31:37 -------
Created an attachment (id=5670) [details]
0001-11-remount-initial-luks-support.patch

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


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

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

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

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

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

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

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

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

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