FreeBSD에서 새 디스크를 복제하고 확장하는 방법은 무엇입니까?

FreeBSD에서 새 디스크를 복제하고 확장하는 방법은 무엇입니까?

FreeBSD를 실행하는 서버는 2004년경부터 생산되었습니다. 최근 정전이 발생하여 재부팅 시 "...파일 시스템이 꽉 찼습니다"라는 오류 메시지가 표시되었습니다.

당시에는 40GB 드라이브에 있었지만 나중에 교체하기 위해 1TB 드라이브를 사용했습니다. dd를 사용하여 드라이브를 복사한 다음 Gparted를 시도했지만 파일 시스템을 인식하지 못하는 것 같습니다.

질문 - 기존 드라이브를 복제하고 새 드라이브의 전체 공간을 사용하도록 파티션 크기를 조정하는 가장 쉬운 방법은 무엇입니까?

답변1

gpart(gparted 아님)을 사용하여 파티션을 만든 다음 newfs.then을 사용하거나 dump | restorersync디스크에 데이터를 복사해야 합니다 . 마지막으로 gpart부팅 코드가 드라이브에 있는지 확인하는 데 사용됩니다. 자세한 내용은 해당 명령에 대한 매뉴얼 페이지를 참조하십시오.

하지만 이 문제를 고려할 때 OS는 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 -

원래 시스템 디스크에는 복구할 수 없는 불량 블록이 있었는데 새 시스템은 매우 깨끗합니다. 운이 좋았던 것은 불량 블록이 /var/db/freebsd-update/files/의 사용되지 않은 파일에 있었고 전체 디렉토리가 더 이상 필요하지 않았기 때문입니다(6개월 전 시스템 업데이트에서 백업).

관련 정보