[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