Как удалить фантомный пул ZFS после переустановки пула zfs

Есть пара новых дисков, которые я настраивал в зеркальном режиме ZFS (используя Ubuntu-16.04-Root-on-ZFS. К сожалению, я что-то напутал (во время установки grub) и мне пришлось начинать сначала. Когда я перезагрузился (шаг 6.5 в этом документе) я получил ошибку:

cannot import 'rpool': more than one matching pool
import by numeric ID instead

и это толкнуло меня в оболочку initramfs. На самом деле есть два пула, но один из них сломан ... предположительно тот, что был в исходной установке. Я смог импортировать «хороший» rpool, используя его идентификатор как rpoolgood, и повторно экспортировал его.

Однако я не могу импортировать «сломанный» rpool (ни по имени, ни по идентификатору). Все, что я хочу сделать, это уничтожить его. Я предполагаю, что я должен был обнулить разделы без данных перед созданием новых разделов (шаг 2.2). У меня пока нет реальных данных, поэтому я могу (и, вероятно, должен) просто снова выполнить установку (и сначала обнулить разделы).

Прежде чем делать переустановку, мне любопытно, есть ли способ взорвать этот плохой / поддельный пул.

По запросу прилагаю скриншот «импорта zfs» после реэкспорта rpoolgood. IIRC, я случайно указал раздел, а не диск при установке grub. Я сделал это только на одном из дисков, когда понял свою ошибку.

введите здесь описание изображения


zfs
person Modular    schedule 13.01.2017    source источник
comment
Я предполагаю, что плохой пул использовал те же физические устройства? Выводит ли команда zpool import -D какие-либо уничтоженные пулы?   -  person airhuff    schedule 13.01.2017
comment
Запуск zdb, чтобы увидеть, выглядит ли что-то странным с вашим файлом zpool.cache, может (или не может) дать некоторое представление о проблеме. Если что-то кажется неправильным, безопасно удалить /etc/zfs/zpool.cache, а затем запустить zpool set cachefile=/etc/zfs/zpool.cache ‹pool›, чтобы создать новый. Хотя я думаю, что это стоит сделать, я не думаю, что это окончательное решение.   -  person airhuff    schedule 13.01.2017
comment
import -D не показал ни одного уничтоженного (и не удивительно, так как переустановка была выполнена вне компетенции набора инструментов zfs). Я попробовал пару запросов с zdb, и это не дало мне больше понимания (но, вероятно, это больше связано с отсутствием у меня опыта работы с zfs). Кстати, я использую zfs для своей корневой файловой системы, поэтому /etc/zfs/... в лучшем случае выглядит как курица и яйцо... в худшем случае не имеет смысла, поскольку /etc/ не существует до тех пор, пока не будет импортирован rpool.   -  person Modular    schedule 14.01.2017
comment
Я думаю, что у меня есть простое (?) Решение, но еще одна информация была бы полезна. Каков результат zpool import без имен пулов, и дайте мне знать, был ли импортирован хороший rpool или нет, когда вы запускали команду.   -  person airhuff    schedule 14.01.2017
comment
Приложил скриншот по вашему запросу. Спасибо за любые мысли airhuff.   -  person Modular    schedule 14.01.2017
comment
Спасибо, это полезно. Я нашел сценарий на форуме FreeBSD, который, как я думал, будет работать, но он меня не устроил. Запустилось вроде все работает но ничего не изменилось. Вы можете попробовать, поскольку вам нечего терять. Дайте мне знать, если вы попробуете это.   -  person airhuff    schedule 15.01.2017
comment
Я видел пару сценариев, связанных с очисткой меток, но ни один из просмотренных мной постов не вселил в меня уверенность в том, что метаданные останутся в хорошем состоянии. Поскольку я еще не устанавливал остальную часть системы, я думаю, что начну с нуля, обнулю первые и последние 10 МБ на двух дисках и продолжу оттуда. Это должно взорвать информацию о метаданных/разделах из того, что я читал.   -  person Modular    schedule 15.01.2017
comment
Извините, я не мог больше помочь, удачи. Я бы обязательно запустил zpool labelclear в какой-то момент.   -  person airhuff    schedule 15.01.2017
comment
Я слышал комментарии о том, что, поскольку диск использовался повторно, очистка метки не поможет.   -  person Modular    schedule 16.01.2017
comment
Наверное, не само по себе, но точно не повредит. Я просто хотел сделать это в сочетании с вашей (хорошей) идеей обнулить диски так, как вы описали. Это так просто и безвредно в вашем случае, что я бы просто сделал это, может быть, перед обнулением, чтобы посмотреть, что произойдет, если что-нибудь произойдет (посмотрите, изменится ли вывод of_zpool import_ или zdb), или если обнуление не поможет вам тогда попробуйте в безнадежном отчаянии. Итог: низкая вероятность успеха, но бесплатная (быстрая, простая и безвредная в вашей ситуации) попытка.   -  person airhuff    schedule 16.01.2017


Ответы (1)


Типа решено:

TL/DR: я удалил все разделы, а затем удалил первые и последние 10 МБ каждого диска с помощью dd (для элегантного способа удаления последнего раздела диска используйте [эту статью по обмену] [1]). Это не восстановило «хороший» пул, но это не было обязательным для меня ... получение чистой установки было основной целью (что это дало мне)

Немного длиннее:

Я немного поковырялся, и мой вывод заключается в том, что если вы хотите переназначить диск из одного zpool в другой, вам лучше всего стереть (по крайней мере, часть) диска. Выполнение уничтожения предыдущего пула могло бы сработать, но я этого не делал (и не ясно, мог ли я это сделать, так как я испортил установку grub, поэтому мои разделы могли быть повреждены)

В инструкциях Ubuntu говорилось об очистке суперблока, если вы использовали диск в массиве рейдов mdadm ... Я должен был обобщить комментарий. В любом случае, это слабый ответ, потому что я не нашел способа аккуратно отредактировать метаданные.

person Modular    schedule 16.01.2017
comment
Лучше, чем ничего, по крайней мере, ты сможешь уйти от всего этого. Здесь (serverfault.com/questions /297029/) — это обсуждение, связанное с (BSD) метаданными меток разделов ZFS, которые могут представлять интерес. Суть их вывода такова: ZFS поддерживает 4 метки с метаинформацией о разделе, а HPA не позволяет ZFS видеть две верхние. Еще раз поздравляю с решением этой проблемы. - person airhuff; 16.01.2017
comment
Я пытался использовать zpool labelclear -f /dev/sda, но это не сработало, снова возникла та же ошибка. Вероятно, единственный надежный способ - обнулить весь диск. - person CMCDragonkai; 16.12.2018