ext4 파티션과 파일 시스템을 확장하는 방법?


44

320GB ext4 파티션이있는 400GB 디스크가 있습니다. 왼쪽 공간 (80GB의 여유 공간)을 사용하도록 ext4 파티션을 늘리고 싶습니다.

+--------------------------------+--------+
|             ext4               |  Free  |
+--------------------------------+--------+

어떻게해야합니까?

사람들이 사용하는 것을 보았지만 resize2fs파티션 크기를 조정하는지 이해할 수 없습니다.

다른 해결책은 사용하는 fdisk것이지만 파티션을 삭제하고 데이터를 잃고 싶지 않습니다. 파일을 잃지 않고 어떻게 파티션을 확장 할 수 있습니까?

참고 : LVM이없는 마운트 해제 된 데이터 파티션에 대해 이야기하고 있으며 백업이 있지만 복구에 시간을 소비하고 싶지 않습니다.


이 유형의 질문은 내가 알고있는 여러 번 묻고 대답했습니다. 여기에 기록 보관소를 문의 했습니까?
mdpc

답변:


45

마운트 해제 된 파티션으로 시작해야합니다. 마운트를 해제 할 수없는 경우 (예 : 루트 파티션이거나 시스템을 실행해야하는 경우) System Rescue CD 와 같은 것을 사용하십시오.

  1. 를 실행 parted하거나 gpartedGUI를 선호하는 경우 추가 공간을 사용하도록 파티션 크기를 조정하십시오. 나는 gparted당신이 당신의 질문에서 그린 것과 매우 유사한 멋진 그래픽 표현을 제공하기 때문에 선호 합니다.

  2. resize2fs /dev/whatever

  3. e2fsck /dev/whatever (당신이 안전한면에 있는지 확인하기 위해)

  4. 파티션을 다시 마운트하십시오.

이 실패를 본 적이 없지만 먼저 데이터를 백업하십시오!


5
resize2fs매뉴얼 페이지 말한다 : 파일 시스템이 장착되어있는 경우,이 커널에서 지원하는 온라인 크기 조정을 가정하고이 파일 시스템을 마운트의 크기를 확장하는 데 사용할 수 있습니다. (이 글을 쓰는 시점에서 Linux 2.6 커널은 ext3 및 ext4를 사용하여 마운트 된 파일 시스템의 온라인 크기 조정을 지원합니다.) 그러나 거의 실행되지 않는 코드를 실행하는 동안 커널이 쉽게 정지되거나 충돌하여 파일 시스템의 상태가 나빠질 수 있으므로 마운트 된 파일 시스템의 크기를 조정하는 것이 더 위험한 작업입니다.
200_success

1
사실이지만 파일 시스템이 마운트 된 파티션 테이블을 엉망으로 만들고 싶지 않습니다. 그래서 fs를 마운트 해제 한 상태로 시작했습니다.
Flup

1
ext4의 경우, resize4fs대신 RHEL 5에 있을 수 있습니다 .
Zac Thompson

1
루트 파일 시스템으로 파티션을 확장 1.하면 시작 섹터 번호를 변경하지 않는 한 제대로 작동 합니다. 2.다음 단계를 수행하기 전에 파티션 테이블을 변경 한 후 재부팅합니다.
kasperd

parted는 CentOS 6에서 ext4 파티션의 크기 조정을 거부합니다.
reinierpost

21

예, 파티션을 이미 정렬 한 경우 온라인으로 EXT4 fs를 늘릴 수 있습니다. 파티션을 정렬 했습니까? LVM이 있습니까?

sudo resize2fs /dev/drive_to_grow

fdisk파티션의 크기를 조정하면 true이지만 루트 파티션 (또는 실제로 마운트 된 파티션 인 경우)을 먼저 마운트 해제해야합니다. 오프라인 일 가능성이 높습니다!

디스크 / fs 작업과 관련된 모든 항목과 마찬가지로 백업 및 테스트되고 이해하기 쉬운 복구 프로세스를 사용하는 것이 좋습니다.


사용하는 fdisk경우 반드시 GPT가 아닌 MBR을 사용하십시오 (예 : 하이브리드 MBR 사용).
stek29

2
내 데비안 젠 서버에서 나는 내 논리 볼륨 크기를 조정 lvextend +40G /dev/vg0/volumeName한 후 VM의 루트로 로그인하고 입력, 실행중인 루트 파일 시스템 성장 새로운 최대로합니다. 이것이 필요한지 확실하지 않지만이 작업 후에 vm을 재부팅했습니다. 다 괜찮아 보인다. resize2fs /dev/xvda2
rubo77

1
@ rubo77 아니요, 재부팅 할 필요가 없습니다.
Chris

5

일부 VDS 서버에서는 기본이 아닌 루트 파티션이있을 수 있으며 확장 파티션 컨테이너의 크기를 먼저 조정해야합니다.

예를 들어, 방금 계획을 업그레이드했으며 다음과 같은 것이 있습니다.

Disk /dev/vda: 83886080s
Number  Start    End        Size       Type      File system  Flags
1      2048s    194559s    192512s    primary   ext2         boot
2      196606s  51197951s  51001346s  extended
5      196608s  51197951s  51001344s  logical   ext4

여기 / dev / vda2-확장 컨테이너입니다. / dev / vda5-사용 가능한 전체 공간으로 크기를 조정해야하는 주 파티션입니다.

가장 간단한 방법 :

apt-get -y install parted
parted /dev/vda unit s print all # print current data for a case
parted /dev/vda resizepart 2 yes -- -1s # resize /dev/vda2 first
parted /dev/vda resizepart 5 yes -- -1s # resize /dev/vda5
partprobe /dev/vda # re-read partition table
resize2fs /dev/vda5 # get your space

정말 도움이 된 것은 END음수로 설정할 수 있다는 것을 알았습니다 . 일반적으로 크기가 조정 된 파티션의 정확한 Linux 크기를 모릅니다 . END인수 를 설정하는 방법을 모릅니다 resizepart. 이를 설정하면 -1s파티션의 크기가 최대로 조정됩니다.
srigi

오류 : 잘못된 토큰 -1
starbeamrainbowlabs

3

Centos의 ext4에서는 Parted가 작동하지 않습니다. fdisk를 사용하여 파티션을 삭제하고 다시 만들어야했는데, 데이터를 잃지 않고 작동했습니다. http://geekpeek.net/resize-filesystem-fdisk-resize2fs/ 의 단계를 수행했습니다 . 여기에 간단히 말해서 :

$ sudo fdisk /dev/sdx 
> c
> u
> p
> d
> p
> w
$ sudo fdisk /dev/sdx 
> c
> u
> p
> n
> p
> 1
> (default)
> (default)
> p
> w

1
서버 결함에 오신 것을 환영합니다! 링크 부패를 방지하기 위해 답변 자체의 단계를 요약하십시오.
200_success

이 프로세스를 사용했지만 파티션을 만드는 데 gdisk를 사용했습니다. 이를 통해 데이터를 저장하고 2TB보다 큰 파티션을 만들 수있었습니다.
pcnate

2

parted캔의 resize파티션과 파일 시스템.


고마워, 나는 그래픽을 사용하고 있었고 파티션 크기 조정을 지원하지 않습니다. cli 프로그램에서 옵션을 보았지만 데이터를 잃지 않고 확실하게 사용하는 방법을 알려주시겠습니까? 에서 resize NUMBER START END,있는 시작 및 종료 섹터 번호? 내가 어떻게 알 겠어?
mimipc

파티션 크기 조정과 같은 위험한 작업을 수행하기 전에 항상 데이터를 백업하는 것이 좋습니다. parted예를 들어, s섹터 B또는 GB바이트, %장치 크기의 백분율 및 cyl실린더에 접미사를 사용하는 등의 단위 선택을 지원합니다 .
200_success

2

당신이 사용할 수있는 fdisk또는 cfdisk파티션을 수정 (또는 재 작성) (단지 당신이 그 시작의 경계를 변경하지 않습니다 수), 다음 재부팅 resize2fs. 그러나 일반적으로 MBR / GPT 대신 LVM-2를 사용하는 것이 좋습니다. 커널 재부팅없이 이러한 변경 사항을 가져올 수 있습니다.


1

이 스레드를 여전히 읽고있는 사람을 위해 어떻게 해야하는지 명확히하기 위해.
크기를 조정하려는 부팅 파티션 인 경우 Live Linux에 해당하는 bootcd 또는 bootusb "rescue"드라이브에서 부팅해야합니다. 이를 통해 변경하려는 드라이브가 아닌 다른 시스템에서 Linux를 실행할 수 있습니다.

이 경우 가장 좋은 "rescue"cd 또는 usb
는 복구 가능한 이미지가 필요한 부팅 가능한 gparted USB 또는 CD 케이스
라고 생각합니다.
sda1 = 부팅 (또는 스왑)
sda2 = 스왑 (또는 부팅)
sda3 = /
사용되지 않은 공간

  1. 확장 할 파티션이 마지막 파티션이 아닌 경우 gparted 부팅 이미지를 사용하여 파티션을 이동하거나 크기를 조정해야합니다.
    sda1 = 부팅
    sda2 = / (확장 할 파티션이 마지막이 아닙니다)
    sda3 =
    사용되지 않은 공간 교체

다른 파티션 인 / home과 같이 "루트"파티션 (/)이 아닌 마운트 된 파티션을 변경하려면 복구 이미지를 사용할 필요가 없습니다. 마지막 파티션 인 경우 특히 그렇습니다.
sda1 = 부팅
sda2 = /
sda3 = / home
미사용 공간
-또는
-sda1 = /
sda2 = / home
미사용 공간

더 작은 드라이브 또는 SSD에서 이미지를 가져 와서 더 큰 SSD로 옮길 때의 상황입니다.

이 경우 확장하는 동안 / home을 마운트 해제하면됩니다. 그러나 / home을 마운트 해제하려면 홈 디렉토리가있는 사용자 계정으로 로그인하지 않아야합니다. "root"사용자의 홈 디렉토리는 / root에서와 같이 시스템 루트 / 바로 아래에 있으므로 root에 로그인 할 수 있으면 / home을 마운트 해제 할 수 있습니다.

GUI (KDE / Gnome / etc) 세션에서 로그 아웃하고 [CTRL] + [ALT] + [F1]을 사용하여 쉘 세션을 불러옵니다.
사용자 로그인에서 방금 로그 아웃 한 경우, 파일 닫기를 완료하는 데 Linux에서 20-30 초가 걸릴 수 있으므로 / mount를 마운트 해제하는 중에 오류가 발생할 수 있습니다.
1. umount / home (이 명령이 최대 30 초 동안 실패하면 다시 시도한 다음 다른 세션을보고 어딘가에서 "cd / home / xxx"인지 확인하십시오.)
2. parted / dev / sda
a. x 크기 조정 (x = 크기를 조정하려는 파티션, "p"를 사용하여 파티션 목록을 가져옴)
b. 크기 조정의 마지막 섹터 입력 = "-1"(마이너스 1은 디스크 끝에서 1 섹터를 의미 함)
c. q (부분적으로 종료 됨)
3 resize2fs / dev / sda "x"(x = 크기를 조정할 파티션. 파일 시스템도 다시 마운트합니다)
4. df -m (/ home을 검사하여 크기를 재조정했는지 확인)
이 방법으로 파일을 잃어 버리거나 드라이브를 손상시키지 않았습니다.

행운을 빕니다


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