데비안에서 ext4 파티션 크기를 확장하는 방법


26

이 구성의 드라이브가 있습니다.

fdisk -l

Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x000f1b8b

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1        2612    20971520   83  Linux
/dev/sda3           60736       60801      525312   82  Linux swap / Solaris

478GB의 할당되지 않은 공간이 있는데 현재 / dev / sda1에있는 데이터를 잃지 않고이 공간을 / dev / sda1에 추가하는 방법은 무엇입니까? (파일 시스템은 ext4입니다).

참고 : gparted와 같은 작업을 수행하기위한 GUI가없는 SSH 만있는 서버입니다.


드라이브를 마운트 해제 한 상태에서 서버를 넷 부트하여 사용할 수 있습니다.
Seb

이 특정 항목은 SE 사이트 내에서 여러 번 다루어졌습니다. 질문을 게시하기 전에 조금 더 연구하는 것이 가장 좋습니다.
mdpc

또한 askubuntu.com/a/937351/621883을 참조하십시오 . 특히 growpart 및 resize2fs를 포함하는 답변이 유용했습니다.
klor

답변:


38

파티션을 확대하십시오 fdisk -u /dev/sda..

p 파티션 테이블을 인쇄하려면 sda1의 숫자, 시작, 끝, 유형을 기록하십시오.

삭제 : d:

같은 수 (1)로 시작, 시작 및 입력하지만 이 더 큽니다 (다른 파티션과 겹치지 않도록주의). end를 위한 메가 바이트 단위로 항목을 맞추고 2048에서 1을 배수로 만드십시오. 필요한 경우 유형을 변경하십시오 t( extX또는 btrfs파일 시스템을 보유한 파티션의 경우 기본값 83은 괜찮음).

그런 다음 글 w을 작성하고 q종료합니다.

파티션 테이블이 수정되었지만 일부 파티션이 마운트되어 있으므로 커널에서이를 고려할 수 없습니다.

그러나 사용중인 파티션이 확대 된 경우에만 다음을 사용하여 커널이 새 레이아웃을 갖도록 할 수 있어야합니다.

partx /dev/sda

실패하면 다시 부팅해야합니다. 시스템이 정상적으로 부팅되어야합니다.

그런 다음 파일 시스템의 크기를 조정하여 확대 된 파티션까지 확장하십시오.

resize2fs /dev/sda1

어떤 위해 ext4도 라이브 FS에서 잘 작동합니다.


나는 이것이 오래된 것을 알고 있지만 파티션을 삭제하면 데이터가 유지됩니까?
Canadian Luke REINSTATE MONICA

3
@CanadianLuke, 예. fdisk에서 파티션을 삭제하면 파티션 테이블 만 수정됩니다. 같은 크기로 다시 만들면 전혀 변경되지 않습니다. 파티션을 축소하고 파티션이 있던 중간에 다른 논리 또는 확장 파티션을 만들지 않으면 데이터가 변경되지 않습니다.이 경우 해당 확장 / 논리 파티션의 파티션 레코드가 일부 데이터 위에 쓰여집니다.
Stéphane Chazelas

이것은 또한 ntfs 파티션 (기존 볼륨, 데이터 포함)에도 효과적입니다.
Kenny Evitt

합리적으로 들리지만 Linux 파티션의 끝에서 시작하는 확장, Linux LVM 및 Linux 스왑 / Solaris 파티션이있는 경우 어떻게해야합니까? 이 파티션을 삭제해야합니까?> 이 경우 파일 시스템이 시작되지 않고 becuase가 같은 시작과 끝에서 Linux LVM을 사용하고 있을지 걱정됩니다. 그리고 나는 데이터를 잃고 싶지도 않습니다.
cyan

@cyan ext4 FS가있는 LVM 논리 볼륨의 크기를 조정하거나 LVM의 물리 볼륨으로 사용되는 파티션의 크기를 조정하는 것은 절차에 따라 다른 질문입니다.
Stéphane Chazelas

7

파티션이 마운트되어있는 동안에는 안전하게 할 수 없습니다. 즉, 다른 파티션을 부팅하여 그곳에서 수행해야합니다.

gparted이 목적을위한 훌륭하고 쉬운 GUI입니다. 삭제 된 댓글 교환에서 "디스플레이에 액세스 할 수 없음"으로 인해 시작되지 않는다고 언급했습니다. 이는 X에 있지 않다는 것을 의미합니다. GUI이기 때문에 그것 없이는 작동하지 않습니다.

당신이 사용하는 또 다른 파티션이없는 경우 물론, 당신은 라이브 CD 또는 뭔가가 필요합니다 - 내가 생각하는 그들은 일반적으로 gparted를 함께 제공됩니다. 가장 좋은 방법은 아마도 최근에 안정된 최신 버전을 가지고있는 실제 gparted live CD 일 것입니다 (그리고 "live CD"가 빠르게 "live DVD"가되기 때문에 CD에 맞을 것입니다 ).

나는 결코 문제를 일으킨 적이 없었지만, 물론 당신의 중요한 일을 먼저 되돌려 놓는다.


SSH 액세스 (헤드리스 서버) 만 있기 때문에 gparted를 사용할 수 없습니다. 시스템이 / dev / sda에서 실행되지 않으므로 HDD를 마운트 해제 할 수 있습니다.
Seb

1
시스템에 물리적으로 액세스 할 수 없어서 파티션을 마운트 해제하고 변경하는 데 유용하지 않은 경우 운이 좋지 않거나 적어도 스케치 영역에 도달 한 것 같습니다 fdisk. (x) pert, (c) 행거 개수를 선택하십시오. 그러나 나는 이것을하지 않았으며 절대 다른 선택이 없다면 그렇게 할 것입니다.
goldilocks

방금 파티션을 마운트 해제 할 수 있다고 말했습니다. 심지어 전체 서버를 넷 부트하고 다른 서버에서 들어갈 수도 있습니다. GUI가없는 라이브 CD를 사용하는 것과 같습니다.
Seb

@Seb : 내 나쁜, 죄송합니다.
goldilocks

2

나는 이것이 매우 오래된 문제라는 것을 알고 있지만 많은 사람들이 그 해결책을 찾고 있습니다.

이 예에서는 다음과 같은 일반적인 상황이 있습니다. 처음에는 단일 파티션이고 마지막에는 스왑 파티션이 있습니다. 스왑을 과도하게로드 할 수 있고 회전 된 디스크의 끝이 가장 느리기 때문에 좋지 않습니다. 내가 제안하는 것?

  1. 시작 부분에 부팅 파티션을 만듭니다. 처음에 왜? 많은 도구가 2TB 장벽을 초과하는 큰 디스크의 끝 부분에 문제가 있기 때문입니다. 부팅 후 파티션은 스왑 파티션이어야합니다. 이것은 성능을위한 것입니다. 나머지 디스크는 다른 파티션에 사용해야합니다.

그러나이 상황은 어떻습니까? sda1을 확장하지 않는 것이 좋습니다. sda1 & sda2 뒤에 다른 파티션을 작성하고 /homeand로 마운트하는 것이 좋습니다 /usr. 해당 디렉토리에는 대부분의 사용자 및 시스템 데이터가 저장되며 해당 디렉토리에서 새 파티션으로 데이터를 안전하게 이동할 수 있습니다.

  1. 그러나. (두 번째 "그러나") 현재 구조를 계속 유지하려면 먼저 스왑 파티션을 제거해야합니다. 스왑 오프를 수행해야합니다 (에서 언급) /etc/fstab. swapon이 스왑을 사용하지 않는다고 알려 주면 (man 참조), 파티션 도구 (fdisk 또는 이와 유사한)로 스왑을 제거 할 수 있습니다.

    이 파티션이 없으면 sda1을 확대 할 수 있습니다. 사용하여 fdisk먼저 파티션을 인쇄해야합니다 당신을. 시작 위치를 기억하기위한 것입니다. 'd'키를 사용하여 파티션을 제거하십시오. 당황하지 마십시오, 하드 드라이브에 아무것도 기록되지 않습니다 :). 인쇄 후 디스크에 파티션이 없습니다.

    다음으로 새로운 파티션을 생성하되 조심하십시오. 어떤 파티션 원본 파티션이 시작되었는지 확인하십시오. 같은 숫자를 쓰십시오. 그 후 끝을 보라. fdisk마지막으로 사용 가능한 섹터를 묻습니다. 계산기를 사용하여 킬로바이트 단위로 얼마나 많은 스왑이 필요한지 마음에 할당하십시오. 2를 곱하고 fdisk가 프롬프트 한 마지막 섹터 번호에서이 번호를 빼십시오. 파티션을 만듭니다. 이것을 인쇄하십시오 (여전히 fdisk 임시 메모리에 있습니다).

    'w'키를 누르면 드라이브에 새로운 파티션을 작성합니다. 모든 정보가 동기화되었거나 동기화에 실패한 것을 볼 수 있습니다. 실패하면 명령 partx / dev / sda를 호출하여 동기화를 수행 할 수 있습니다. 여전히 실패하면 시스템을 재부팅해야합니다. 재부팅 후 더 큰 파티션을 준비했지만 파일 시스템의 파티션은 여전히 ​​작습니다. 당신은 그것을 성장시켜야합니다. EXT4는 즉석에서 재배 가능 resize2fs /dev/sda1합니다. :)

    재부팅 등을 다시 마운트 할 필요는 없습니다. 마지막으로 스왑 파티션을 복원해야합니다. fdisk를 다시 사용하고 swap으로 새 파티션을 만드십시오. 'w'를 쓴 후, 장치 sda2가 복원됩니다. 를 사용하여 스왑 구조를 준비 mkswap /dev/sda2하고 스왑 온에 대한 설명을 제거 /etc/fstab하고 마지막으로 수행하십시오 swapon -a. swapon 또는 top 명령을 사용하여 살펴보면 swap이 활성화됩니다.

아주 긴 설명입니다. 어떤 용도로든 사용할 수 있기를 바랍니다. 내 의견으로는 xfs 파일 시스템이 훨씬 낫습니다. 불행히도이 fs는 다른 장소로 임시 복사하지 않고 축소를 지원하지 않지만 축소는 거의 사용되지 않습니다. xfs는 자신의 메타 데이터를위한 공간을 거의 차지하지 않으며 ext4에 비해 여러면에서 더 빠릅니다.

또 다른 힌트는 일부 LVM을 파티션을위한 중간 계층으로 사용하는 것이 좋습니다. 그 후에는 크기 조정이 훨씬 쉽습니다. 물론 성능은 비슷하지만 HDD 관리를 혼합하여 사용할 수 있습니다. 일반적인 원시 파티션과 LVM에서 사용할 수 있습니다.


훌륭한 언어 교정을 해준 slm에게 감사드립니다. :
Znik
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.