Содержание

FreeBSD: переносим файлы ОС с одного диска на другой

Что есть: диск с установленным на него ОС FreeBSD Что нужно: перенести файлы на второй диск, чтобы можно было загрузиться со второго диска

Подготовка

1. Монтируем файловые системы на исходном диске и диске назначения по вашему вкусу.

Если файловая система - zfs, то могут сильно помочь команды:
  • zpool import -f -R /mnt <имя пула>

где ключи:

  • -f - форсированное монтирование
  • -R - монтировать файловые системы ZFS по указанному пути

а также:

  • mount -t zfs <имя пула zfs> <точка монтирования>

Эта команда позволит смонтировать корневую файловую систему zfs, которая по-умолчанию не монтируется командой zpool import.

2. Далее переносим с помощью tar исходные файлы на диск назначения. К примеру, в /mnt/source у нас смонтирована исходная файловая система, в /mnt/destination - файловая система назначения. Тогда:

cd /mnt
# tar -C source -cf - . | tar -C target -xvf -
с помощью ключа -X мы можем указать tar, какие файлы не нужно копировать. Пример: -X /tmp/xlist

3. Это еще не все. Нам нужно перенести специальные флаги. Идея такая: снимаем информацию по флагам в отдельный файл с исходных файлов, и основываясь на этой информации, применяем флаги к скопированным данным. Вот как это можно сделать:

# cd /mnt/source
# mtree -c > <файл с флагами>
# ( cd /mnt/destination ; mtree -deU -f <путь к файлу с флагами> )

Это собственно все. Надеюсь, основная идея была понятной. Если нет, то смотрим ссылки, там все разжевано.

Ссылки

TAG: