Наш корпоративный стандарт - это CentOS (который, кажется, предпочитает LVM), и я в основном не использую LVM, поэтому я иду по новому пути с этой проблемой.
Я унаследовал старую машину в качестве лог-сервера, и мне пришлось переустановить CentOS. Из-за проблем с EHCI на материнской плате (либо через обычный установочный DVD, либо через установку LiveCD GUI) единственное, что я смог найти для установки CentOS 6.3, - это текстовая установка LiveCD. Текстовая установка LiveCD не позволяла мне делать собственные настройки раздела на диске; он только устанавливает LVM и дал мне плохое распределение места для сервера журналов ...
[mpenning@someHost ~]$ cat /etc/issue
CentOS release 6.3 (Final)
Kernel \r on an \m
[mpenning@someHost ~]$ df -m
Filesystem 1M-blocks Used Available Use% Mounted on
/dev/mapper/vg_livecd-lv_root
50397 2167 47719 5% /
tmpfs 1850 0 1850 0% /dev/shm
/dev/md127p1 485 65 395 15% /boot
/dev/mapper/vg_livecd-lv_home
227001 188 215283 1% /home
[mpenning@someHost ~]$ sudo lvm vgdisplay
--- Volume group ---
VG Name vg_livecd
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 4
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 3
Open LV 3
Max PV 0
Cur PV 1
Act PV 1
VG Size 278.96 GiB
PE Size 4.00 MiB
Total PE 71415
Alloc PE / Size 71415 / 278.96 GiB
Free PE / Size 0 / 0
VG UUID 8qywNz-cmKv-RxAH-WcsV-2nEA-sGg3-fcZ6BU
[mpenning@someHost ~]$
Два вопроса:
/
получить 257398 блоков 1-М и уменьшить /home
до 20000 блоков размером 1 М, могу ли я сделать это без перезагрузки, и если да, то какова конкретная последовательность команд для этого?/var
раздел, как мне это сделать без полной переустановки?Если мне нужно увеличить / получить 257398 блоков 1-M и уменьшить / home до 20000 блоков 1-M, могу ли я сделать это без перезагрузки, и если да, то какова конкретная последовательность команд для этого?
У вас есть примерно 280 ГБ свободного места, из которых 50 ГБ было выделено для '/', а 230 ГБ - для /home
. Поскольку это представляет все ваше доступное пространство, вам сначала нужно что-то освободить. Вот несколько вариантов:
Если вы не поместили данные в /home
, проще всего просто отбросить существующую файловую систему и воссоздать ее с соответствующим размером:
Размонтировать /home
:
# umount /home
Уменьшите размер логического тома (LV) до 20 ГБ:
# lvreduce -L 20G /dev/vg_livecd/lv_home
Воссоздать /home
файловая система:
# mke2fs -j -m0 /dev/vg_livecd/lv_home
И перемонтировать /home
:
# mount /home
Возможно сокращаться /home
, а не отбрасывать его, но это может быть немного сложнее:
Размонтировать /home
:
# umount /home
fsck
файловая система. Вероятно, это потребуется на следующем шаге:
# fsck /dev/vg_livecd/lv_home
Измените размер файловой системы:
# resize2fs /dev/vg_livecd/lv_home 19G
Уменьшите LV:
# lvreduce -L 20G /dev/vg_livecd/lv_home
Вы заметите, что я уменьшил файловую систему немного больше, чем LV; это потому, что я никогда не могу вспомнить, считают ли они вещи одинаково, поэтому я стараюсь оставить немного места для маневра.
В любом случае, на данный момент у вас есть примерно 210 ГБ свободного места в вашей группе томов. Теперь вы можете увеличить размер вашей корневой файловой системы:
Увеличиваем размер корневого LV:
# lvresize -L260G /dev/vg_livecd/lv_root
Увеличьте размер файловой системы:
# resize2fs /dev/vg_livecd/lv_root
Обратите внимание, что вам может потребоваться число чуть меньше 260 ГБ из-за округления, которое я использую в этом ответе. Кроме того, последние версии утилит LVM включают возможность изменять размер файловой системы за вас, но я делал это еще до того, как эти параметры стали доступны ... поэтому я не могу утверждать, что знаю, как они работают.
Если я хочу добавить выделенный раздел / var, как мне это сделать без полной переустановки?
Во-первых, вы, вероятно, захотите сделать это в однопользовательском режиме, иначе запущенные процессы, вероятно, будут открывать файлы в /var
что затрудняет замену. Было сказано, что...
И снова вам понадобится свободное место. Если вместо того, чтобы использовать все свободное пространство на предыдущем шаге, вы оставите несколько ГБ свободными, вы можете сделать это:
Создайте новый логический том:
# lvcreate -n lv_var -L 10G /dev/vg0
Создайте новую файловую систему:
# mke2fs -j -m0 /dev/vg_livecd/lv_var
редактировать /etc/fstab
установить новый РН на /var
добавив следующую строку:
/dev/vg_livcde/lv_var /var ext4 defaults 1 2
Но пока не устанавливайте его!
Смонтируйте новую файловую систему в удобном месте:
# mount /dev/vg_livecd/lv_var /mnt
Скопируйте содержимое /var
:
# rsync -a /var/ /mnt/
Переименовать /var
к /var.old
и создайте новый каталог:
# mv /var /var.old
# mkdir /var
Установите свой новый LV на /var
:
# umount / mnt # mount / var
И продолжаем загрузку. Когда вы убедитесь, что все работает правильно, вы можете удалить /var.old
.
Учитывая:
AFAIC, я бы попытался установить netinstall / kickstart, чтобы получить желаемую конфигурацию одним выстрелом и воспроизводимым способом.
Мои 2cts