Dump / Restore – перенос системы на диск большего размера
Система – FreeBSD 12.2. Старый диск 1Т (ada0), новый 2Т (ada1).
Выключаем сервер, подключаем диск.
Загружаемся и смотрим
# geom disk list Geom name: ada0 Providers: 1. Name: ada0 Mediasize: 1000204886016 (932G) Sectorsize: 512 Stripesize: 4096 Stripeoffset: 0 Mode: r6w6e11 descr: TOSHIBA DT01ACA100 lunid: 5000039feff42490 ident: 671PPX9MS rotationrate: 7200 fwsectors: 63 fwheads: 16 Geom name: ada1 Providers: 1. Name: ada1 Mediasize: 2000398934016 (1.8T) Sectorsize: 512 Mode: r0w0e0 descr: HGST HUS722T2TALA604 lunid: 50014ee26929ff50 ident: WCC6N4ZFKK8H rotationrate: 7200 fwsectors: 63 fwheads: 16
# gpart show => 40 1953525088 ada0 GPT (932G) 40 1024 1 freebsd-boot (512K) 1064 2096120 2 freebsd-ufs (1.0G) 2097184 16777216 3 freebsd-swap (8.0G) 18874400 4194304 4 freebsd-ufs (2.0G) 23068704 209715200 5 freebsd-ufs (100G) 232783904 44040192 6 freebsd-ufs (21G) 276824096 1676701031 7 freebsd-ufs (800G) 1953525127 1 - free - (512B)
# df -h Filesystem Size Used Avail Capacity Mounted on /dev/ada0p2 992M 256M 656M 28% / devfs 1.0K 1.0K 0B 100% /dev /dev/ada0p4 1.9G 517M 1.3G 28% /tmp /dev/ada0p5 97G 8.7G 80G 10% /usr /dev/ada0p6 20G 5.3G 13G 28% /home/svm /dev/ada0p7 774G 148G 626G 19% /var
Будем создавать, точно такую схему разделов, за исключением раздела var, он получиться на новом диске намного больше.
Удаляем разметку на всякий случай
# gpart destroy -F ada1 ada1 destroyed
Создаем разметку GPT
# gpart create -s gpt ada1 ada1 created
Пишем загрузчик
# gpart add -b 40 -s 512k -t freebsd-boot ada1 ada1p1 added
# gpart bootcode -b /boot/pmbr -p /boot/gptboot -i 1 ada1 partcode written to ada1p1 bootcode written to ada1
Создаем корневой раздел
# gpart add -t freebsd-ufs -s 1g ada1 ada1p2 added
Создаем swap
# gpart add -s 8g -t freebsd-swap ada1 ada1p3 added
Создаем последовательно другие разделы. Разделу ada1p7 (var) отдаем все оставшееся место
# gpart add -t freebsd-ufs -s 100g ada1 ada1p5 added # gpart add -t freebsd-ufs -s 21g ada1 ada1p6 added # gpart add -t freebsd-ufs ada1 ada1p7 added
Проверяем
# gpart show => 40 1953525088 ada0 GPT (932G) 40 1024 1 freebsd-boot (512K) 1064 2096120 2 freebsd-ufs (1.0G) 2097184 16777216 3 freebsd-swap (8.0G) 18874400 4194304 4 freebsd-ufs (2.0G) 23068704 209715200 5 freebsd-ufs (100G) 232783904 44040192 6 freebsd-ufs (21G) 276824096 1676701031 7 freebsd-ufs (800G) 1953525127 1 - free - (512B) => 40 3907029088 ada1 GPT (1.8T) 40 1024 1 freebsd-boot (512K) 1064 2097152 2 freebsd-ufs (1.0G) 2098216 16777216 3 freebsd-swap (8.0G) 18875432 4194304 4 freebsd-ufs (2.0G) 23069736 209715200 5 freebsd-ufs (100G) 232784936 44040192 6 freebsd-ufs (21G) 276825128 3630204000 7 freebsd-ufs (1.7T)
Форматируем
# newfs -U /dev/ada1p2 # newfs -U /dev/ada1p4 # newfs -U /dev/ada1p5 # newfs -U /dev/ada1p6 # newfs -U /dev/ada1p7
Так как это почтовый сервер, остановим сервисы во избежание коллизий.
# service postfix stop # service dovecot stop # service apache24 stop
Приступаем к dump/restore
# mount /dev/ada1p2 /mnt # cd /mnt # dump -0 -f - /dev/ada0p2 | restore -r -f - # umount /mnt
# mount /dev/ada1p4 /mnt # cd /mnt # dump -0 -f - /dev/ada0p4 | restore -r -f - # umount /mnt
# mount /dev/ada1p5 /mnt # cd /mnt # dump -0 -f - /dev/ada0p5 | restore -r -f - # umount /mnt
# mount /dev/ada1p6 /mnt # cd /mnt # dump -0 -f - /dev/ada0p6 | restore -r -f - # umount /mnt
# mount /dev/ada1p7 /mnt # cd /mnt # dump -0 -f - /dev/ada0p7 | restore -r -f - # umount /mnt
Так как делаю удаленно, то правлю fstab, старый диск отключу потом, как ни будь. Сперва на новом диске правим
# mount /dev/ada1p2 /mnt && cd /mnt # ee /etc/fstab # Device Mountpoint FStype Options Dump Pass# /dev/ada0p2 / ufs rw 1 1 /dev/ada0p3 none swap sw 0 0 /dev/ada0p4 /tmp ufs rw 2 2 /dev/ada0p5 /usr ufs rw 2 2 /dev/ada0p6 /home/svm ufs rw 2 2 /dev/ada0p7 /var ufs rw 2 2
меняем ada0 на ada1
# umount /mnt
И на старом, должно получиться везде примерно так
# cat /etc/fstab # Device Mountpoint FStype Options Dump Pass# /dev/ada1p2 / ufs rw 1 1 /dev/ada1p3 none swap sw 0 0 /dev/ada1p4 /tmp ufs rw 2 2 /dev/ada1p5 /usr ufs rw 2 2 /dev/ada1p6 /home/svm ufs rw 2 2 /dev/ada1p7 /var ufs rw 2 2
# reboot
Все заняло по времени – 5,5 часов.