Перенос FreeBSD на другой диск
Если Вам необходимо перенести FreeBSD на другой жесткий диск, сделать копию, либо изменить размеры разделов, то эта инструкция Вам поможет
Итак, для начала допустим, что рабочая система у нас – /dev/ad0 (мастер-устройство на первом канале IDE), а второй НЖМД – /dev/ad2. Посмотреть, под какими именами устройства расположились в вашей системе можно с помощью команды dmesg. Обязательно уточните имена устройств перед выполнением нижеуказанных команд, иначе Вы рискуете уничтожить информацию на рабочем диске!!!
Сначала уничтожим старую таблицу разделов на /dev/ad2 (первую дорожку, 63 сектора, перезапишем 0ми):
> sudo dd if=/dev/zero of=/dev/ad2 bs=512 count=63
Затем создаем новую таблицу разделов с единственным слайсом FreeBSD ad2s1 на весь диск и поместить загрузочный код в первый сектор диска:
> sudo fdisk -B -I -v /dev/ad2
Хотелось бы напомнить, что в терминологии FreeBSD слайсами называется то, что разделами называлось в DOS и Windows. Слайсы представлены в системе блочными устройствами вида /dev/ad2s1, /dev/ad2s2, и так далее. Типичная установка FreeBSD использует один слайс и создает внутри него BSD-style разделы с помощью утилиты bsdlabel (в более ранних версиях – disklabel). Разделы 1ого слайса, например, представлены блочными устройствами /dev/ad2s1a, /dev/ad2s1b, и т. д.
Стало быть, необходимо теперь разместить в слайсе разделы. Сначала создадим разделы по умолчанию:
> sudo bsdlabel -Bw /dev/ad2s1
Затем отредактируем:
> sudo bsdlabel -e /dev/ad2s1
При этом увидим что-то вроде:
# /dev/ad2s1: 8 partitions: # size offset fstype [fsize bsize bps/cpg] a: 390720929 16 unused 0 0 c: 390720945 0 unused 0 0 # "raw" part, don't edit
Видим, что мы имеем слайс размером с весь диск. Мы можем редактировать, добавляя новые лейблы. При этом offset можно не считать, а заменять * для размещения разделов сразу с начала свободного места. Диск c: редактировать не нужно, он указывает на весь слайс (так исторически сложилось). Изначально все размеры и смещения в секторах, однако можно использовать суффиксы M для указания в мегабайтах, и G – соотв-но, в гигабайтах.
Допустим мы хотим сделать такую разбивку:
/ 700Mb
swap 1Gb
/var 2Gb
/usr 25Gb
/data все оставшееся
Нужно привести к такому виду:
# size offset fstype [fsize bsize bps/cpg] a: 700M * 4.2BSD 0 0 0 b: 1G * swap c: 390720945 0 unused 0 0 # "raw" part, don't edit d: 2G * 4.2BSD 0 0 0 e: 25G * 4.2BSD 0 0 0 f: * * 4.2BSD 0 0 0
Теперь осталось создать необходимые файловые системы на этих разделах. Для этого существует команда newfs. Чтобы создать UFS2, нужно ей дать ключик -O 2, а чтобы разрешить механизм SoftUpdates (не рекомендуется на корневом разделе; можно позднее изменить через tunefs).
> sudo newfs -O 2 /dev/ad2s1a
> sudo newfs -O 2 -U /dev/ad2s1d
> sudo newfs -O 2 -U /dev/ad2s1e
> sudo newfs -O 2 -U /dev/ad2s1f
Все, новый диск готов! Осталось лишь перенести файлы с помощью dump и restore. Лучше всего это делать, перезагрузившись в single-user режим.
Для каждого раздела поочередно делаем dump и restore, в примере показан перенос с /dev/ad0s1a на /dev/ad2s1a:
# mount /dev/ad2s1a /mnt
# cd /mnt
# dump -L0af - /dev/ad0s1a | restore -rf -
# cd /
# umount /mnt
Процесс достаточно длительный – зависит от кол-ва заполненного пространства на разделе и скорости ваших дисков, так что наберитесь терпения!
Нет комментариевНет комментариев, вы будете первым :)
Оставить комментарий