Как клонировать и расширить на новый диск в FreeBSD?

Как клонировать и расширить на новый диск в FreeBSD?

Сервер под управлением FreeBSD находится в эксплуатации примерно с 2004 года. Недавно произошел сбой в подаче электроэнергии, и при перезагрузке отображается сообщение об ошибке «...файловая система заполнена».

Он был на диске 40 ГБ с тех пор, взял 1 ТБ, чтобы заменить его. Скопировал диск с помощью dd, затем попробовал Gparted, но он, похоже, не распознает файловую систему.

Вопрос — как проще всего клонировать старый диск и изменить размер разделов, чтобы использовать все пространство нового диска?

решение1

Вам нужно использовать gpart(не gparted) для создания разделов, а затем поместить файловую систему на новый раздел с помощью newfs. Затем используйте dump | restoreили rsyncдля копирования данных на новый диск. Наконец, используйте , gpartчтобы убедиться, что на диске есть загрузочный код. Подробнее см. на страницах руководства по этим командам.

Примечание, учитывая вопрос, я предполагаю, что ОС не обновлялась с 2004 года и больше не поддерживается и не получает обновлений безопасности. Так что на самом деле вам лучше установить новую систему на новый диск, а затем использовать dump | restoreили rsyncили cpвручную скопировать соответствующие данные на новый диск. Я не рекомендую возвращать ОС 2004 года в эксплуатацию.

решение2

Я только что сделал это, хотя и на диск того же размера с немного меньшей файловой системой /. Я почти уверен, что процедура будет работать и с большим диском.

# newdisk=ada1
# echo $newdisk
ada1
# gpart create -s GPT $newdisk
# gpart add -t freebsd-boot -i 1 -a 4K -s 512K -l gptboot ${newdisk}
ada1p1 added
# gpart bootcode -p /boot/gptboot -i 1 ${newdisk}
partcode written to ada1p1
# gpart add -t freebsd-ufs -a 4K -s 70G -i 2 -l fbsdroot $newdisk
ada1p2 added
# gpart add -t freebsd-swap -a 4K -i 3 -l fbsdswap $newdisk
ada1p3 added
# gpart show
=>       34  156249933  ada0  GPT  (75G)
         34       1024     1  freebsd-boot  (512K)
       1058  148896768     2  freebsd-ufs  (71G)
  148897826    7352140     3  freebsd-swap  (3.5G)
  156249966          1        - free -  (512B)

=>       40  156301408  ada1  GPT  (75G)
         40       1024     1  freebsd-boot  (512K)
       1064  156300384     2  freebsd-ufs  (75G)

=>       40  156301408  diskid/DISK-5JVD21RN  GPT  (75G)
         40       1024                     1  freebsd-boot  (512K)
       1064  146800640                     2  freebsd-ufs  (70G)
  146801704    9499744                     3  freebsd-swap  (4.5G)
# newfs -U /dev/ada1p2
...
# mkdir /mnt/newsys
Reboot system into single-user mode; it should come up read-only
# mount /dev/ada1p2 /mnt/newsys
# cd /mnt/newsys
dump -0 -f - /dev/ada0p2 | restore -r -Dv -f -

Мой оригинальный системный диск имел невосстановимые плохие блоки; новый sys чист. Мне повезло, так как плохие блоки были в неиспользуемых файлах в /var/db/freebsd-update/files/, и весь этот каталог больше не нужен (резервная копия с обновления системы 6 месяцев назад).

Связанный контент