Перенос содержимого с одного винта на другой в FreeBSD

Все растет, все меняется… Когда то для нормальной работы сервера хватало с головой жесткого диска объемом 4Ггб,
потом 40 Ггб, 400Ггб. Сейчас найти винт размером меньше терабайта уже сложно. И каждый раз когда нужно увеличить
размер винта встает вопрос — как наиболее корректно перенести содержимое старого жесткого диска на новый.
Вариантов не так и много. Сегодня речь пойдет об утилите под названием clonehdd которая имеется в стандартной поставке FreeBSD

Цепляем новый диск на свободный шлейф (ни каких предварительных манипуляций с винтом, вроде форматирования, делать не нужно
Дальше определяем название винтов. Вариантов множество. Например запускаем утилиту sysinstall -> Configure -> Label
Видим следующую картину:

[ ] ada0 ada0
[ ] ada1 ada1

Теперь смотрим /var/log/messages на предмет наличия ada0 и ada1
В нашем случае картина примерно следующая:

Jun 13 11:07:58 router kernel: ada0 at ata2 bus 0 scbus0 target 0 lun 0
Jun 13 11:07:58 router kernel: ada0: ATA-8 SATA 2.x device
Jun 13 11:07:58 router kernel: ada0: 300.000MB/s transfers (SATA 2.x, UDMA5, PIO 8192bytes)
Jun 13 11:07:58 router kernel: ada0: 476940MB (976773168 512 byte sectors: 16H 63S/T 16383C)
Jun 13 11:07:58 router kernel: ada0: Previously was known as ad4
Jun 13 11:07:58 router kernel: ada1 at ata3 bus 0 scbus1 target 0 lun 0
Jun 13 11:07:58 router kernel: ada1: ATA-7 SATA 2.x device
Jun 13 11:07:58 router kernel: ada1: 300.000MB/s transfers (SATA 2.x, UDMA5, PIO 8192bytes)
Jun 13 11:07:58 router kernel: ada1: 610480MB (1250263728 512 byte sectors: 16H 63S/T 16383C)
Jun 13 11:07:58 router kernel: ada1: Previously was known as ad6

итак видим, исходный винт ad4, конечный ad6

Теперь все необходимые данные для начала процедуры у нас имеются.

Если порт не стоит, идем
#cd /usr/ports/sysutils/clonehdd
#make && make install && make clean

Утилита готова к работе
Формат команды такой: откуда — куда — размер свапа, т.е. в нашем случае команда будет выглядеть так:
# clonehdd -src=ad4 -dst=ad6 -swap=4096

Приятная особенность данной программы в том что в случае если новый винт больше старого, она, программа, сама
увеличивает старые разделы пропорционально общей емкости винта.

Clone parameters:
Source partition: /dev/ad4
Dest partition: /dev/ad6
Swap size: 4096 MB
Safe dumping: Disabled
Clone parameters:
Fstab device name: ad4

[OK] Found devices for clone procedure
[OK] DST partitions are not in use

Source partition
/usr size: 452307MB, used: 87784MB
/var size: 4659MB, used: 38MB
/ size: 495MB, used: 390MB
/tmp size: 495MB, used: MB
Total: 457959 MB, used: 88214 MB

[OK] Device ad6 has enough free space
DATA ON DEVICE ad6 WILL BE DESTROYED NOW!
Continue? [yes/no]: yes
Wait 10 seconds before start: 10 9 8 7 6 5 4 3 2 1
[OK] Device /dev/ad6 made clean
[OK] New slice created

Destination device partitions:
SWAP size: 4096 MB
/ size 656 MB
/tmp size 656 MB
/var size 6170 MB
/usr size 598901 MB

[INF] Last partition were increased for 3 blocks
[OK] Partitions were created successfully

[OK] Partition /tmp was formatted successfully
Starting dump/restore procedure… [OK]

[OK] Partition /var was formatted successfully
Starting dump/restore procedure…

Дожидаемся окончания работы, меняем винты местами и радуемся жизни.