Пул ZFS с двумя дисками, второй диск перезаписан данными. Как восстановить / скопировать данные обратно на второй диск?

Данные на первом диске не повреждены, второй диск - "UNAVAIL". Причина перезаписи - отсутствие концентрации при применении команды dd ...

Команда

sudo zpool replace -f hgst 4596995095197485503 / dev / sdd

Дает

недопустимую спецификацию vdev второй диск - "UNAVAIL". Причина перезаписи - отсутствие у меня концентрации при применении команды dd ... Команда sudo zpool replace -f hgst 4596995095197485503 /...

Данные на первом диске не повреждены, второй диск - "UNAVAIL". Причина перезаписи - отсутствие концентрации при применении команды dd ...

Команда

sudo zpool replace -f hgst 4596995095197485503 / dev / sdd

Дает

недопустимую спецификацию vdev второй диск - "UNAVAIL". Причина перезаписи - отсутствие у меня концентрации при применении команды dd ... Команда sudo zpool replace -f hgst 4596995095197485503 /...

Данные на первом диске не повреждены, второй диск - "UNAVAIL". Причина перезаписи - отсутствие концентрации при применении команды dd ...

Команда

sudo zpool replace -f hgst 4596995095197485503 / dev / sdd

Дает

недопустимую спецификацию vdev следующие ошибки необходимо исправить вручную: / dev / sdd1 является частью активного пула hgst

Я отключил диск и удалил разделы с помощью Gparted. После перезагрузки они снова появились, и команда zpool replace не работала.

Команда

dd if = / dev / zero of = / dev / sdd bs = 1M count = 2 seek = 2048

и

dd if=/dev/zero of=/dev/sdd bs=512 seek=$(( $(blockdev --getsz /dev/sdd) - 1 )) count=1

тоже не помогли.

Команда sudo zpool labelclear / dev / sdd , а затем zpool replace -command дал

cannot replace 4596995095197485503 with /dev/sdd: /dev/sdd is busy

Занято также командой

sudo zpool replace -f hgst 4596995095197485503 / dev / disk / by-id / ata-HGST_HDN724030ALE640_PK2238PJ3G3E

zpool status

2
задан 23 May 2017 в 22:46
3 ответа

Я отключил диск

zpool offline hgst /dev/disk/by-id/ata-HGST_HDN724030ALE640_PK2238P3G3E0MJ

Отсоединил диск

zpool detach hgst 4596995095197485503

Чистая этикетка

zpool labelclear -f /dev/disk/by-id/ata-HGST_HDN724030ALE640_PK2238P3G3E0MJ

К обратной стороне диска

zpool присоединить hgst ata-HGST_HDN724030ALE640_PK2238P3G3E3UJ /dev/disk/by-id/ata-HGST_HDN724030ALE640_PK2238P3G3E0MJ

И вот теперь происходит ресеверсия.

NAME                                         STATE     READ WRITE CKSUM
hgst                                         ONLINE       0     0     0
  mirror-0                                   ONLINE       0     0     0
    ata-HGST_HDN724030ALE640_PK2238P3G3E3UJ  ONLINE       0     0     0
    ata-HGST_HDN724030ALE640_PK2238P3G3E0MJ  ONLINE       0     0     0  (resilvering)
2
ответ дан 3 December 2019 в 08:45

Я бы использовал следующие команды:

zpool detach hgst <corrupted_device>
zpool attach -f hgst <online_device> <new_device>

(проверьте пул людей , чтобы убедиться)

Используйте добавление пула осторожно, потому что вы легко получите полосатый пул вместо зеркала!

2
ответ дан 3 December 2019 в 08:45

Ну, это было зеркало, поэтому кажется, что вам просто нужно воссоздать таблицу разделов и разделы правильного размера на очищенном диске, добавить его, а затем удалить оставлено после записи.

Эта команда добавит новое устройство в зеркало

zpool add hgst mirror good_device_name new_device

И удалит старое устройство

zpool remove hgst old_device_id

Или за один шаг

zpool replace hgst old_device_id new_device

Ссылки

PS Убедитесь, что у вас есть хорошая проверенная внешняя резервная копия, потому что вы не хотите усугублять ситуацию.

5
ответ дан 3 December 2019 в 08:45

Теги

Похожие вопросы