среда, 29 февраля 2012 г.

Изменение размера LVM-тома в CentOS 6

При инсталляции CentOS версии 6, если в системе оперативной памяти меньше 512Мб, запускается текстовый инсталлятор, который не предлагает менеджера разбиение жёсткого диска, а вместо этого просто берёт и создаёт на диске группу томов LVM с корневой ФС и небольшим кусочком для подкачки. С одной стороны для развёртывания виртуалок это может быть удобно, но с другой стороны если требуется какая-то определённая схема разметки диска, или просто выделить раздел под определённые нужды появляется проблема.

Решить эту проблему из под уже загруженной системы нельзя, т.к. попытка ресайзнуть корневую фс, когда она смонтированна приведёт к kernel panic, поэтому нужно заранее позаботится и заготовить LiveCD.


В сети довольно много советов по расширению LVM-тома, а вот по уменьшению как-то сразу не гуглится (хотя решение я нашёл в ArchLinux Wiki на русском и на английском).

Для краткости опишу процедуру уменьшения тома здесь.

Грузимся с LiveCD и выполняем проверку диска.
fsck.ext4 -f /dev/VolGroup/lv_root

Затем изменяем размер файловой системы внутри lvm.
resize2fs /dev/VolGroup/lv_root 2G
В этом примере 2G - устанавливает желаемый размер файловой системы в 2Гб.
Теперь уменьшаем сам том lvm так же до 2Гб.
lvreduce -L 2G /dev/VolGroup/lv_root

И создаём новый том для наших нужд, который займёт всё оставшееся свободное место на разделе.
lvcreate -l +100%FREE VolGroup00 -n lv_storage
Теперь можно отформатировать новый том.
mkfs.ext4 /dev/VolGroup/lv_storage
И том готов к употреблению.

3 комментария:

  1. Спасибо за подсказку! Напишите, пожалуйста, с какого LiveCD загружаться?
    Перепробовал кучу лайвов, то жесткий не монтируется, то lvreduce не поддерживает ext4
    Очень надеюсь на вашу помощь)

    ОтветитьУдалить
  2. нашел инфу - надо было активировать группы командой: vgchange -a y
    только толку от этой манипуляции всей?.. Это не том и не раздел получился... можно и просто файл с нулями отфармотировать и примонтировать. как теперь получить логичекий раздел? чтобы он был отдельным от системного.

    ОтветитьУдалить
  3. Нашел решение!)) как всегда все гениальное просто)
    перед установкой centos нужно загрузить LiveCD того же центоса и разбить жесткий диск на три раздела.
    /dev/sda1 524МБ
    /dev/sda2 10ГБ
    /dev/sda3 все что останется
    Первые два удаляем и остается /dev/sda3 на котором будут храниться доки пользователей. Получили свободное место в начале диска.
    Затем запускаем установочный диск. У меня он был другой с минимальным центом, т.к. инсталятор с лайвсд не запускался, наверное все по той же причине, что мало памяти 512мб
    Во время установки выбираем "Use free space"
    Центос ставиться как ему надо. Монтируем /dev/sda3 куда хотим) Потом когда система полетит, то файлы пользователя останутся. В случае с LMV если даже сделать логический диск для доков lv_storage, но на том же физическом разделе что и ось, то при переустановке оси нужно будет все куда-то копировать и то смотря как полетит)
    Если день х настал или просто захотели другой линукс попробовать, то удаляем первые два раздела и т.д.
    У меня третий день знакомства с линуксом потому прошу не пинать словами)) Думаю моя заметка будет полезна тем, кто тоже захотел впервые попробовать старенький комп как сервер)

    ОтветитьУдалить