Bug 34520

Summary: Авторазбиение диска создает корень размером всего 10ГБ
Product: Альт Рабочая станция Reporter: Georgy A Bystrenin <gkot>
Component: УстановкаAssignee: Mikhail Efremov <sem>
Status: CLOSED FIXED QA Contact: qa-p8 <qa-p8>
Severity: critical    
Priority: P3 CC: mike, sin
Version: 8.2Keywords: regression
Hardware: all   
OS: Linux   
Attachments:
Description Flags
vm-profile.scm + /usr/share/install2/initinstall.d/*vm-profile*
none
Скриншот разметка
none
Скриншот vm-profile.scm none

Description Georgy A Bystrenin 2018-02-08 06:22:52 MSK
При установке alt-workstation-8.2-x86_64.iso обнаружилась интересная особенность, если жесткий диск у нас 512 ГБ, то мы получаем авторазметкой 10 ГБ / (корень) !
Comment 1 Michael Shigorin 2018-02-14 13:48:37 MSK
Что-то сломали в volumes-profile-*, в 8.1 при подобной обстановке было 40.
Comment 2 Evgeny Sinelnikov 2018-02-14 14:58:16 MSK
Created attachment 7391 [details]
vm-profile.scm + /usr/share/install2/initinstall.d/*vm-profile*

Прилагаю набор скриптов, который приводит к проблеме.

Итоговый профиль, при этом выглядит так:
((workstation
  (title . "Setup for workstation")
  (action . trivial)
  (actiondata
   ("swap"  (size 0 . 262144) (fsim . "SWAPFS") (methods plain))
   ("/"     (size 3145728 . 20971520 ) (fsim . "Ext2/3") (methods plain))
   ("/home" (size 1048576 . #t) (fsim . "Ext2/3") (methods plain)))))

При этом в каталоге /usr/share/install2/initinstall.d наблюдается два конфликтующих скрипта:
- 05-vm-profile-altlinux-generic
- 10-vm-profile.sh

Побеждает, очевидно, второй. И в нём конструкция виде "$[expr]", которая, вообще, непонятно почему работает:

# root size multiplicators against the actual one for a LiveCD (if any)
ROOT_MUL_MIN=3/2
ROOT_MUL_MAX=40

# values below in gigabytes, might be natural fractions
ROOT_MIN=1 # this is integer (or improve the comparison below)
ROOT_SIZE=5

# recalculate in kilobytes
ROOT_MIN=$[1048576*$ROOT_MIN]
ROOT_SIZE=$[1048576*$ROOT_SIZE]
HOME_SIZE=$[1048576*$HOME_SIZE]

# don't do RAID in a VM, reduce swap to a minimum, root to reasonable
if grep -qE "(101300b8)|(80eebeef)|(14ad0405)|(1af4100)" /proc/bus/pci/devices; then
        methods="plain"
        swap_size=131072        # 128M
        ROOT_MUL_MAX=10
else
        methods="raid plain"
fi

# are we running off a LiveCD as a part of livecd-install?
if [ -d /.ro ]; then
        root_size="`df -Pk /.ro | tail -1 | { read d t u rest; echo "$u"; }`"
        [ "$root_size" -lt "$ROOT_MIN" ] && root_size="$ROOT_MIN"
        root_min="$[$root_size*$ROOT_MUL_MIN]"
        root_max="$[$root_size*$ROOT_MUL_MAX]"
else
        root_min="$[1048576*$ROOT_SIZE]"
        root_max="$[$root_min*$ROOT_MUL_MAX]"
fi

# recalculate in 512-byte blocks for EVMS
swap_size="$[$swap_size*2]"
home_size="$[$HOME_SIZE*2]"
root_min="$[$root_min*2]"
root_max="$[$root_max*2]"

if [ "$root_min" -gt "$root_max" ]; then
        root_max="$root_min"
fi
Comment 3 Georgy A Bystrenin 2018-02-14 16:37:46 MSK
Created attachment 7392 [details]
Скриншот разметка

А вот так оно хотело разметить в случаи конфигурации SSD 256GB + HDD 1TB
Comment 4 Georgy A Bystrenin 2018-02-14 16:41:49 MSK
Created attachment 7393 [details]
Скриншот vm-profile.scm

(В ответ на комментарий №3)
> Created an attachment (id=7392) [details]
> Скриншот разметка
> 
> А вот так оно хотело разметить в случаи конфигурации SSD 256GB + HDD 1TB
И вот такой получился фаил ответов
Comment 5 Evgeny Sinelnikov 2018-02-14 17:07:27 MSK
40Гб. на корневой раздел - максимум. Так и прописано в 10-vm-profile.sh
При этом, остальная часть винта под /home в raid'е со вторым винтом. Не очевидная конфигурация. Под такую эвристику галочку нужно включать.

В общем, это старый кусок.

Решение №1 - найти и выпилить 10-vm-profile.sh

Решение №2 - поднять приоритет для 05-vm-profile-altlinux-generic переименовав его в 15-vm-profile-altlinux-generic

Решение №3 - исправить типа дефолтный 10-vm-profile.sh так, чтобы:
- он пропускал любые действия, при наличии профиля созданного скриптом ранее;
- корневой раздел создавался на весь диск или ограниченного размера;
- раздел /home создавать в RAID только по галочке: "давай я угадаю, что тебе нужно".

Думаю, что решение №2 и №3 можно выполнить поочерёдно, и тогда решение №1 - слишком радикальное.
Comment 6 Georgy A Bystrenin 2018-02-14 17:11:05 MSK
И кстати галочка при выборе любого авто разбиения, отредактировать в ручную после авто разметки, прям очень не хватает
Comment 7 Mikhail Efremov 2021-07-29 17:51:09 MSK
В alt-workstation-9.2 используется новый профиль авторазбивки.