2

Я подключаю образ диска через петлевое устройство (losttup -f image.img). Он содержит таблицу разделов, и я заставляю ядро читать ее: partprobe /dev /loop1.

Я монтирую /dev /loop1p1, исправляю то, что хочу исправить, размонтирую обратно файловую систему. Я удаляю файл с устройства loopback (losttup -d /dev /loop1). Но /dev /loop1p1 не исчез.

Я даже пытался воссоздать lodevice, добавить и удалить таблицу разделов через fdisk. Но все мои попытки провалились

Таблица разделов была изменена!

Вызов ioctl() для перечитывания таблицы разделов.

ВНИМАНИЕ: перечитывание таблицы разделов завершилось ошибкой 22: неверный аргумент. Ядро все еще использует старую таблицу. Новая таблица будет использоваться при следующей перезагрузке или после запуска Partprobe (8) или kpartx (8) Синхронизация дисков.

Раздел никак не используется, но я не могу его освободить. Есть ли способ удалить его без перезагрузки?

Я вижу в dmesg несколько записей:

[4649002.505727] loop1: rw = 0, want = 211812300, limit = 62914560 [4649002.505753] Ошибка ввода-вывода буфера на устройстве loop1p1, логический блок 52952562 [4649002.505870] пытается получить доступ за пределами конца устройства

И они придираются к моим нагиосам.

1 ответ1

2

Перезагрузка должна исправить ваше ядро. И в следующий раз, вместо того, чтобы вручную запускать losetup и partprobe , используйте kpartx:

kpartx -v -a image.img

и снести его

kpartx -d image.img

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