mysurik.ru

Ошибка «failed to erase LVM2_member magic string» в Proxmox: Причины и Решения

Вы добавили новый диск в сервер, зашли в веб-интерфейс Proxmox, нажали «Wipe Disk» (очистить диск), но вместо успешной операции увидели красное окно с ошибкой:

error wiping ‘/dev/sdb’: wipefs: /dev/sdb: failed to erase LVM2_member magic string at offset 0x00000218: Input/output error

Давайте разберемся, что это значит, почему стандартный wipefs не справляется и как это исправить.

Что происходит?

Proxmox пытается использовать утилиту wipefs, чтобы удалить сигнатуры файловых систем (в данном случае остатки LVM от предыдущей установки).

Ключевая часть ошибки здесь — «Input/output error» (Ошибка ввода-вывода). Это гораздо серьезнее, чем просто «Device or resource busy». Это означает, что ядро Linux отправило команду на диск, но диск не ответил или ответил ошибкой физического уровня.

Причина 1: Аппаратная проблема (Самая вероятная)

Фраза Input/output error в 90% случаев указывает на проблемы с «железом». Прежде чем мучить консоль командами, исключите физику.

Что проверить:

  1. Кабель SATA/SAS: Плохой контакт или битый кабель — частая причина I/O ошибок при попытке записи.
  2. Питание: Диску может не хватать питания при нагрузке.
  3. Смерть диска: Диск может быть просто неисправен (Bad blocks в начале диска, где лежит заголовок LVM).

Диагностика: Зайдите в консоль (Shell) и проверьте SMART:

smartctl -a /dev/sdb

И посмотрите системные логи сразу после появления ошибки:

dmesg | tail -n 20

Если вы видите там сообщения вроде ATA bus error, link reset, или sector read error, программные методы не помогут — меняйте кабель или диск.


Причина 2: Блокировка Device Mapper (Программная)

Иногда Proxmox или ОС видят старую структуру LVM и «захватывают» диск, монтируя его через Device Mapper. В итоге wipefs не может получить доступ на запись, потому что диск занят системой, даже если он не примонтирован явно.

Решение: Нужно вручную удалить маппинг.

  1. Проверьте, видит ли система какие-то маппинги на этом диске:
dmsetup ls
lsblk

2. Если вы видите, что /dev/sdb является частью какой-то pve-data или другой группы, попробуйте удалить её:

dmsetup remove <имя_устройства>
# Или жестко, если не отпускает:
dmsetup remove --force <имя_устройства>

Причина 3: «Ядерный» метод (DD)

Если SMART чист, кабели проверены, маппингов нет, но wipefs всё равно падает, используем грубую силу. Мы затрем начало диска нулями вручную, уничтожив саму сигнатуру, на которую ругается Proxmox.

Осторожно: Убедитесь, что /dev/sdb — это точно тот диск, который вам не нужен!

  1. Затираем первый гигабайт диска:
dd if=/dev/zero of=/dev/sdb bs=1M count=1024 status=progress

Если на этом этапе вы снова получите Input/output error, значит диск физически мертв (см. Причину 1).

2. Затираем конец диска (там часто хранятся резервные заголовки GPT): Узнаем размер диска в секторах (например, через fdisk -l) и используем seek в dd, но проще использовать wipefs после первого шага.

3. Финальная зачистка: После того как dd отработал, пробуем снова:

wipefs -a /dev/sdb

Теперь команда должна пройти успешно, так как «магическая строка» LVM уже уничтожена нулями.


Итог

Ошибка Input/output error при очистке диска в Proxmox решается следующим алгоритмом:

  1. Check Hardware: Смотрим dmesg и smartctl. Если там ошибки — меняем диск/кабель.
  2. Check Locks: Проверяем dmsetup, не держит ли ядро этот диск.
  3. Brute Force: Используем dd для перезаписи начала диска нулями, обходя проверки wipefs.

После выполнения dd вернитесь в веб-интерфейс Proxmox — диск должен стать чистым и готовым к инициализации (Initialize Disk with GPT).

Ваш комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *