서버에서 GUI를 사용하지 않고 명령 줄을 사용하여 파티션 크기를 조정하는 방법은 무엇입니까?


44

터미널을 통해서만 서버에 액세스 할 수 있으며 GParted와 같은 그래픽 도구를 사용할 수 없습니다!
스왑을 위해 루트 부분 (약 768mb)에서 새 파티션을 만들고 싶습니다.

# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda         20G  1.3G   18G   7% /
udev             10M     0   10M   0% /dev
tmpfs           199M  4.9M  194M   3% /run
tmpfs           100M   12K  100M   1% /run/user
tmpfs           5.0M  4.0K  5.0M   1% /run/lock

답변:


36

저장 장치의 파티션이 마운트되어 있으면 파티션을 축소 / 편집 할 수 없습니다. 따라서 루트 파일 시스템을 마운트 해제하고 편집하려면 OS를 종료해야합니다. 그런 다음 라이브 시스템으로 부팅하고 다른 답변에서 설명한대로 파티션을 편집하십시오.

대체 솔루션 : 스왑 파일

전체 파티션을 만드는 대신 스왑 파일을 사용하면 크기다양 하게 변경할 수 있으며 전체적으로 더 쉽게 제거 할 수 있습니다. 스왑 파일은 핫 플러그 ​​가능 합니다. 즉, OS를 마운트 해제 / 끄지 않고 추가하거나 제거 할 수 있습니다.

  1. 라는 512MB 파일을 만듭니다 /swapfile. 이것이 스왑 파일입니다.

    fallocate -l 512M /swapfile  
    

    또는

    dd if=/dev/zero of=/swapfile bs=1M count=512
    
  2. 세계가 읽을 수있는 스왑 파일이 큰 로컬 취약점이기 때문에 올바른 권한을 설정하십시오.

    chmod 600 /swapfile
    
  3. 올바른 크기의 파일을 만든 후 스왑하도록 포맷하십시오.

    mkswap /swapfile
    
  4. 스왑 파일을 활성화하십시오.

    swapon /swapfile
    
  5. /etc/fstab스왑 파일에 대한 항목을 편집 하고 추가하십시오.

    /swapfile none swap defaults 0 0
    

arch linux wiki 에서 자세한 내용을 확인하십시오 .


나는 이것이 가장 쉽고 효율적인 답변이라고 생각합니다 =)! 파티션 대신 파일을 사용하는 데 영향이 있습니까?
Alaa Ali

2
파일이 조각난 경우 성능이 약간 저하됩니다. 연속 스왑 파일 또는 파티션에 대한 성능 이점은 없으며 둘 다 동일한 방식으로 처리됩니다.
totti

1
이것이 최선의 해결책이라고 생각합니다. 파티션 (테이블)을 포맷, 축소 또는 변경하지 않기 때문에 데이터 손실의 위험이 없습니다.
R110

27

우선 루트 파티션을 사용하는 경우 크기를 줄이면 크기를 조정할 수 없다는 것을 알아야합니다 (온라인 축소라고 함). 온라인에서만 자랄 수 있습니다. 이것은 resize2fs명령에 의해 지원됩니다 . 다음을 가정하겠습니다.

  • 루트 파티션에서 정보를 잃고 싶지 않습니다.
  • LiveCD를 사용하기 위해 하드 드라이브에 물리적으로 액세스 할 수 없습니다. 이것은 가상 환경이나 원격 환경에 적용될 수 있습니다. 가상 가상 디스크의 경우 VM을 LiveCD에서 부팅하도록 설정 한 경우 LiveCD에서 부팅을 계속 관리 할 수 ​​있습니다. 이것은 VM이 Gparted 앱을 실행하여 쉽게 크기를 조정할 수있는 데스크탑 GUI 출력을 지원한다고 가정합니다. 그러나 이것이 가능성이 적기 때문에 나는 당신이 할 수 없다고 가정합니다.

크기를 조정할 수있는 파티션에는 LVM 파티션 또는 은하 생성 이후 온라인 크기 조정 (축소 / 성장)을 지원하는 논리 볼륨 관리자 파티션과 대부분의 표준 파티션이 있습니다. 완전한 온라인 크기 조정 (Shrink / Grow)을 거의 100 % 지원하는 유일한 것은 btrfs 파일 시스템입니다 (여전히 개발 중임). 우리 대부분이 ext4 파일 시스템에서 사용하는 일반 파티션을 수행하는 방법을 설명하겠습니다.

파티션 크기 조정 (성장)

파티션을 늘리려면 루트 마운트로 파티션을 확장 할 수 있습니다. 이렇게하려면 다음을 수행하십시오.

sudo resize2fs /dev/sda1

빈 공간을 병합 할 준비가 이미되어 있다면 나중에 변경 사항을 올바르게 적용하려면 재부팅을 권장합니다. 위의 명령은 허용되는 최대 크기로 조정됩니다. 특정 크기로 크기를 조정하려면 끝에 크기를 추가하십시오.

sudo resize2fs /dev/sda1 25G

25.4GB를 지정하려면 "."을 사용할 수 없습니다. 한 측정 단위를 내려야합니다. 이 경우 GB에서 MB까지이므로 다음과 같습니다.

sudo resize2fs /dev/sda1 25400M

이 방법으로 25.4G의 파티션을 갖게됩니다

파티션 크기 조정 (축소)

파티션 축소는 다음과 같은 2 단계 프로세스입니다.

  • 필요한만큼 파일 시스템의 크기를 줄입니다.
  • 파일 시스템의 크기와 일치하도록 기본 블록 장치의 크기를 줄입니다.

파일 시스템의 용량을 줄이기 전에 블록 장치의 크기를 줄여야합니다 (파티션 또는 논리 볼륨 일 수 있음). ext * 파일 시스템에서는 사용할 수 없으므로 500MB 스왑 시스템을 만들기 위해 20GB에서 19.5GB로 축소 할 수 없습니다.

Ext4조차도 온라인 축소를 지원하지 않습니다. 시도하면 다음과 같은 결과가 나타납니다.

여기에 이미지 설명을 입력하십시오

내가 아는 한 귀하의 유일한 내기 :

  • 동일한 Ubuntu 버전을 동일한 서버 (다른 파티션)에 설치 한 다음 원래 Ubuntu 서버의 루트 파티션을 축소하는 데 사용할 수 있습니다.

  • 실제로 원하는 크기로 Ubuntu 서버를 처음부터 설치하십시오.

  • Ubuntu Server Live Image를 사용하여 파티션 크기를 조정하십시오. 이 경우 다음 화면으로 이동해야합니다.

    여기에 이미지 설명을 입력하십시오

    위의 이미지와 같이 크기 조정 옵션을 선택하십시오. 여기에서 새로운 크기를 선택할 수 있습니다. 여기에서 장치를 마운트 해제하고 원하는 경우 축소 할 수 있습니다.

추가 도움으로 여기에 gparted 파일 시스템 지원 http://gparted.org/features.php 가 있습니다.이 파일 시스템 은 지원되는 항목에 대한 자세한 목록을 제공하며 전체 크기 조정이 가능한 경우를 포함합니다. Btrfs가 그 중 하나입니다.


온라인 축소를 지원하는 다른 파일 시스템이 있습니까? zfs 또는 btrfs일까요?
Seth

하단에 링크를 추가했습니다. 파일 시스템이 온라인에서 올바르게 크기를 조정하려면 커널도이를 지원해야합니다.
Luis Alvarado

vmware 컴퓨터에 우분투 서버가 있고 디스크 크기는 120G입니다. 그러나 첫 번째 솔루션을 사용한 후이 오류가 발생합니다. 파일 시스템의 길이는 이미 27262720 블록입니다. 할 것이 없다!
Dr.jacky

1
@ Mr.Hyde 감사합니다. Workstation 10과 11에는 몇 가지 문제가있었습니다. 12를 추천하고 Ubuntu의 경우 몇 가지 문제가 있기 때문에 최신 LTS 또는 최신 LTS로 업데이트합니다. 필자의 경우 VMware 워크 스테이션 12.0.1 및 Ubuntu 15.10 64 비트가 있습니다.
Luis Alvarado

3
resize2fs 맨 페이지에서 :The resize2fs program does not manipulate the size of partitions.
ACK_stoverflow

6

답은 파티션을 마운트 해제하여 축소 할 수 있는지 여부에 따라 다릅니다. 귀하의 경우에는 파티션을 마운트 해제 할 수 없습니다. Linux (UNIX / MAC OS)에서 파티션을 마운트 한다는 것은 파일 시스템을 사용하고 마운트 지점에 매핑하는 것입니다 (필요한 경우 /). 마운트 해제 는 파일 시스템 사용을 중지하고 마운트 지점에 대한 맵핑을 제거함을 의미합니다. 실행중인 OS가 포함 된 파일 시스템을 마운트 해제 할 수 없습니다.

파티션을 마운트 해제 할 수있는 경우

/dev/sda4마운트 된 200GB ext4 파티션을 축소한다고 가정합니다 /data. 현재 음악 및 영화 등이 포함되어 있으므로 일시적으로 마운트를 해제 할 수 있습니다. 4GB 스왑을 생성하려고합니다.

sudo umount /dev/sda4

파티션을 마운트 해제합니다.

sudo resize2fs /dev/sda4 196G

충분한 공간이 있다고 가정하고 ext4 파일 시스템의 크기를 196GB로 조정합니다. 이제 파티션을 축소해야합니다. 나는 현재 cfdisk기존 파티션을 삭제하고 그 대신 작은 파티션을 다시 만들어야한다고 생각합니다. 그런 다음 스왑을 위해 새 파티션을 만들 수도 있습니다.

sudo cfdisk /dev/sda 

파티션 테이블을 검사하는 텍스트 기반 GUI를 제공합니다. print이 시점에서 파티션 테이블을 파일이나 화면으로 옮기고 현재 구성을 백업으로 기록해 두는 것이 좋습니다 . 그런 다음 /dev/sda4delete파티션 을 선택할 수 있습니다 . 그 자리에 free space표시됩니다. 사용은 new그 자리에 196 GB의 새 파티션을 만들고, ext4에의 유형을 설정합니다. 그런 다음 후행 여유 공간으로 이동하여 유형이 4GB 인 스왑 파티션을 만듭니다 swap. 참고 : 나는 현재 명령을 가지고 놀 수 없기 때문에 이러한 명령을 테스트하지 않았습니다 /.

파티션을 마운트 해제 할 수없는 경우

마운트 된 ext3 / 4 파티션을 축소 할 수 없습니다 (맨 페이지 참조 resize2fs). 에서 OS를 실행하고 있으면 /마운트를 해제 할 수 없습니다 /. 즉, 변경을 수행하려면 다른 OS (예 : USB 키)를 부팅해야합니다.

귀하의 경우, 원격 서버 (KVM의 경우)이므로 USB / 라이브 OS 이미지에서 부팅하지 못할 수 있습니다. 관리 GUI를 통해 vServer Provider에서 파티셔닝을 변경하는 다른 방법이있을 수 있습니다. 나는 그것이 당신의 최선의 방법이라고 생각합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.