Назад | Перейти на главную страницу

Как изменить размер раздела LVM в Red Hat без потери данных?

Детали моего раздела выглядят так

/dev/mapper/VolGroup00-LogVol00
                       57G  8.8G   46G  17% /
/dev/mapper/VolGroup00-LogVol05
                      259G  7.0G  239G   3% /home
/dev/mapper/VolGroup00-LogVol02
                       19G  493M   18G   3% /var
/dev/mapper/VolGroup00-LogVol03
                       19G  458M   18G   3% /tmp
/dev/mapper/VolGroup00-LogVol04
                      9.5G  152M  8.9G   2% /opt
/dev/sda1             965M   33M  883M   4% /boot
tmpfs                 7.7G  3.7G  4.0G  48% /dev/shm

Я хочу увеличить размер / путем уменьшения размера раздела / home без потери данных в / и home.

Кто-нибудь может мне помочь в решении этого вопроса?

  • Загрузитесь с живым дистрибутивом (с поддержкой lvm)
  • не монтируйте свои разделы lvm
  • fsck LogVol00 и LogVol05 (дважды этот шаг)
  • lvreduce -L-xG / dev / VolGroup00 / LogVol05
  • resize2fs -p / dev / VolGroup00 / LogVol05

сделайте то же самое для / dev / mapper / VolGroup00-LogVol00 с lvextend вместо lvreduce

Я второй ответ Вишаля, однако он пропустил пару шагов .. а также тот факт, что вы можете сделать это с помощью linux rescue

  1. Загрузитесь в linux rescue
  2. пропустить монтаж
  3. запустите lvm vgchange -a y (в режиме восстановления вы начинаете команды с lvm)
  4. проверьте видимость ОС с помощью ls / dev / VolGroup00 /
  5. Остальное очень похоже на описанный vishaal, но вы захотите принудительно запустить e2fsck с помощью -f, то есть: e2fsck -f / dev / VolGroup00 / LogVol ..

  6. ВАЖНО, вы изменяете размер файловой системы перед уменьшением объема, поэтому ..

  7. resize2fs -f / dev / VolGroup00 / LogVol .. 40G (если вы хотите, чтобы размер был ровно 40G)
  8. lvm lvreduce -L40G / dev / VolGroup00 / LogVol .. (опять же, если вы хотите, чтобы размер был ровно 40 ГБ, а не уменьшался на 40 ГБ)

Моя - просто дополнение к тому совету, который уже давал Вишаал.

Ты не иметь перезагрузить для этого; однако убедитесь, что у вас под рукой есть свежая резервная копия.

  • Закройте все свои пользовательские сеансы.
  • Войдите как root. Если вам нужно сначала войти в систему как пользователь, используйте «exec su -» или «exec sudo -i», чтобы не оставлять пользователя в системе и предотвратить чистую umount.
  • Узнайте, использует ли что-нибудь еще / home с помощью «lsof -n | grep / home»; прекратить процессы, которые делают
  • umount / home
  • Определите новый размер в байтах, сделайте его кратным размеру экстентов LVM, назовем его $ newsize
  • fsck / dev / mapper / VolGroup00-LogVol05
  • resize2fs -P / dev / mapper / VolGroup00-LogVol05 $ newsize
  • lvreduce -L $ newsze / dev / mapper / VolGroup00-LogVol05
  • mount / home

Это, конечно, при условии, что вы используете ext [234].

Небольшая поправка к процессу, предложенная Вишалом и Бобби Коксами:

  • resize2fs / home LV немного меньше, чем вы действительно хотите
  • lvm lvreduce это до размера, который вы действительно хотите
  • resize2fs его резервную копию, чтобы заполнить LV (без указания размера)

Это оставляет запас прочности на тот случай, если две команды по-разному интерпретируют явные размеры (я знаю lvm команды округляются до целого числа Экстентов; как определяется размер экстента по умолчанию, я не уверен и мне все равно).

При увеличении размера ЛЖ процедура несколько проще:

  • lvm lvextend до нужного размера
  • resize2fs заполнять

Хотите повторить:

При сжатии сначала измените размер FS, затем измените размер LVM. При расширении сначала измените размер LVM, а затем измените размер FS.

При уменьшении объема необходимо размонтировать. При расширении, в зависимости от вашего ядра Linux, вы можете сделать это онлайн, пока система смонтирована.

При сжатии важно иметь резервные копии При расширении очень-очень-очень хорошая идея иметь резервные копии (когда это не так), но не так рискованно, как при сжатии

Помимо этого, все остальные на месте.