[devel] разбивалка диска (почему-то было: Шаги инсталлятора)

Alexey V. Vissarionov gremlin на altlinux.org
Чт Июн 21 12:36:35 MSK 2018


On 2018-06-21 11:17:43 +0300, Michael Shigorin wrote:

 >> решил пока сильно шашкой не размахивать, а осилить "маленький,
 >> но важный кусочек", связанный с разбивкой диска,
 > Это ни разу не "маленький", а САМЫЙ (с большим отрывом) сложный
 > кусок инсталятора для разработчика и для пользователя тоже.

Самым сложным при этом является вопрос "чего хочу?", на который
приходится отвечать пользователю.

 > Его сложность обусловлена, с одной стороной, огромным
 > наследием самых разных устройств

Практически все современные блочные устройства, используемые для
размещения корневой ФС, позволяют работать с ними точно так же,
как с жесткими дисками, а эти методы не менялись более 20 лет.

 > и вариантов организации данных на них,

Их, кстати, не так уж и много.

Вот есть физическое устройство /dev/sda; если его объем 2 Тб или
меньше, то создаем в его первом блоке MBR, а если больше, то GPT.
Если машина использует EFI, понадобится небольшой раздел с FAT32.
Если рядом есть физическое устройство /dev/sdb того же объема, то
можно рекомендовать пользователю создать зеркало. В любом случае
понадобится создать как минимум две ФС - / и /home, а для сервера
полезно еще и /var обособить (или /var/log - больше ничего совсем
большого в /var не бывает).

А, ну да: если держать корень на зеркале /dev/md0, то /home на
/dev/md1 может со временем расти - из зеркала в RAID-5, потом в
RAID-6, а потом только диски добавляй... в общем, примерно так:

md0 : active raid1 sdg1[3] sdf1[4] sde1[5] sda1[6] sdc1[1] sdb1[0] sdd1[2]
      9764800 blocks [7/7] [UUUUUUU]
md1 : active raid6 sdb2[0] sda2[4] sde2[5] sdf2[6] sdg2[7] sdd2[3] sdc2[1]
      14601845760 blocks super 1.2 level 6, 64k chunk, algorithm 2 [7/7]
      [UUUUUUU]

Аналогично наращивать можно и RAID-10, только диски нужно добавлять
парами, а надежность деградирует.

 > а с другой -- риском потери этих данных лёгким движением руки.

Главное - чтобы это происходило только в результате нажатия кнопки
"записать изменения": в этом случае ответственность за сохранность
данных полностью возлагается на пользователя ("ну, у вас ведь есть
резервная копия!").

 > Известных мне работающих "машинок состояния", которые умеют
 > "держать в уме" нюансы устройств/разбивок/ФС -- ровно два: libevms
 > (апстрим давно умер) и libparted (который, помнится, сделали из
 > партеда дебианщики для своего инсталятора).

Лично я не доверяю ни тому, ни другому. Поэтому просто озвучу хотелку:
нужна возможность запустить терминал и сделать вручную все необходимое
(в вышеприведенном примере это будет монтирование /dev/md0 в /target и
/dev/md1 в /target/home).


-- 
Alexey V. Vissarionov
gremlin ПРИ altlinux ТЧК org; +vii-cmiii-ccxxix-lxxix-xlii
GPG: 0D92F19E1C0DC36E27F61A29CD17E2B43D879005 @ hkp://keys.gnupg.net
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : signature.asc
Тип     : application/pgp-signature
Размер  : 801 байтов
Описание: отсутствует
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20180621/eb2534a6/attachment-0001.bin>


Подробная информация о списке рассылки Devel