서버에서 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/sda4및 delete파티션 을 선택할 수 있습니다 . 그 자리에 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.