[freebsd] zfs import
Nick Kostirya
nick at i11.co
Tue Jun 14 13:32:07 EEST 2022
On Tue, 14 Jun 2022 01:44:22 +0700
Eugene Grosbein <eugen at grosbein.net> wrote:
> 13.06.2022 22:57, Nick Kostirya via freebsd пишет:
> > On Mon, 13 Jun 2022 18:39:41 +0300
> > Владимир Друзенко via freebsd <freebsd at uafug.org.ua> wrote:
> >> Nick Kostirya via freebsd писал(а) 2022-06-13 17:52:
> >>>
> >>> Вопрос про zfs. FreeBSD 13.1
> >>> Есть диск с zfs (созданный bsdinstall).
> >>> Затем добавили еще диск с целью перенести на нее систему, а второй
> >>> оставить для разных больших файлов.
> >>> Загрузился с флешки и bsdinstall создал на весь диск zfs и установил.
> >>> В биосе сказал грузиться с нового диско, но FreeBSD все равно
> >>> грузиться со старого диска.
>
> Не надо было так делать. Есть гораздо более простой и быстрый путь:
> добавить второй диск в существующий пул командой zpool attach poolname old_device new_device
>
> Это делает пул зеркалом. Надо дождаться окончания зеркалирования данных,
> проверяя прогресс командой zpool status. Затем можно удалить старый диск из пула
> командой zpool detach.
>
> Предварительно почитать man zpool-attach и man zpool-detach.
> Важно не спутать с командой zpool add, которая тоже добавляет диск в пул,
> но делает из пула не зеркало, а аналог gconcat, когда объём пула становится
> суммарным объёмом двух дисков, данные распределяются по всему объёму и такой
> пул уже невозможно разобрать потом, только через спасение данных и уничтожение пула целиком.
>
> >>> Что еще нужно подкрутить?
> >>
> >> Название рутового пула случайно не одинаковое?
> >
> > Ой, оба из под bsdinstall, значит одинаковые. А как выкрутиться в этой ситуации?
> >
> > Читаю про ZFS: все про зеркала рассказывают...
> > А как же поступают в такой ситуации: вставил диск с другой компьютера что-бы данные скопировать?
>
> У пулов кроме имени есть уникальные ID, импортировать пул с тем же именем можно вручную по ID.
> man zpool-import.
Импортировать по ID получилось, если загрузиться с install флешки.
А при загрузке с диска один пулл, наверное, ложиться поверх второго.
Когда их назвал разными именами, то при загрузке импортировался только пулл с диска, с которого шла загрузка.
Почему, если имена совпадаю, загрузчик лезет в другой диск - не понятно.
Далее возник вопрос, как добраться до данных второго диска.
Некоторые каталоги оказываются пустые, например /usr/local/
# zpool import -N tank
# zfs list
tank 743M 107G 96K /zroot
tank/ROOT 740M 107G 96K none
tank/ROOT/default 740M 107G 740M /
tank/tmp 120K 107G 120K /tmp
tank/usr 484K 107G 96K /usr
tank/usr/home 196K 107G 196K /usr/home
tank/usr/ports 96K 107G 96K /usr/ports
tank/usr/src 96K 107G 96K /usr/src
tank/var 648K 107G 96K /var
tank/var/audit 96K 107G 96K /var/audit
tank/var/crash 96K 107G 96K /var/crash
tank/var/log 160K 107G 160K /var/log
tank/var/mail 104K 107G 104K /var/mail
tank/var/tmp 96K 107G 96K /var/tmp
# mount -t zfs tank/ROOT/default /mnt
# ll /mnt/usr/local/
total 0
# umount /mnt
# mount -t zfs tank/usr /mnt
# ll /mnt/
total 0
Почем так не понятно.
More information about the freebsd
mailing list