Времени свободного, как раз, не много, ну а остальное - личное дело каждого.
Собственно, перенос системы, вроде как провел на днях.Напишу по памяти алгоритм, для закрепления:). Хотя может в цифрах где и ошибусь.
Может кому пригодится. Проверьте сам принцип
Решил, что утилиты tar, cpio, rsync, оставлю про запас, если не получится с dump/restore
Удаляем предыдущее, создаем схему, делим диск на разделы и создаем фс :
1. gpart destroy -F /dev/twed0 - удаление MBR и винды.
2. gpart create -s GPT -n 128 /dev/twed0 - создаем схему.
-n - планировал задать 8, но по спецификации мин 128. К сожалению.
3. gpart add -t freebsd-boot -b 40 -s 512kb -l nsboot /dev/twed0 - раздел загрузчика.
gpart bootcode -b /boot/pmbr -p /boot/nsboot -i 1 /dev/twed0 - загрузчики MBR и /boot.
gpart add -t freebsd-swap -b (*) -s 8392mb -l nswap /dev/twed0 - раздел swap
* Смещение предыдущего раздела, в блоках, + 180224 блока. Чтобы получилось симпатичное сито:)
....
gpart add -t freebsd-ufs -b 109563904 -s 20264mb -l nsusr /dev/twed0 - раздел usr
4. newfs /dev/twed0p3(4,5,6,7,8)
Потом, загружаем Single User Mode и меняем режим доступа, к корневому разделу, на rw
(Хотя тут, можно было, примонтировать /tmp, наверно), для работы dump|restore pipeline.
mount -u /
Т.к. корень SRC, уже готов(удалил еще .snap, на всяк случай, чтобы dump не ругался), то
Монтируем корень DST диска в /mnt/root, переходим в cd /mnt/root и проводим dump | restore:
dump -0 -L -C 16 -r -f - /dev/ada0p2 | restore -r -f -
И раздел перенесен.
Остальные разделы точно таким же способом: Сначала монтируем SRC, потом монтируем DST,
во временный каталог, переходим в него и выпоняем dump|restore.
А вот в usr разделе , нужно вынести /home, в отдельный раздел. Опять же, по хэндбуку:
Монтируем раздел DST usr, в /mnt/usr, а раздел DST home - в /mnt/usr/home. Переходим в /mnt/usr,
выполняем
dump -0 -L -C 16 -r -f - /dev/ada0p6 | restore -r -f -
и старый /usr/home SRC, должен выдавиться в новый /mnt/usr/home DST .
Потом поправил /mnt/root/etc/fstab и загрузился :) Ошибок вроде не заметил.
Т.е. метод подходит и для переезда в менее емкий диск. Хотя еще досконально не проверял...
А кстати, как можно проверить целостность ФС, после переноса? fsck, еще не делал, но может
что-то еще
Получилось так:
gpart show -l -p
=> 34 154007485 twed0 GPT (73G)
34 6 - free - (3.0k)
40 1024 twed0p1 nsboot (512k)
1064 48088 - free - (23M)
49152 17375232 twed0p2 nswap (8.3G)
17424384 180224 - free - (88M)
17604608 3301376 twed0p3 nsroot (1.6G)
20905984 180224 - free - (88M)
21086208 10698752 twed0p4 nstmp (5.1G)
31784960 180224 - free - (88M)
31965184 7143424 twed0p5 nsvar (3.4G)
39108608 180224 - free - (88M)
39288832 15675392 twed0p6 nspool (7.5G)
54964224 180224 - free - (88M)
55144448 54239232 twed0p7 nshome (25G)
109383680 180224 - free - (88M)
109563904 41500672 twed0p8 nsusr (19G)
151064576 2942943 - free - (1.4G)
=> 34 625142381 ada0 GPT (298G)
34 1024 ada0p1 exbootfs (512k)
1058 8388608 ada0p2 exrootfs (4.0G)
8389666 12582912 ada0p3 exswapfs (6.0G)
20972578 37748736 ada0p4 exvarfs (18G)
58721314 37748736 ada0p5 exvarfs (18G)
96470050 528482304 ada0p6 exusrfs (252G)
624952354 190061 - free - (92M)
-----
mount
/dev/twed0p3 on / (ufs, local)
devfs on /dev (devfs, local)
/dev/twed0p5 on /var (ufs, local)
/dev/twed0p4 on /tmp (ufs, local)
/dev/twed0p8 on /usr (ufs, local)
/dev/twed0p7 on /usr/home (ufs, local)
/dev/twed0p6 on /sdvol (ufs, local)
-----
df -h
Filesystem Size Used Avail Capacity Mounted on
/dev/twed0p3 1.5G 329M 1.1G 23% /
devfs 1.0k 1.0k 0B 100% /dev
/dev/twed0p5 3.3G 51M 3G 2% /var
/dev/twed0p4 5G 34M 4.5G 1% /tmp
/dev/twed0p8 19G 2.9G 14G 16% /usr
/dev/twed0p7 25G 1.2G 21G 5% /usr/home
/dev/twed0p6 7.2G 12k 6.7G 0% /sdvol
-----
По ходу переноса usr раздела, DUMP выдал сообщение. Не помню точно,но примерно такое:
DUMP:(пустое место) is not a directory. Dumping downgraded. ...
И перенос 6 гиг, занял минут 30-40 наверно. По завершении, выдал скорость 1186(примерно)кб.
В чем может быть причина?