Копирование (клонирование) диска FreeBSD

В одно прекрасное солнечное утро раздался гневный звонок с жалобой на "тормоза интернета", за ним еще и еще один. Чтож, ничего больше не оставалось делать, как открыть глаза, скинуть ноги со стола и сонно смотреть что творится на шлюзе. 

Консоль -

tail -n30 /var/log/messages 
сразу выдал - 
Sep 18 03:08:20 testvpn kernel: ad0: TIMEOUT - READ_DMA retrying (1 retry left) LBA=122406015
Sep 18 03:11:11 testvpn kernel: ad0: FAILURE - READ_DMA status=51<READY,DSC,ERROR> 
error=40<UNCORRECTABLE> LBA=115634239
Sep 18 03:11:11 testvpn kernel: g_vfs_done():ad0s1f[READ(offset=47981985792, length=16384)]
error = 5
Sep 18 03:27:39 testvpn kernel: ad0: FAILURE - READ_DMA status=51<READY,DSC,ERROR> 
error=40<UNCORRECTABLE> LBA=121652927
О чем это говорит? Правильно, о том что винт посыпался .....  
 
Машинка старая, винт IDE на 120 гигов. Порывшись в своих запасах, винта не нашел, пришлось заказывать, а пока загрузился в однопользовательском режиме, fsck вроде исправил ошибки. На всякий случай (на случай перезагрузки сервера) добавил в rc.conf  провреку диска при загрузке -
#FSCK
background_fsck="NO"
fsck_y_enable="YES"
 
На момент прихода нового винта, сервер уже еле дышал, хотя всего неделя прошла.
Итак ставим новый винт параллельно старому.
Винт несколько больше (на 160 Гб), но это нам только лучше.
Просматриваем разделы старого диска и создаем такие же (подобные) на новом -
 
df -h

Filesystem     Size    Used   Avail Capacity  Mounted on
/dev/ad0s1a    1.9G    207M    1.6G    11%    /
devfs          1.0K    1.0K      0B   100%    /dev
/dev/ad0s1d    989M     24K    910M     0%    /tmp
/dev/ad0s1f     98G     14G     76G    15%    /usr 
/dev/ad0s1e    3.9G    1.9G    1.7G    54%    /var
 
Для создания новых разделов и разметки диска можно использовать fdisk и disklabel, но проще sysinstall.
Итак запускаем sysinstall - Configure - Fdisk
 
Выбираем новый винт -
 
Создаем раздел - Нажимаем А, т.к. мы будем использовать весь диск, Нажимаем S - делаем загрузочным, W - сохраняем изменения и Q - выход
 

Выбираем Standart в окне выбора boot-менеджера

 

Далее переходим в раздел Label и создаем разделы, подобные разделам на старом винте (С - создать) - 
 
 
Убираем точки монтирования M и сохраняем W
 

Q - Выход.

После чего создаем файловые системы на созданных разделах
#newfs /dev/ad1s1a
/dev/ad1s1a: 4000.0MB (8192000 sectors) block size 16384, fragment size 2048
using 22 cylinder groups of 183.77MB, 11761 blks, 23552 inodes. 
super-block backups (for fsck -b #) at: 
 160, 376512, 752864, 1129216, 1505568, 1881920, 2258272, 2634624, 3010976,  3387328, 3763680, 
4140032, 4516384, 4892736, 5269088, 5645440, 6021792,  6398144, 6774496, 
7150848, 7527200, 7903552 
#newfs /dev/ad1s1d 
#newfs /dev/ad1s1e
 и т.д.
 
Монтируем вновь созданный раздел
>mount /dev/ad1s1e /mnt
И делаем "копию" - 
 
/mnt/>dump -f- /var | restore -rf-
DUMP: WARNING: should use -L when dumping live read-write filesystems!
DUMP: Date of this level 0 dump: Tue Oct 18 11:42:14 2011
DUMP: Date of last level 0 dump: the epoch
DUMP: Dumping /dev/ad0s1d (/tmp) to standard output
DUMP: mapping (Pass I) [regular files]
DUMP: mapping (Pass II) [directories]
DUMP: estimated 120 tape blocks.
DUMP: dumping (Pass III) [directories]
DUMP: dumping (Pass IV) [regular files]
warning: ./.snap: File exists
DUMP: DUMP: 102 tape blocks
DUMP: finished in less than a second
DUMP: DUMP IS DONE
 
Так проделываем для каждого раздела (кроме swap и tmp).
После копирования всех разделов, выключаем сервер, отключаем старый винчестер и грузимся с нового. Ура, все работает!

Системное администрирование

Интересное на сайте: 
0
Голосов пока нет

Комментарии

Так-так-так, теперь понятно, почему сеть тормозит. У спящего-то админа! :-Р

У спящего админа ничего не тормозит, т.к он спит ;)

Пра-а-а-авильно, и все процессы у него запущены в режиме ожидания и только подкорка головного мозга потихоньку стрекочет, записывая бэк-апы. Правда некоторые несознательные гражданочки утверждают, что это храп, но мы-то знаем!... )))

оО
ещё фдиск кто то юзает?
в общем тут весь процесс установки
h_ttp://www.dtulyakov.org.ua/content/freebsd-9-gpt-ufs

/bin/dd if=/dev/zero of=/dev/ada1 bs=1024k count=10
/sbin/gpart create -s gpt ada1
/sbin/gpart add -b 34 -s 64k -t freebsd-boot ada1
/sbin/gpart add -s 2G -t freebsd-swap -l swap0 ada1
/sbin/gpart add -t freebsd-ufs -l root0 ada1
/sbin/gpart bootcode -b /boot/pmbr -p /boot/gptboot -i 1 ada1
/sbin/newfs -U /dev/gpt/root0
и всё можно в фстабе привязаться к /dev/gpt/root0 а не к /dev/ada1s1 и тд (не паримся при смене места в иде)