Как восстановить резервирование тома LVM -RAID

Использование вами \sв регулярном выражении означает, что выражение может потреблять новые строки. Я недостаточно знаком с тем, как -vреализован в pcregrep, чтобы понять, почему это не инверсия, но я почти уверен, что причина именно в этом.

Если вы измените свой файл на:

apple
banana starts matching
 this line should match
 this too
 and this

mango

pomelo

Тогда даже без -vсовпадение выглядит не так, как вы задумали.

$ pcregrep  -M 'banana.*\n(\s.*\n)*' fruits.txt
banana starts matching
 this line should match
 this too
 and this

mango

pomelo

Если действительно должен совпадать только пробел в начале строки, я предлагаю заменить \sна один или несколько пробелов " +".

Когда я изменяю регулярное выражение на 'banana.*\n( +.*\n)*', оно соответствует (как обычному, так и обратному )способом, который я считаю более правильным. Возможно, используйте [ \t]+, если также разрешены вкладки.

1
17.10.2020, 07:51
1 ответ

Я понял, что могу освободить немного больше свободного места, уменьшив количество виртуальных томов, по которым распределялся том home64, вызвав команду running pvmoveс PV, из которых нужно переместиться, и два. Это, а также еще 6 ТБ, которые у меня были в наличии, а также 8 ТБ со сменного диска, оставили мне достаточно места для восстановления LV с помощью lvchange --syncaction repair /dev/prole/home.

Вот как это выглядит сейчас:

sudo lvs -a -o name,segtype,devices
  WARNING: Not using lvmetad because a repair command was run.
  LV                Type   Devices
  home64            raid1  home64_rimage_0(0),home64_rimage_1(0)
  [home64_rimage_0] linear /dev/sdf(1)
  [home64_rimage_0] linear /dev/sda(0)
  [home64_rimage_0] linear /dev/sdc2(0)
  [home64_rimage_1] linear /dev/sdg(1)
  [home64_rimage_1] linear /dev/sdi(0)
  [home64_rimage_1] linear /dev/sdb(3842)
  [home64_rimage_1] linear /dev/sdd(1335820)
  [home64_rmeta_0]  linear /dev/sdf(0)
  [home64_rmeta_1]  linear /dev/sdg(0)
  root              raid1  root_rimage_0(0),root_rimage_1(0)
  [root_rimage_0]   linear /dev/sdd(1810605)
  [root_rimage_1]   linear /dev/sdb(1)
  [root_rmeta_0]    linear /dev/sdd(856646)
  [root_rmeta_1]    linear /dev/sdb(0)
  var               raid1  var_rimage_0(0),var_rimage_1(0)
  [var_rimage_0]    linear /dev/sdd(0)
  [var_rimage_1]    linear /dev/sdb(2050)
  [var_rmeta_0]     linear /dev/sdd(1812653)
  [var_rmeta_1]     linear /dev/sdb(2049)

Состояние здоровья:

sudo lvs -o name,lv_health_status
  WARNING: Not using lvmetad because a repair command was run.
  LV     Health
  home64
  root
  var
1
18.03.2021, 22:56

Теги

Похожие вопросы