FreeBSD에서 부팅 드라이브의 사용되지 않은 공간을 활용하는 방법

FreeBSD에서 부팅 드라이브의 사용되지 않은 공간을 활용하는 방법

저는 오래된 FreeBSD 서버(7.3-RELEASE 실행)를 가지고 있고 추가 저장 공간이 절실히 필요합니다. 실제로 일부 기능이 있습니다. 원래의 20G SCSI 드라이브는 300G SCSI 드라이브로 대체되었으므로 이론상으로는 여전히 280G를 사용할 수 있습니다.

이 공간을 활용하고 싶습니다. 가장 좋은 방법은 사용되지 않는 공간을 기존 드라이브의 새 슬라이스로 포맷하는 것이라고 생각하지만 기존 슬라이스의 데이터를 삭제하지 않고 이 작업을 수행하는 방법은 확실하지 않습니다. 이 작업을 수행하면서 찾을 수 있는 대부분의 문서는 초기 설치에 대해 다루고 있습니다. 초기 설치 중에 슬라이스와 파티션을 설정하는 방법을 알고 있지만 초기 설치 후 드라이브에서 사용되지 않은 공간을 확보하는 방법은 모릅니다.

(슬라이스를 확장하고 기존 슬라이스에 추가 파티션을 추가하고 싶지만 이것이 더 위험하다고 들었습니다.)

이를 수행하는 쉬운 방법은 을 사용하는 것이라고 생각했지만 /stand/sysinstall구성->FDisk 또는 구성->탭으로 이동하면 다음 메시지가 나타납니다.

No disks found!  Please verify that your disk controller is being
properly probed at boot time.  See the Hardware Guide on the
Documentation menu for clues on diagnosing this type of problem.

이 메시지를 받았을 때 실제로 디스크가 부족했기 때문에 이것은 확실히 잘못된 것입니다. 하지만 sysinstall이 부팅 디스크를 조작하는 것을 좋아하지 않는 것일 수도 있습니다.

출력 fdisk da0:

******* Working on device /dev/da0 *******
parameters extracted from in-core disklabel are:
cylinders=2235 heads=255 sectors/track=63 (16065 blks/cyl)

Figures below won't work with BIOS for partitions not in cyl 1
parameters to be used for BIOS calculations are:
cylinders=2235 heads=255 sectors/track=63 (16065 blks/cyl)

Media sector size is 512
Warning: BIOS sector numbering starts with sector 1
Information from DOS bootblock is:
The data for partition 1 is:
sysid 165 (0xa5),(FreeBSD/NetBSD/386BSD)
    start 63, size 35905212 (17531 Meg), flag 80 (active)
        beg: cyl 0/ head 1/ sector 1;
        end: cyl 1023/ head 254/ sector 63
The data for partition 2 is:
<UNUSED>
The data for partition 3 is:
<UNUSED>
The data for partition 4 is:
<UNUSED>

산출bsdlabel da0s1

# /dev/da0s1:
8 partitions:
#        size   offset    fstype   [fsize bsize bps/cpg]
  a:  2097152        0    4.2BSD     2048 16384    89
  b:  2097152  2097152      swap
  c: 35905212        0    unused        0     0         # "raw" part, don't edit
  e:  2097152  4194304    4.2BSD     2048 16384    89
  f: 29613756  6291456    4.2BSD     2048 16384    89

고쳐 쓰다:

나는 이 목적으로 Sade를 사용하자는 제안에 동의하지 않습니다. 불행히도 Thad에는 공백이 많이 표시되지 않습니다.

         0         63         62        -     12     unused        0
        63   35905212   35905274    da0s1      8    freebsd      165
  35905275      10501   35915775        -     12     unused        0

이것은 막 다른 골목 일 수 있습니다. 어떻게든 드라이브 구조를 알아내야 합니까? 드라이브는 RAID 1 미러링 세트라고 언급할 수 있습니다. 원래 미러링된 드라이브는 모두 20G SCSI 드라이브였지만 이제는 300G 드라이브로 교체되었습니다. 도움이 된다면 일시적으로 거울을 깨뜨릴 의향이 있습니다.

답변1

20GB 디스크! ? 16GB 또는 32GB USB 썸 드라이브를 구입하세요. 상자에 연결합니다(/dev/daN으로 마운트됩니다(N은 사용하지 않는 다음으로 낮은 da 장치입니다). sysinstall을 사용하여 USB 드라이브를 하나의 큰 파티션으로 포맷하고 전체 디스크를 썸 드라이브에 복사합니다. 편집증이 있고 다른 백업이 없으면 2개의 썸 드라이브를 사용할 수 있습니다):

sysinstall (configure -> fdisk & label)
cd /mnt/root
dump -0aL -f - / | restore xf -

그런 다음 /mnt/root/etc/fstab을 편집하여 다음 fstab 항목을 사용하여 썸 드라이브를 부팅하도록 FreeBSD에 지시합니다:

/dev/da0s1a /   ufs ro   1  1

BIOS가 USB 이동식 미디어에서 부팅하도록 구성된 경우 다음 재부팅 시 썸 드라이브에서 부팅됩니다. 그렇지 않은 경우 BIOS 설정을 변경하거나 메인 디스크의 /etc/fstab을 편집하여 썸 드라이브에서 부팅할 수 있습니다. 이제 완전하고 검증된 백업이 있으므로 RAID BIOS로 이동하여 볼륨을 삭제하고 새(더 큰) 볼륨을 생성합니다. 그런 다음 표준 FreeBSD 유틸리티를 사용하여 새 볼륨을 포맷할 수 있습니다.

답변2

따라서 오래된 디스크를 교체할 때 기본적으로 dd를 사용하여 기존 디스크 전체를 새 디스크에 복사하는 것처럼 들립니다. 그러므로 또 다른 fdisk 파티션인 da0s2를 생성한 다음 그 안에 또 다른 BSD 파티션인 da0s2a를 배치할 수 있어야 합니다. 이 작업을 수행하려면 sysinstall이나 sade 대신 geom을 사용하겠습니다. 출력을 표시할 수 있다면 gpart list아마도 새 파티션을 만드는 과정을 안내해 드릴 수 있을 것입니다. 물론 백업 등은 꼭 해주세요.

물론 더 나은 접근 방식은 9.1로 업그레이드하고 파티션을 확장한 다음 성장을 사용하여 기존 FS를 확장하여 새 디스크 공간이 동일한 FS에 속하도록 하는 것입니다. (보통 나는 별도의 /var 및 /usr을 사용하여 작업을 약간 분리하는 것을 좋아하지만 요즘 대부분의 사람들은 그렇게 하지 않으며 그 크기의 디스크에서는 약간 번거로울 수 있습니다. (물건이 저장되어 있는 곳) 관리하다.

(아, 가장 좋은 것은 ZFS로 전환하는 것이겠지만 시스템에 20GB 디스크가 있다면 아마도 32비트이고 RAM이 많지 않기 때문에 ZFS에는 이상적이지 않을 것입니다... )

편집: 거울에 관한 부분을 완전히 놓쳤습니다. 예, 거울을 깨는 것도 이를 달성하는 한 가지 방법일 수 있습니다. 하드웨어 RAID 이미지입니까, 아니면 소프트웨어 RAID 이미지입니까?

관련 정보