У меня есть два логических тома, один монтируется как /, другой монтируется как / home.
Я хочу объединить их, потому что /
объем постоянно исчерпывает пространство. (Да, я знаю, что использует все это пространство; нет, я не могу его удалить.)
Я готов снять машину на день или два, чтобы сделать это.
ОС: Linux xxxxx 2.6.32-279.22.1.el6.x86_64 #1 SMP Wed Feb 6 03:10:46 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
(CentOS)
/
объем, не в этом ли смысл использования LVM?Ответы:
Я сделал, и переразметка сработала. Однако, поскольку в обоих руководствах отсутствуют области, я собираюсь подвести итог тому, что я сделал. Обратите внимание, что я заменил свое имя пользователя на
zzzz
и имя моего компьютераxxxxxxx
. Кроме того, все команды должны выполняться от имени пользователя root, если не указано иное.Сначала я сделал резервную копию:
Это создает сжатую резервную копию каталога / home и помещает ее на мой внешний диск. (Обратите внимание, что ваш внешний диск будет иметь другой путь.)
Теперь вам нужно перезагрузиться в однопользовательский режим.
Когда ваш компьютер снова включается, вам нужно искать такой экран:
Нажмите любую клавишу, чтобы прервать это. Вы должны увидеть такой экран:
Нажмите a, затем пробел, затем введите
single
. Нажмите Enter.Вы должны увидеть приглашение вроде этого:
Введите следующие команды:
Он должен показать вам
Size
,Used
иAvail
. Мы заинтересованы вUsed
.Запишите, сколько места используется вашим домашним томом. Нам это понадобится позже.
Помните, сколько места занял ваш домашний объем? Удвой это и отдай этой команде. Например, у меня было 15 гигабайт, используемых в моем домашнем каталоге, поэтому я измерил его до 30 гигабайт.
Предупреждение : следующий шаг может привести к потере данных. Убедитесь , что вы указали размер больше, чем предыдущая команда. Добавьте 5 гигабайт, чтобы быть уверенным.
Скажите корневому разделу использовать все пространство, которое мы только что освободили.
Скопируйте ваши данные в корневой раздел
(Между прочим, это
-a
важно, потому что в противном случае все будет принадлежать пользователю root, а вы этого не хотите.)Быстро проверьте правильность копирования данных:
Теперь мы удаляем домашний раздел и говорим root, чтобы он снова занял новое место.
В этот момент я допустил большую ошибку, из которой можно извлечь уроки. Я перезагрузился, и когда система вернулась к работе, она отказалась смонтировать мой корневой раздел как чтение-запись, потому что не смогла смонтировать мой / home раздел. Итак, перед перезагрузкой набираем
Одна из этих строк скажет системе смонтировать раздел / home. Положите
#
перед ним. Нажмите Ctrl-O, Enter, Ctrl-X. Теперь вы можете перезагрузиться.(Гипотетически, если вы забудете отредактировать fstab, как я, команда для монтирования вашего корневого раздела будет такой
mount -n -o remount -t ext2 /dev/vg_xxxxxxxx/lv_root /
)источник
/home
. Затем, пока вы можете размонтировать/home
, вы можете удалить его. Тем не менее, я не совсем квалифицирован, чтобы говорить вам через процесс. Это то, о чем вы должны задать новый вопрос.ВНИМАНИЕ: Сделайте резервную копию всех важных данных, прежде чем делать что-либо!
Вам нужно будет переместить все данные из раздела / home в другой раздел, локальный раздел или внешний диск или в другое место, где у вас достаточно места.
Удалите / home lv, а затем разверните / (root) lv
Скопируйте данные обратно в / home каталог
Редактировать 1
Ответ выше предполагает, что в корневом разделе недостаточно места для размещения данных в домашнем разделе.
Если это не так, просто смонтируйте домашний раздел где-нибудь еще и скопируйте данные, например:
Затем просто удалите домашний раздел и разверните корневой раздел.
источник
Вы можете сделать это без какого-либо внешнего хранилища, запущенного из
/
, но вам нужно будет размонтировать/home
.Это не особенно рискованная процедура, если вы осторожны, но, тем не менее, применяется стандартный совет: сначала сделайте резервные копии, и протестируйте их.
Я буду использовать
foo
для имени тома группы, аroot
иhome
как имена логических томов. Это делает пути логических томовfoo/root
иfoo/home
, и пути устройств/dev/mapper/foo-root
и/dev/mapper/foo-home
. Я предполагаю, что они находятся в одной группе томов, в противном случае это усложняется и зависит от макета физического тома двух групп томов.Сначала размонтируйте
/home
и запуститеe2fsck -f /dev/mapper/foo-home
. Затем сначала сожмите файловую систему и соответственно логический том. Run ,resize2fs /dev/mapper/foo-home NNNN
где NNNN этого количества блоков , которые вы хотите сохранить внутри объема (вы можете использовать кБ или МБ или ГБ вместо с суффиксомK
,M
илиG
). После усадки файловой системы, уменьшить логический том ,lvresize -L MMMM foo/home
где MMMM является количеством мегабайта (обратите внимание , что единица по умолчанию отличается отresize2fs
, но вы можете использовать одни и те же суффиксыK
,M
,G
). Будьте очень осторожны, чтобы не сжать логический том дальше, чем файловая система - это один опасный шаг в этой процедуре.Теперь в группе томов есть неиспользуемая комната. Запустите,
lvresize -l +100%FREE foo/root
чтобы корневой том захватил все свободное место в группе томов. Затем запуститеresize2fs /dev/mapper/foo-root
(без параметра размера), чтобы увеличить файловую систему, чтобы охватить весь логический том; увеличение может быть сделано, пока объем установлен.Теперь у вас есть место для копирования некоторых файлов. Если вам не хватает места для всего, переместите столько, сколько можете, затем повторите процедуру.
Как только вы скопировали все файлы
/home
, вы готовы уничтожить их. Убедитесь, что/home
он пуст (если вы переместили файлы) или что все файлы/home
были скопированы/root
(если вы скопировали файлы). Чтобы уничтожить ненужный логический том, запуститеlvremove foo/home
. Наконец, увеличьте корневой том с помощьюlvresize -l 0%FREE foo/root
и его файловую систему сresize2fs /dev/mapper/foo-home
.источник
ОК, я оказался в том же положении. Кажется, CentOS по умолчанию создает небольшой корневой том и заполняет оставшуюся часть пространства
/home
. Я даже сначала протестировал настройки на виртуальной машине, но с меньшим диском CentOS не создавал домашний том. Я подхватил эту проблему, прежде чем стал ограниченным пространством, а также подумал, как не входить в однопользовательский режим. Следующее:Получите доступ к машине, ssh в порядке (при условии, что пользователь не root).
cd /
так что вы не в домашнем каталогеsudo -s
мы будем болеть за все этоlsof /home
убедитесь, что никто не использует домашний том, не должно бытьmv
,tar
Или подобное содержание дома где - нибудь ещеlvremove centos/home
/etc/fstab
и закомментируйте или удалите строку для/home
/home
- теперь вы находитесь в безопасном положении, перезагрузка здесь должна быть в порядке.lvresize -l +100%FREE centos/root
xfs_growfs /dev/centos/root
на CentOS 7 другие могут использоватьresize2fs
df -h
тебе удалось?Надеюсь, что это облегчает кому-то. Это действительно удивительно, что вы можете делать в реальном времени на файловых системах.
источник