Вы могли попробовать этот подход:
input='
keyword value value
keyword "value value"
keyword `uname`
'
process() {
k=$1; shift; v="$*"
printf '%s\n' "k=<$k> v=<$v>"
}
eval "$(printf '%s\n' "$input" | sed -n 's/./process &/p')"
(если я разбираюсь в Вашем намерении). Это - вставка "процесс" в начале каждой непустой строки для создания этого сценарием как:
process keyword value value
process keyword "value value"
process keyword `uname`
быть оцененным (eval
) где процесс является функцией, которая печатает ожидаемое сообщение.
Вопрос был решен после чтения этого сообщения в блоге. Я запишу решение в краткой форме:
gdisk
(при использовании GPT), иначе, Вы могли бы пойти со старым добрым fdisk
gdisk -l /dev/sdb
partprobe -s
обновить таблицу разделов без перезагрузкиpvresize /dev/sdb1
или везде, где Ваш объем плазмы (использование pvs
определить, не знаете ли Вы),lvextend -l +100%FREE /dev/file/of/your/lv
, в моем случае sudo lvextend -l +100%FREE /dev/linuxvg/home
sudo resize2fs /dev/linuxvg/home
sudo e2fsck -f /dev/linuxvg/home
Можно сделать это справедливо просто. Отчасти удивленный уже не было ответа для этого здесь.
Можно сделать этот весь процесс при работе файловой системы, которой Вы хотите изменить размер (да, это безопасно и полностью поддерживаемое). Нет никакой потребности в спасательных CD или альтернативных операционных системах.
fdisk
. Но необходимо будет удалить раздел и воссоздать его. Просто удостоверьтесь при выполнении так, чтобы новый раздел запустился в том же самом местоположении.pvresize /dev/sdXY
чтобы иметь LVM берут новое пространство.lvextend
. Если Вы хотите использовать все это, lvextend -r -l +100%FREE /dev/VGNAME/LVNAME
. -r
изменит размер файловой системы также.partprobe -s
не делает то, что Вы думаете, что это делает. Ядро не возьмет изменение размер раздела, который используется. partprobe -s
только работы, если раздел использовался во время изменения размер (поэтому, когда fdisk уведомил ядро, это перестало работать), но это больше не.
– Patrick
17.12.2014, 18:00
Уже есть несколько отличных ответов.
Если вы используете xfs, вы используете команду
xfs_growfs /mountpoint
, а не resize2fs. Вы можете сделать это, пока активна точка монтирования, например, если вы увеличили корневой раздел, и вам не нужно после этого перезагружаться.
Ни один из ответов не отражает возможности LVM.
(Это основано на комментарии @frostchutz к указанному выше вопросу.)
Давайте рассмотрим факты:
home
внутри группы томов linuxvg
. Шаги LVM с использованием «прагматического пути»:
pvcreate / dev / sdb1
linuxvg
: vgextend linuxvg / dev / sdb1
home
со всем свободным пространством: lvextend -l + 100% БЕСПЛАТНО / dev / linuxvg / home
resize2f / dev / linuxvg / home
LVM допускает высокий уровень косвенного обращения. Логический том находится внутри группы томов, которая может использовать несколько дисков.
главная -> linuxvg -> (sdb1, sdb2, sdc1)