Отвечая на мой собственный вопрос. Хотелось бы получить некоторые комментарии, поскольку некоторые из них кажутся загадочными.
Это оказалось намного сложнее, чем я думал... вот сделанные мной заметки - они включают в себя множество выводов, которые могут иметь отношение к моей ситуации. Также все, что начинается с «<<<<», является комментарием! Не копируйте!:
ПРОБЛЕМА: скопирован образ старого сервера qemu 40G LV в новый 50G LV
Нужно изменить размер файловой системы на 50G
root@virtual3:~# ssh oldserver "dd bs=1M if=/dev/oldvg/oldnstest" | \
дд статус=прогресс=/dev/vg-main/nstest
root@virtual3:~# scp oldserver:/etc/libvirt/quemu/oldnstest.xml /etc/libvirt/qemu/nstest.xml
.... отредактируйте nstest.xml по мере необходимости и virsh определите nstest.xml
Я нашел некоторые недостающие биты и ошибки, но в значительной степени основанные на этой странице:
https://subscription.packtpub.com/book/virtualization-and-cloud/9781788294676/1/ch01lvl1sec14/изменение размера изображения
root@virtual3:~# qemu-img info /dev/vg-main/nstest
изображение: /dev/vg-main/nstest
формат файла: сырой
виртуальный размер: 50 ГиБ (53687091200 байт)
размер диска: 0 Б
root@virtual3:~# lossup -f
/dev/loop0
root@virtual3:~# lossup /dev/loop0 /dev/vg-main/nstest
root@virtual3:~# kpartx -av /dev/loop0
GPT: основной заголовок думает, что Alt. заголовок не в конце диска.
GPT: Альтернативный заголовок GPT не в конце диска.
GPT: используйте GNU Parted для исправления ошибок GPT.
добавить карту loop0p1 (253:3): 0 2048 линейная 7:0 2048
добавить карту loop0p2 (253:4): 0 85972992 линейная 7:0 4096
root@virtual3:~# parted /dev/vg-main/nstest печать
Предупреждение: Не все пространство, доступное для /dev/dm-2, похоже, используется, вы можете
исправить GPT, чтобы использовать все пространство (дополнительные блоки 18877064) или продолжить
текущие настройки?
Исправить/игнорировать? исправить
Модель: Linux device-mapper (linear) (dm)
Диск /dev/dm-2: 53,7 ГБ
Размер сектора (логический/физический): 512Б/512Б
Таблица разделов: gpt
Флаги диска:
Номер Начальный Конечный Размер Файловая система Имя Флаги
1 1049 КБ 2097 КБ 1049 КБ bios_grub
2 2097 КБ 44,0 ГБ 44,0 ГБ доб.4
ВМ ПО-ПРЕЖНЕМУ ЗАПУСКАЕТСЯ - посмотрим, как мы пойдем дальше!
Обратите внимание, что ведение журнала, по-видимому, должно быть отключено, чтобы это работало, но e2fsck снова включит его. Смотри ниже.
root@virtual3:~# kpartx -av /dev/loop0
добавить карту loop0p1 (253:3): 0 2048 линейная 7:0 2048
добавить карту loop0p2 (253:4): 0 85972992 линейная 7:0 4096
root@virtual3:~# ls -la /dev/mapper/loop0*
lrwxrwxrwx 1 root root 7 13 января 23:47 /dev/mapper/loop0p1 -> ../dm-3
lrwxrwxrwx 1 root root 7 13 января 23:47 /dev/mapper/loop0p2 -> ../dm-4
root@virtual3:~# tune2fs -l /dev/mapper/loop0p2
.... много всего, вырезано для краткости
Особенности файловой системы: has_journal ext_attr resize_inode dir_index .... и т.д. и т.п.
.... еще много чего.... но обратите внимание на "has_journal" выше
root@virtual3:~# e2fsck /dev/mapper/loop0p2 >>>>>>>> исправить мелкие проблемы?
e2fsck 1.45.5 (07 января 2020 г.)
/dev/mapper/loop0p2: восстановление журнала
Очистка потерянного inode 788499 (uid=0, gid=0, mode=0100644, size=113)
Очистка потерянного inode 531614 (uid=0, gid=0, mode=0100666, size=0)
Очистка потерянного индекса 531613 (uid=112, gid=117, режим=0100600, размер=0)
Очистка потерянного индекса 531610 (uid=112, gid=117, режим=0100600, размер=0)
Очистка потерянного inode 531609 (uid=112, gid=117, mode=0100600, size=0)
Очистка потерянного inode 531606 (uid=112, gid=117, mode=0100600, size=0)
Установка количества свободных инодов на 2511295 (было 2511334)
Установка количества свободных блоков на 6187161 (было 6192365)
/dev/mapper/loop0p2: чистый, 175681/2686976 файлов, 4559463/10746624 блоков
root@virtual3:~# tune2fs -O ^has_journal /dev/mapper/loop0p2 >>>> NB: заглавная буква O
tune2fs 1.45.5 (07 января 2020 г.)
root@virtual3:~# tune2fs -l /dev/mapper/loop0p2 | grep "функции"
Особенности файловой системы: ext_attr resize_inode dir_index .... и т.д. и т.п.
root@virtual3:~# kpartx -dv /dev/loop0
карта разработчиков: loop0p2
карта разработчиков: loop0p1
root@virtual3:~# lossup -d /dev/loop0
root@virtual3:~# modprobe nbd max_parts=8 <<<<< необходимо для создания /dev/nbd*
(отредактируйте /etc/modprobe... добавьте nbd, чтобы сделать его постоянным)
root@virtual3:~# qemu-nbd --format=raw --connect=/dev/nbd0 /dev/vg-main/nstest
root@virtual3:~# fdisk /dev/nbd0
Добро пожаловать в fdisk (util-linux 2.34).
Изменения останутся только в памяти, пока вы не решите их записать.
Будьте осторожны перед использованием команды записи.
Команда (m для помощи): p
Диск /dev/nbd0: 50 ГиБ, 53687091200 байт, 104857600 секторов
Единицы: секторы 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер ввода/вывода (минимальный/оптимальный): 512 байт / 512 байт
Тип метки диска: gpt
Идентификатор диска: 564A38FB-02AE-4E84-B080-173963955B2E
Размер начальных и конечных секторов устройства Тип
/dev/nbd0p1 2048 4095 2048 1M Загрузка BIOS
/dev/nbd0p2 4096 85977087 85972992 Файловая система Linux 41G
Команда (m для помощи): d
Номер раздела (1,2, по умолчанию 2): 2
Раздел 2 удален.
Команда (m для справки): n
Номер раздела (2-128, по умолчанию 2): 2
Первый сектор (4096-104857566, по умолчанию 4096):
Последний сектор, +/-секторы или +/-размер{K,M,G,T,P} (4096-104857566, по умолчанию 104857566):
Создан новый раздел 2 типа «Файловая система Linux» размером 50 ГБ.
Раздел №2 содержит подпись ext4.
Вы хотите удалить подпись? [Д]да/[Н]о: н <<<< NB!
Команда (m для справки): w
Таблица разделов была изменена.
Вызов ioctl() для повторного чтения таблицы разделов.
Синхронизация дисков.
root@virtual3:~# qemu-nbd --disconnect /dev/nbd0 <<< этот шаг не на веб-странице
/dev/nbd0 отключен
root@virtual3:~# e2fsck -f /dev/mapper/loop0p2
e2fsck 1.45.5 (07 января 2020 г.)
Суперблок имеет недопустимый журнал (инод 8).
Очистить<у>? да
*** журнал удален ***
Очистка потерянного inode 788499 (uid=0, gid=0, mode=0100644, size=113)
Недопустимый индекс 1642119663 в списке потерянных индексов.
Проход 1: проверка индексных дескрипторов, блоков и размеров
У удаленного индекса 531606 нулевое время ожидания. Исправить<y>? да
Найдены индексные дескрипторы, которые были частью поврежденного связанного списка потерянных файлов. Исправить<y>? да
Инод 531609 был частью списка потерянных индексов. ИСПРАВЛЕНО.
Инод 531610 был частью списка потерянных инодов. ИСПРАВЛЕНО.
Инод 531613 был частью списка потерянных индексов. ИСПРАВЛЕНО.
Инод 531614 был частью списка потерянных индексов. ИСПРАВЛЕНО.
Проход 2: проверка структуры каталогов
Шаг 3: проверка подключения к каталогу
Шаг 4: проверка счетчиков ссылок
Шаг 5: Проверка сводной информации о группе
Неверный подсчет свободных блоков для группы №97 (21582, counted=21583).
Исправить<y>? да
Неверный подсчет свободных блоков (6192364, counted=6252696).
Исправить<y>? да
Различия битовых карт индексов: -531606 -(531609--531610) -(531613--531614) -788499
Исправить<y>? да
Неверный подсчет свободных инодов для группы №64 (869, counted=874).
Исправить<y>? да
Неверный подсчет свободных инодов для группы №96 (2772, counted=2773).
Исправить<y>? да
Неверный подсчет свободных инодов (2511328, counted=2511295).
Исправить<у>? да
Различия в растровых изображениях блоков: растровое изображение блоков группы 97 не соответствует контрольной сумме.
ИСПРАВЛЕНО.
Воссоздать журнал («a» означает «да» для всех) <y>? да для всех
Создание журнала (65536 блоков): Готово.
*** журнал восстановлен ***
/dev/mapper/loop0p2: ***** ФАЙЛОВАЯ СИСТЕМА БЫЛА ИЗМЕНЕНА *****
/dev/mapper/loop0p2: 175681/2686976 файлов (0,6% несмежных), 4559464/10746624 блоков
root@virtual3:~# resize2fs /dev/mapper/loop0p2 <<<< Веб-страница NB ссылается на /dev/nbd0
resize2fs 1.45.5 (07 января 2020 г.)
Изменение размера файловой системы на /dev/mapper/loop0p2 до 13106683 (4k) блоков.
Файловая система на /dev/mapper/loop0p2 теперь имеет длину 13106683 (4k) блоков.
root@virtual3:~# tune2fs -j /dev/mapper/loop0p2
tune2fs 1.45.5 (07 января 2020 г.)
В файловой системе уже есть журнал.
root@virtual3:~# kpartx -dv /dev/loop0
карта разработчиков: loop0p2
карта разработчиков: loop0p1
root@virtual3:~# lossup -d /dev/loop0
root@virtual3:~# virsh start nstest
Гость не смог правильно загрузиться !!!
Гость упал на спасательный снаряд, из которого я сделал:
fsck /dev/vda2
(вошел в систему через средство просмотра удаленного рабочего стола.)
Исправлено несколько несоответствий.
Возможно, это была моя собственная проблема - надеюсь, не ваша!
Гость теперь загрузится, но все еще только 41G ........
теперь попробовать еще раз!
root@virtual3:~# virsh start nstest
ТОГДА вошел в гостевую систему через ssh:
root@ns:~# resize2fs /dev/vda2
resize2fs 1.45.5 (07 января 2020 г.)
Файловая система /dev/vda2 смонтирована на /; требуется онлайн изменение размера
old_desc_blocks = 6, new_desc_blocks = 7
Файловая система на /dev/vda2 теперь имеет длину 13106683 (4k) блоков.
root@ns:~# df -h
Используемый размер файловой системы Доступно Использование % Установлено на
...... снип .......
/dev/vda2 49G 17G 31G 36%/
УСПЕХ!