LiveCD 또는 재부팅없이 Fedora에서 루트 LVM 파티션 크기를 조정하는 방법


24

최근 디스크 이미지가 20GB에서 50GB로 증가한 가상 시스템 fdisk -l이 있으며 VM에서이 새로운 크기를 볼 수 있는지 확인합니다. 이제 추가 30GB를 채우려면 루트 LVM 파티션의 크기를 조정해야합니다.

LVM 크기 조정 에 대한 몇 가지 기사 찾았 지만 루트 파티션 크기 조정 에 관한 기사 는 LiveCD에서 부팅해야한다고 주장합니다. 서버를 중단하지 않고이를 수행 할 수있는 방법이 있습니까? 서버가 중요하므로 가동 중지 시간을 최소화하고 싶습니다.

편집 : 출력 fdisk -l:

[root@fedora-host ~]# sudo fdisk -l

Disk /dev/sda: 53.7 GB, 53687091200 bytes
255 heads, 63 sectors/track, 6527 cylinders, total 104857600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00097c90

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     1026047      512000   83  Linux
/dev/sda2         1026048    83886079    41430016   8e  Linux LVM

Disk /dev/mapper/VolGroup-lv_root: 36.1 GB, 36104568832 bytes
255 heads, 63 sectors/track, 4389 cylinders, total 70516736 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/mapper/VolGroup-lv_root doesn't contain a valid partition table

Disk /dev/mapper/VolGroup-lv_swap: 6308 MB, 6308233216 bytes
255 heads, 63 sectors/track, 766 cylinders, total 12320768 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/mapper/VolGroup-lv_swap doesn't contain a valid partition table

편집 : 물리 분할의 크기를 어떻게 조정합니까? fdisk는 여유 공간을 볼 수 있지만 기본 LVM 파티션의 크기를 조정하여 사용하는 방법을 모르겠습니다. LiveCD로 부팅하고 parted'd resize명령을 사용하려고했지만 "파일 시스템을 감지 할 수 없습니다"라는 오류 만 표시됩니다. 이 안내서를 찾았 습니다. 파티션 을 삭제 하고 올바른 크기의 새 파티션을 만들어야하지만 매우 위험합니다.

최종 편집 : Parted의 resize명령이 LVM 파티션의 크기를 조정할 수 없습니다. 그림을 이동. 대신, 위의 링크에 설명 된대로 이전 파티션을 삭제하고 새로운 범위의 새 파티션을 작성하여 LVM 파티션의 크기를 올바르게 조정했습니다. 그런 다음 아래의 조언에 따라 LVM 파티션 내부 의 볼륨과 파일 시스템 크기를 조정했습니다 .


fdisk의 출력을 보여주십시오-l. 볼륨뿐만 아니라 파티션 크기도 조정 했습니까?
Zoredache

@ Zoredache, 나는 그 결과를 질문에 추가했습니다.
Cerin

답변:


32

논리 볼륨을 온라인으로 늘릴 수 있습니다. 축소하려면 Livemount / Rescue Mode가 필요합니다.

  1. pvresize /dev/sda2(LVM 파티션이이라고 가정합니다 sda2. 필요에 따라 교체하십시오.)
  2. lvextend /dev/mapper/root -l+100%FREE (또는 루트 논리 볼륨이 무엇이든간에)
  3. resize2fs /dev/mapper/root (ext2 / 3 / 4로 가정)

1
개인적으로을 선호합니다. 다음 lvextend -L [size][unit] /dev/group/volume과 같이 지정하여 볼륨을 10 기가 바이트 확장 할 수 있기 때문입니다.-L +10G
Hubert Kario

그러나 OP는 물었다. Now I need to resize my root LVM partition to fill the extra 30GB.(사용 가능한 여유 공간으로 논리 볼륨을 늘리는 것입니다.)
Aaron Copley

"새로운 크기 (1076 범위)는 기존 크기 (1076 범위)와 일치"
Cerin

7
이 트릭이 깔끔하다고 생각했습니다.에 -r옵션을 추가 하면 FS 크기를 조정하기 위해 lvextend연결 fsadm됩니다. 이렇게하면 3 단계가 중복됩니다.
Jodie C

3
이 답변은 파티션이 여유 공간을 채우기 위해 이미 확장되었고 논리 볼륨 만 업데이트해야한다고 가정합니다. pvresize /dev/sda2명령은 / dev / sda2가 분할 될 때까지 아무것도 헤어진 또는 fdisk를 크기를 조정되어 있지 않습니다. 내 시스템의 일부로 fdisk를 사용하여 크기를 조정해야했거나 크기 조정 명령이 없습니다. Fdisk 크기 조정에는 파티션 삭제 및 재 작성이 포함됩니다.
Jason

2

시스템이 실제로 20GB에서 50GB로 변경 되었습니까? sda2 장치가 ~ 40GB, lv_root는 36GB, swap은 6GB이므로 실제로 이상하게 보입니다.

귀하의 출력 fdisk -l쇼의 전체 분야 /dev/sdaIS 104857600. 마지막으로 사용한 섹터 /dev/sda283886079입니다. 이것은 드라이브에서 사용 가능한 모든 공간을 사용하도록 파티션 크기를 조정하지 않았 음을 나타냅니다. pvresize 명령은 파티션 테이블을 변경하지 않습니다. 먼저 파티션 테이블을 변경해야합니다.


1

gparted를 설치하십시오. 루트로 실행하십시오 (원격 인 경우 ssh -X 또는 x2go 사용). 파티션을 선택하십시오. 끝을지나 여유 공간이 표시되어야합니다 (오른쪽). 그렇지 않은 경우 새 크기의 가상 장치를 보려면 가상 시스템을 재부팅해야합니다. systemd를 사용하면 가동 중지 시간이 최소화되어야합니다.

마우스 오른쪽 버튼을 클릭하고 크기 조정을 선택하십시오. 끝을 디스크 끝으로 드래그하십시오. 시작 부분을 만지지 마십시오. gparted는 크기를 조정하는 동안 파티션을 이동할 수 있지만 실행중인 시스템은 물론 손상됩니다. 그러나 끝을 움직이는 것은 좋습니다. gparted가 수행 할 보류중인 작업을 검토하여 파티션을 확장하고 이동 하지 않았 는지 확인하십시오 . 적용을 클릭하십시오. gparted는 디스크의 파티션을 변경 한 다음 커널 ioctl을 실행하여 파티션 테이블을 다시 읽고 라이브 블록 장치의 크기도 변경합니다. 그런 다음 이것이 LVM PV임을 알기 때문에 pvresize를 실행합니다. gparted를 종료하면 vgs에 새로운 공간이 표시됩니다.

나는 GUI의 오버 헤드없이 모든 것을 할 수 있다는 소문을 들었지만, 부두를 알아낼 수는 없었다. Parted는 내가 사용해 본 최악의 CLI 인터페이스 중 하나 여야합니다.

fdisk를 사용하지 마십시오. 크기를 조정하려면 파티션을 삭제하고 재 할당해야하며 기본적으로 LVM2 서명을 쓸 때 삭제합니다. 나는 그 파괴적인 행동을 끄는 "고급"옵션을 보았지만 테스트 한 적이 없다.

cfdisk를 시도 할 수도 있습니다 (fdisk를 저주). 사용 가능한 파티션 크기가 조정되었을 수 있습니다. pvresize를 수동으로 실행하기에 충분하고 커널에 파티션 테이블을 다시 읽도록 명령하는 명령이 있습니다. 그러나 fdisk와 같은 LVM 서명을 지우지 않는지 테스트해야합니다.


0

LVM 물리 볼륨이 파티션에 있으면 재부팅하지 않고 크기를 조정할 수 없습니다.

드라이브에서 파티션 테이블을 편집 할 수 있지만 Linux는 재부팅 할 때까지 사용을 거부합니다.

XFS를 사용하는 경우로 전환 resize2fs하십시오 xfs_growfs.

다음을 사용하여 볼륨 그룹에서 사용 PV를하고 정맥 주사를 표시 할 수 있습니다 pvslvs.

원시 디스크의 PV

pvresize /dev/sda
lvextend /dev/<volume-group>/<lv-name> -L +<size>G
resize2fs /dev/<volume-group>/<lv-name>

파티션의 PV

먼저 파티션 크기를 조정 하거나 parted, fdisk또는 이와 유사한 도구를 사용해야합니다. 이러한 도구 는 파티션이있는 설명 편집 하며 데이터를 이동하지는 않습니다. 즉, 디스크의 마지막 파티션 만 쉽게 확장 할 수 있습니다. 그런 다음 컴퓨터를 재부팅하면 LVM에 사용 가능한 추가 공간이 있음을 알릴 수 있습니다.

pvresize /dev/sda2
lvextend /dev/<volume-group>/<lv-name> -L +<size>G
resize2fs /dev/<volume-group>/<lv-name>

Gparted Live CD를 사용하면 sudo pvresize /dev/sda2"1 개의 물리적 볼륨 크기 조정"이보고되지만 sudo lvextend /dev/mapper/VolGroup-lv_root -L +10G"사용 가능한 공간이 부족합니다. 320 개의 확장 영역이 필요하지만 사용 가능한 공간은 0 개"라는 오류와 함께 실패합니다. sudo fdisk -l54G를 사용할 수 있다고보고하는 반면 sudo pvdisplay40G 만 사용하고 있습니다. lvextend가 왜 실패합니까?
Cerin

1
@ Cerin, 파티션의 PV에 대한 Huberts의 첫 번째 진술을 놓쳤습니다. 먼저 파티션의 크기를 조정하고 parted, fdisk 또는 이와 유사한 도구를 사용해야 합니다.
Zoredache

@ Zoredache, 알았어, 그건 기본적으로 내 전체 질문입니다. 어떻게해야할지 모르겠습니다. 방금 Gparted LiveCD로 부팅하고 parted의 resize명령 을 사용 하여 기본 파티션 크기를 늘리려 고했지만 "파일 시스템을 감지 할 수 없습니다"라는 오류가 발생했습니다. parted 또는 fdisk를 사용하여 파티션의 크기를 어떻게 조정합니까?
Cerin

@Cerin : SF 검색 또는 다른 질문
Hubert Kario

0

배포판에서 사용할 수있는 경우 ssm (system-storage-manager)을 확인하는 것이 좋습니다.

조금 더 많은 정보를 원하시면 이것을 확인하십시오 : /unix//a/293173

ssm은 모든 것을 직접 수행하지 않고도 논리 볼륨의 크기를 쉽게 조정할 수있는 것으로 보입니다.

OS를 재부팅하고 먼저 루트로 로그인 한 후 홈 파티션을 확장하는 데 사용할 수있었습니다. (총 두 번 재부팅해야했지만 결국 작동했으며 이제 / home 파티션에서 추가 50G를 사용할 수 있습니다.)


0

25 가지 하우투를 결합한 후에 마침내이 솔루션이 있습니다. 라이브 CD가 필요 없으며 완전히 작동합니다.

단계 1. 파티션을 parted (gui없이)로 포맷하십시오. 이 예에서는 디스크의 최대 크기가 가상 상자에서 8BG에서 32GB로 증가했습니다.

    # parted
       ....
       Number   Begin   End     Size     Type     FileSystem       Flags
         1      1049kB  1075MB  1074MB   primary  ext4             boot
         2      1075MB  8590MB  7515MB   primary                   lvm
       ....
    (parted) mkpart primary ext2 8590 100%
       ....
       Number   Begin   End     Size     Type     FileSystem       Flags
         1      1049kB  1075MB  1074MB   primary  ext4             boot
         2      1075MB  8590MB  7515MB   primary                   lvm
         3      8590MB  34,4GB  25,8GB   primary  ext2             lba
       ....
    (parted) set 3 lvm on
    (parted) set 3 lba off
    (parted) print
       ....
         3      8590MB  34,4GB  25,8GB   primary  ext2             lvm
       ....
    (parted) quit

2 단계. 새 파티션을 기반으로 물리 볼륨 생성

# pvcreate /dev/sda3
  Physical volume "/dev/sda3" successfully created.

단계 3. 물리 볼륨을 볼륨 그룹에 추가합니다. 일반 fedora 28 서버 설치에서 볼륨 그룹을 fedora라고합니다.

# vgextend fedora /dev/sda3
  Volume group "fedora" successfully extended

단계 4. 볼륨 그룹에서 사용 가능한 공간을 논리 볼륨에 추가하십시오. 일반 fedora 28 서버 설치에서 논리 볼륨을 루트라고합니다.

# lvextend -l+100%FREE /dev/fedora/root
  Size of logical volume fedora/root changed from <6,20 GiB (1586 extents) to 30,19 GiB (7729 extents).
  Logical volume fedora/root successfully resized.

단계 5. 추가 공간을 사용하도록 논리 볼륨의 파일 시스템에 지시하십시오. fedora에서 파일 시스템은 xfs입니다.

주의! xfs_growfs는 마운트 지점을 사용하여 df 출력에서 ​​찾은 파일 시스템의 이름이 아니라 파일 시스템을 식별합니다 !!!!!!!

'xfs_growfs / dev / mapper / fedora-root'명령은 / dev / mapper / fedora-root가 마운트 된 XFS 파일 시스템이 아님을 알려줍니다. 다른 파일 시스템을 사용하는 경우 https://www.tldp.org/HOWTO/LVM-HOWTO/extendlv.html참조하십시오.

# xfs_growfs /
    data blocks changed from 1624064 to 7914496

6 단계. 즐기십시오

# df
FileSystem               1K-blocks      Used   Available used% Mounted on
....
/dev/mapper/fedora-root   31647744   6492840    25154904  21% /
/dev/sda1                   999320    125576      804932  14% /boot
....

-1

testdisk를보십시오

sudo dnf 설치 testdisk

sudo testdisk

로그 파일 만들기 만 설정하면 파티션이 나열됩니다.-미디어 / 파티션을 선택한 다음-유형을 입력하고 분석하십시오-빠른 검색-선택 및 쓰기

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