FreeBSD: переносим файлы ОС с одного диска на другой
Что есть: диск с установленным на него ОС FreeBSD Что нужно: перенести файлы на второй диск, чтобы можно было загрузиться со второго диска
Подготовка
1. Монтируем файловые системы на исходном диске и диске назначения по вашему вкусу.
- 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 <путь к файлу с флагами> )
Это собственно все. Надеюсь, основная идея была понятной. Если нет, то смотрим ссылки, там все разжевано.
Обсуждение