Created attachment 22812 [details] Исправление ext2 плагина Если один из разделов диска смонтирован, установщик может ошибочно показать новый раздел как Ext4. Это происходит даже при отмене форматирования: раздел записан в таблицу на диске, но ядро ещё не видит его. ## Шаги воспроизведения 1. Загрузиться в Live-режиме ALT Regular KDE. На тестовом диске должен быть существующий раздел и свободное место для нового. 2. Смонтировать существующий раздел этого диска, открыв его в файловом менеджере. В моём случае использовался FAT32-раздел. 3. Запустить установщик с рабочего стола. В ручной разметке выбрать тот же диск, не включая его очистку. 4. На свободном месте создать раздел размером 1024 МиБ. Остальные параметры оставить: смещение 0, тип Linux filesystem, флажок Create Volume включён. 5. В предложении создать файловую систему (Make Filesystem) нажать Cancel. Новый раздел появится в списке как Unknown. 6. Нажать «Назад». В списке ожидающих операций (Pending) подтвердить только создание нового раздела, без форматирования. Точку монтирования указывать не нужно. 7. Снова открыть ручную разметку этого диска. ## Фактический результат Новый неформатированный раздел отображается как Ext4. Хотя на деле у него нет раздела. И похоже проблема тут в двух местах. Первую проблему с Ext4 я встречал не раз, ещё во время этой проблемы: https://bugzilla.altlinux.org/60510. Дошли руки посмотреть, почему она возникает и всё указывает на ext2 плагин, тобишь plugins/ext2/fsimext2.c. rc изначально равен 0. При отрицательном результате open_volume выполняется: > int rc = 0; > fd = EngFncs->open_volume(volume, O_RDONLY, 0); > if (fd < 0) { > rc = -rc; > return rc; > } Функция возвращает ноль. fs_probe() принимает это за успешное распознавание, и тому назначается модуль с именем Ext4. Самый простой фикс это заменить на «rc = -fd», это исправит как минимум ложное распознавание из-за ошибки и не будет показываться Ext4 там, где его нет. Приложил патч 0001-ext2-propagate-open-volume-error.patch Вторая проблема - EVMS допускает создание раздела на диске со смонтированным соседним разделом. При применении изменений это может помешать ядру перечитать таблицу разделов. Ранее этот сценарий никак не воспроизводился, но теперь с установщиком в LiveCD такой сценарий легко получить, просто, например, открыв существующий раздел в файловом менеджере. Поэтому приложил второй патч, перед созданием GPT/MBR-раздела он проверяет, есть ли на диске смонтированные тома, и при их наличии возвращает EBUSY
Created attachment 22813 [details] Проверка монтирования
(In reply to Жора Змейкин from comment #0) > Вторая проблема - EVMS допускает... Одна проблема = один багрепорт.
(Ответ для Олег Соловьев на комментарий #2) > (In reply to Жора Змейкин from comment #0) > > Вторая проблема - EVMS допускает... > > Одна проблема = один багрепорт. Изначально занимался проблемой, связанная с неверным отображением раздела. Но так уж вышло, что теперь для воспроизведения этой проблемы нужно было найти ещё вторую проблему. Если так будет удобнее, могу завести второй баг-репорт