Добрый день.
Появилась проблема, не знаю как быть.
Жил был lvm volume, работал он виртуальным диском для виртуалки xen. Понадобилось как то, расширить раздел. Выключил виртуалку, заюзал lvextend, все ок, посмотрел на хостовой системе fdisk-ом таблицу разделов данного volume, сделал с offset-ом loop устойство, все ок, потом говорю resie2fs /dev/loop0, все ок, смотрю места дофига, раздел монтируется. Включаю виртуалку, и вот она долгожданная,
Either the superblock or the partition table is likely to be corrupt!
Выкидывает меня в maintenance mode. Смотрю вроде как все смонтировалось причем с нужным объемом, но система в ro. Пробовал запускать fsck и на самой виртуалке и на хостовой системе, пишет вышеописанный ерор и предлагает Аборт. Нажимаю «n» валятся куча
Error reading block <blocknumber> Ignore error?
Но жать 100500 раз «y» обломно. Да и не уверен что это поможет. Если запускать с опцией "-y" то он ответит «yes» на Аборт. Так же пробовал fsck -b <number> та же ошибка.
Хз че сделать то. И не очень ясно что произошло. Господа, просветите. Спс
1. fdiskom я лишь смотрел таблицу разделов. Увеличивал lvextend-ом.
2. Ты сам понял о чем ты? loop для того что бы получить виртуальный раздел на устройстве loop, а max_parts это параметр модуля loop который задает макс кол-во устройств loop.
1. fdiskom я лишь смотрел таблицу разделов. Увеличивал lvextend-ом.
lvextend не изменит размер разделов. Он только увеличивает том. Если у тебя на томе своя таблица разделов, увеличивай размера раздела сам.
2. Ты сам понял о чем ты? loop для того что бы получить виртуальный раздел на устройстве loop, а max_parts это параметр модуля loop который задает макс кол-во устройств loop.
Да. Ты спутал max_loop и max_part. Вот, прочитай:
$ /sbin/modinfo loop
filename: /lib/modules/3.2.0-4-amd64/kernel/drivers/block/loop.ko
alias: devname:loop-control
alias: char-major-10-237
alias: block-major-7-*
license: GPL
depends:
intree: Y
vermagic: 3.2.0-4-amd64 SMP mod_unload modversions
parm: max_loop:Maximum number of loop devices (int)
parm: max_part:Maximum number of partitions per loop device (int)
Если на loop0 обнаружится таблица разделов (и max_part будет больше 0), у тебя появятся /dev/loop0p1, /dev/loop0p2 и так далее. Это гораздо удобнее, чем высчитывать смещения вручную.
Внатуре попутал. Разобрался, с loop max_part, спс. Т.е нужно поправить таблицу разделов на самом volume?! Т.е удалить старый раздел со старым объемом и создать новый?
На хосте:
lvextend - увеличиваем LVM том;
В госте:
fdisk - создать на свободном месте еще один раздел (pv)
добавить новый pv в vg и увеличить lv
увеличить файловую систему
Конечно круто, можно все делать без остановки гостя. Если у тебя там игрушечный сервер, то не важно, а если какой-никакой продакшен, то не иметь LVM совсем не круто.