Дано: FreeBSD 13, SATA диск ada0 256гб, GPT загрузчик, файловая система ZFS
Задача: перенести систему на новый диск побольше размером, SSD M.2 1Тб, nvd0
Решение в четыре шага, для диска большего размера:
Лучше сделать инструментами самой ZFS, но я пока не смог осилить её. Вот такой нашел путь в обход:
- Перенести данные(в однопользовательском режиме):
dd if=/dev/ada0 of=/dev/nvd0
(по USB много времени займет у меня за 12часов ~48гб перетекло, по SATA на порядок быстрее будет) - Восстановить загрузчик
newfs_msdos -F16 /dev/nvd1p1
mount -t msdosfs /dev/nvd1p1 /mnt
mkdir -p /mnt/efi/boot
cp /boot/loader.efi /mnt/efi/boot/bootx64.efi
umount /mnt - Привести к актуальному состоянию fstab:, В однопользовательском режиме:
mount -u / zfs mount -a
теперь можно редактировать и сохранять fstab(здесь заменил ada0 на nvd0).
- Посмотрим, что сейчас на диске с разметкой(gpart show):
[root@server /home/user]# gpart show
=> 40 1953525088 nvd0 GPT (932G) [CORRUPT]
40 532480 1 efi (250M)
532520 1024 2 freebsd-boot (512K)
533544 984 - free - (492K)
532520 2097152 3 freebsd-swap (2.0G)
2097698 92274109 4 freebsd-zfs (231G)
Исправить ошибки в разметке и растянуть ее на весь диск:
gpart recover nvd0
gpart part resize -i 4 nvd0 [root@server /home/user]# gpart show => 40 1953525088 nvd0 GPT (932G) 40 532480 1 efi (250M) 532520 1024 2 freebsd-boot (512K) 533544 984 - free - (492K) 532520 2097152 3 freebsd-swap (2.0G) 2097698 92274109 4 freebsd-zfs (231G) 94371807 31457273 - free - (899G)
5. Осталось растянуть ZFS пул на весь диск
проверяем
zpool list
растягиваем:
zpool set autoexpand=on zroot online -e zroot nvd0p4 zpool set autoexpand=on zroot
Проверяем:
zpool list
Готово!
Довольны?
[Оценок: 1 средняя: 2]