Несмотря на чтение различных сообщений и ответов в Интернете, мне все еще очень непонятно, как <минимальный размер> <приоритет> <максимальный размер>
параметры partman-auto / expert_recipe
фактически переводят в определение конечного выделенного дискового пространства.
В приведенном ниже примере базовый диск имеет 64 ГБ пространства, из которых распределения должны быть:
/ boot
/ home
/ usr
preseed / ubuntu-server-unattended.seed
) Фактический результат постоянно на несколько сотен МБ:
Я видел и читал следующее, и никто из них, на мой взгляд, не согласен или не разъясняет простыми формулировками, как поле priority
на самом деле ведет себя и преобразуется в окончательные размеры.
В этом примере сумма значений
даже близко не приближается к ограничению в 64 ГБ. Итак, что конкретно мне нужно установить для каждого значения
, чтобы фактические размеры были согласованы с полем
?
Точная спецификация в preseed / ubuntu-server-unattended.seed
:
d-i partman-auto/method string lvm
d-i partman/default_filesystem string ext4
d-i partman-auto/choose_recipe select boot-root
d-i partman-auto/expert_recipe string \
boot-root :: \
500 1000 1000 ext2 \
$primary{ } \
$bootable{ } \
method{ format } \
format{ } \
use_filesystem{ } \
filesystem{ ext2 } \
label{ boot } \
mountpoint{ /boot } \
. \
4096 8192 8192 $default_filesystem \
$lvmok{ } \
lv_name{ RootVol } \
method{ format } \
format{ } \
use_filesystem{ } \
mountpoint{ / } \
$default_filesystem{ } \
options/defaults{ defaults } \
options/discard{ discard } \
options/iversion{ iversion } \
. \
1024 4096 4096 $default_filesystem \
$lvmok{ } \
lv_name{ HomeVol } \
method{ format } \
format{ } \
use_filesystem{ } \
mountpoint{ /home } \
$default_filesystem{ } \
options/defaults{ defaults } \
options/nosuid{ nosuid } \
options/nodev{ nodev } \
. \
8192 10240 10240 $default_filesystem \
$lvmok{ } \
lv_name{ UsrVol } \
method{ format } \
format{ } \
use_filesystem{ } \
mountpoint{ /usr } \
$default_filesystem{ } \
options/defaults{ defaults } \
options/nodev{ nodev } \
. \
2048 4096 4096 $default_filesystem \
$lvmok{ } \
lv_name{ VarLogAuditVol } \
method{ format } \
format{ } \
use_filesystem{ } \
mountpoint{ /var/log/audit } \
$default_filesystem{ } \
options/defaults{ defaults } \
options/nodev{ nodev } \
options/nosuid{ nosuid } \
. \
2048 4096 4096 $default_filesystem \
$lvmok{ } \
lv_name{ VarLogVol } \
method{ format } \
format{ } \
use_filesystem{ } \
mountpoint{ /var/log } \
$default_filesystem{ } \
options/defaults{ defaults } \
options/nodev{ nodev } \
options/nosuid{ nosuid } \
. \
2048 8192 -1 $default_filesystem \
$lvmok{ } \
lv_name{ VarVol } \
method{ format } \
format{ } \
use_filesystem{ } \
mountpoint{ /var } \
$default_filesystem{ } \
options/defaults{ defaults } \
options/nodev{ nodev } \
options/nosuid{ nosuid } \
.
:: = <минимальный размер> _ <приоритет> _ <максимальный размер> _
<минимальный размер>
- минимально допустимый размер раздела в мегабайтах. Он округляется до размера цилиндра, поэтому, если вы сделаете<минимальный размер>
равным 20 МБ, а размер цилиндра - 12 МБ, тогда возможно , чтобы размер раздела был только 12 МБ. Эти размеры также могут быть заданы в виде процента, что делает размер равным проценту от общего ОЗУ системы, или (как в случае с partman-auto 87) числом плюс процент {{ 1}} (например, "2000 + 50%"), что делает размер равным этому числу плюс этот процент от общего объема ОЗУ системы.
<приоритет>
- это некоторый размер, обычно от<минимальный размер>
до<максимальный размер>
. Он определяет приоритет этого раздела в соревновании с другими разделами по размеру. Обратите внимание, что если он слишком (относительно приоритета других разделов), то размер этого раздела будет близок к.Вот почему рекомендуется давать маленьким разделам<приоритет>
больше, чем их<максимальный размер>
.
<максимальный размер>
- это максимальный размер раздела, т. Е. Предельный размер, при котором нет смысла увеличивать этот раздел. Специальное значение "-1 "используется для обозначения неограниченного размера раздела.
Часть, где спецификация, кажется, не работает, - здесь :
x = min[i] + (free_space - minsum) * factor[i] / factsum;
if (x > max[i])
x = max[i];
Это означает, что каждый x
должен иметь потолок max [i]
, если дисковое пространство позволит это. В этом случае это должно быть верно, поскольку остаточного пространства более чем достаточно, даже когда все max
суммируются. Так что же дает?
Что конкретно мне нужно установить для каждого значения, чтобы получить фактические размеры, выровненные по полю?
Ваши разделы выровнены по полю
. Инструменты просто используют разные единицы измерения. Partman использует MB. lsblk
использует MiB и GiB. Например, ваш раздел /boot
имеет максимальное значение 1000
. Это 1000 МБ
, что равно 953 МиБ
.
Остальные тоже выравниваются
См. также