ZFS раздел потерял UUID / PARTUUID

0

У меня есть NAS с 4TB HDD с 2 разделами: один подкачка и другой ZFS. Второй раздел исчез с NAS и не указан в blkid или / dev / *. gparted распознает раздел как / dev / sdb2, но у него нет UUID, поэтому zpool не может его импортировать.

Я попытался клонировать начало жесткого диска на меньший (dd для копирования первых 40 ГБ, sgdisk для копирования таблицы разделов). Второй раздел теперь отображается в / dev / sdc2 и имеет UUID (ожидаемый), но у него нет PARTUUID. zpool import теперь может распознавать этот второй клонированный диск, но выдает ошибку ввода-вывода, когда я пытаюсь импортировать его.

zdb -l / dev / sdc2 показывает 'путь: / dev / gptid / db7d4921-d920-1le4-9dd6-00138f6f9938', который должен быть разделом PARTUUID, но blkid не показывает PARTUUID в / dev / sdc2.

Можно ли как-то установить UUID / PARTUUID раздела первого диска на ожидаемый?

Хосе Ребело
источник

Ответы:

1

Вы можете просматривать и манипулировать GUID (то, что многие инструменты Linux называют «PARTUUID») с помощью gdiskи sgdisk. Например:

$ sudo sgdisk -i 1 /dev/sde
Partition GUID code: C12A7328-F81F-11D2-BA4B-00A0C93EC93B (EFI System)
Partition unique GUID: C697EE49-9430-46C5-B090-0423DA7A6FFF
First sector: 40 (at 20.0 KiB)
Last sector: 409639 (at 200.0 MiB)
Partition size: 409600 sectors (200.0 MiB)
Attribute flags: 0000000000000000
Partition name: 'EFI System Partition'

В этом примере GUID ( Partition unique GUID) раздела отображается как C697EE49-9430-46C5-B090-0423DA7A6FFF. iВариант в gdiskпоказах и та же информация. Вы можете установить его на определенное значение с sgdisk«S -uварианта, как:

$ sudo sgdisk -u 1:BB193EE0-3544-449A-935A-41B215819992 /dev/sde

1:Ведущий GUID это номер раздела. Вы можете сделать то же самое gdisk, используя cопцию в меню экспертов.

Род Смит
источник
Спасибо, что сделали трюк для / dev / sdc2. Однако пул все еще не может быть импортирован, поэтому проблема должна быть в другом месте. Я попытаюсь получить еще один диск объемом 4 ТБ, чтобы я мог его клонировать и провести более разрушительное тестирование. Буду обновлять, если я что-нибудь узнаю.
Хосе Ребело
Возможно, вам придется настроить GUID для других разделов и / или для всего диска. Вы можете установить все-диск с GUID sgdisk«s -Uвариант; или вы можете рандомизировать все GUID диска с помощью -Gопции. Проверьте sgdiskстраницу руководства для деталей.
Род Смит
0
  1. попробуй импортировать -a. Если это не удается, проверьте файл кеша.

  2. Проверьте файл zpool.cache, если он у вас есть, возможно, вы сможете разобрать на нем какой-нибудь текст, чтобы увидеть, содержит ли он информацию о вашем пуле. вселяя надежду здесь.

  3. Теперь посмотрите, есть ли у него информация об устройстве для каждого диска, это может помочь вам в поиске дисков.

  4. Проверьте таблицы разделов, убедитесь, что они хороши, используйте fdisk -lи или gdisk.

Если вы смонтировали их слабо, у вас может быть простой переключатель при перезагрузке, например, /dev/sdaс например, /dev/sdbкоторый убьет весь массив, пока эта буква снова не станет прямой. (по этой причине не создавайте пулы, подобные этому). Создайте их резервные копии (таблицы), особенно если они заявляют, что они плохие. Вы можете использовать testdisk или разрешить gdisk восстановить раздел, позволив ему выбрать то, что он считает правильным.
После восстановления таблиц разделов ваш zpool.cache снова распознает ваш массив, а затем снова сможет импортировать его, после чего после перезагрузки обновления таблиц разделов вы просто импортируете правильный путь.zpool import <poolname>

Предложение 1: (для будущих пользователей) Если у вас есть набор данных, никогда не думайте, что данные находятся под угрозой, zfs - чрезвычайно надежная и сильная система. В худшем случае вы можете использовать dev-мод zfs и отключить импортные проверки, чтобы импортировать ваш пул в некоторых случаях.

Предложение 2: (для будущих пользователей) При создании пулов попробуйте использовать идентификатор диска при монтировании. /dev/disk-by-id/xxx

Брайан Томас
источник