Я пытался оставить больше свободного места в /datos, и я нарушил конфигурацию моего сервера.

  • Сначала я обнаружил конфигурацию LVM.

  • Затем в клиенте VMWARE я нажимаю «Изменить настройки» и добавляю 50 ГБ к виртуальному диску.

  • Тогда pvresize 300G /dev /sda2 единственный PV, который принадлежит vg_admision1vm

  # pvdisplay

  --- Physical volume ---
  PV Name               /dev/sda2
  VG Name               vg_admision1vm
  PV Size               249.51 GiB / not usable 2.00 MiB
  Allocatable           yes (but full)
  PE Size               4.00 MiB
  Total PE              63874
  Free PE               0
  Allocated PE          63874
  PV UUID               dQO15U-Zyhb-LSSY-P7do-BXnj-3PC5-E127UE

  # pvresize --setphysicalvolumesize 300G /dev/sda

  WARNING: /dev/sda2: Overriding real size. You could lose data.
  Physical volume "/dev/sda2" changed
  1 physical volume(s) resized / 0 physical volume(s) not resized


  # pvdisplay 

  --- Physical volume ---
  PV Name               /dev/sda2
  VG Name               vg_admision1vm
  PV Size               300.00 GiB / not usable 3.00 MiB
  Allocatable           yes
  PE Size               4.00 MiB
  Total PE              76799
  Free PE               12925
  Allocated PE          63874
  PV UUID               dQO15U-Zyhb-LSSY-P7do-BXnj-3PC5-E127UE
  • Наконец, я выполнил для расширения логического тома на vg_admision1vm.
 # lvextend -L+30G /dev/mapper/vg_admision1vm-LogVol04 
  Size of logical volume vg_admision1vm/LogVol04 changed from 140.38 GiB (35938 extents) to 170.38 GiB (43618 extents).
  device-mapper: resume ioctl on  failed: Invalid argument
  Unable to resume vg_admision1vm-LogVol04 (253:2)
  Problem reactivating LogVol04
  Releasing activation in critical section.
  libdevmapper exiting with 1 device(s) still suspended.
  • После этой ошибки я прочитал, что при изменении размера LV необходимо изменить размер fs. Но я этого не сделал. После этого любая команда lv зависает, затем я перезагружаю машину и во время загрузки получаю:
/dev/mapper/vg_admision1vm-LogVol04 is mounted.
e2fsck: Cannot continue, aborting.
  • Я думаю, что изменение размера LogVol04 - хорошая идея, потому что мое понимание говорит, что устройство отображения не может создать устройство /dev/mapper/vg_admision1vm-LogVol04 потому что файловая система и логический объем имеют разные размеры. Как снова изменить размер vg_admision1vm-LogVol04 чтобы уменьшить 30GB?

  • Я также думаю, что возможно определенным образом правильно настроить устройство отображения с помощью dmsetup.

  • /dev/mapper/vg_admision1vm-LogVol04 использовался для монтирования в /datos.

  • На vg_admision1vm принадлежит больше логических томов, но, видимо, это не влияет.

  • Не знаю, как работает, но я отмечаю, что таблица для logVOl04 пуста, может быть, для определения таблицы может работать, но я не знаю, как определить таблицу с учетом логического объема.

  • Также я попробовал это, и я отмечаю это странное состояние:

    # umount /datos
    unmount: /datos: not mounted
    # mount -t ext4 /dev/sda2 /datos
    /dev/sda2 already mounted or /datos busy
    mount: according to mtab, /dev/mapper/vg_admision1vm-LogVol04 is already mounted on /datos
    

2 ответа2

2

Я думаю, что следующий ответ:

pvresize --setphysicalvolumesize 300G /dev /sda

ВНИМАНИЕ: /dev /sda2: переопределение реального размера. Вы можете потерять данные.

Вы должны были изменить размер патента перед изменением размера PV. Теперь у вас есть 300 ГБ PV на 250 ГБ разделе. Я удивлен, что это разрешено без опции --force .

К счастью, вы не расширили FS. LV в данный момент не используется - его нельзя активировать, и он остается приостановленным:

устройство-сопоставитель: возобновить ioctl при сбое: недопустимый аргумент Невозможно возобновить vg_admision1vm-LogVol04 (253: 2) Проблема с повторной активацией LogVol04 Снятие активации в критической секции. Выход libdevmapper с 1 устройства все еще приостановлен.

Уменьшение LV хорошо работает для меня: просто запустите lvresize -L-30G /dev/vg_admision1vm/LogVol04 ответьте «да» на страшный вопрос, и устройство будет возобновлено.

Теперь вы должны либо расширить раздел (что может быть невозможно, пока устройство его использует), либо уменьшить PV и начать заново.

Есть множество учебников, как изменить размер раздела. Это немного подверженный ошибкам процесс. Вам лучше иметь резервную копию. Используя fdisk вам нужно удалить раздел, а затем воссоздать его с большим размером. (g)parted делает это в фоновом режиме для вас.

Один совет: никогда не запускайте fsck на сломанных устройствах. Попробуйте сначала восстановить данные, в этом случае отсутствующие блоки. Запуск fsck в файловой системе с отсутствующими частями разрушит ее.

К счастью, там ничего не было написано, поэтому у вас не должно быть повреждений данных.

Второй совет: взгляните на lsblk и lsblk -s . При расширении вы начинаете с "низа": диск, [раздел], [LUKS], PV, LV, FS. При сокращении нужно начинать сверху, сначала сокращать файловую систему, затем устройство прямо под ФС и т.д.

Здесь вы расширили диск, поэтому сначала нужно было расширить раздел, затем PV. Это привело бы к свободному месту в VG, чтобы вы могли изменить размер LV, а затем FS.

0

Я сталкиваюсь с подобной проблемой сегодня. Я не помню, почему я давно использовал команду pvresize --setphysicalvolumesize , но это была плохая идея.

Расширил жесткий диск, затем pvresize /dev/sdnX должен выполнить эту работу без указания какого-либо размера.

Моим решением была загрузка живого дистрибутива, чтобы расширить раздел PV /dev/sdnX с помощью fdisk , удалив раздел, а затем заново создать его с большим количеством секторов (перезагрузить при необходимости), затем pvresize /dev/sdnX . По предложению марсианина, parted сделайте всю работу за вас.

resize2fs LV, запустите проверку файловой системы (e2fsck -f /dev/sdnX) и смонтируйте ее.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .