데이터 손실 없이 기존의 사용되지 않은 lvm 공간으로 다른 물리 볼륨/파티션을 생성하는 방법은 무엇입니까?

데이터 손실 없이 기존의 사용되지 않은 lvm 공간으로 다른 물리 볼륨/파티션을 생성하는 방법은 무엇입니까?

나는1T USBFedora 20이 설치된 디스크. 다음과 같이 표시됩니다.sdd아래 첫 번째 이미지에서. 저는 50GB정도만 사용했습니다. sdd2 아래에는 3개의 논리 볼륨이 있고 축소한 후에도 약 620GB의 여유 공간이 있습니다.두 번째 이미지에 표시된 대로 논리 파티션.

내가 생각하고620GB의 여유 공간을 사용하여 물리적 볼륨/파티션 sdd3을 생성합니다.. 다른 논리 볼륨이 손상되지 않기를 바라며데이터는 변경되지 않습니다.. 어떻게 하면 되지?

clonezilla로 디스크 이미지를 만들었습니다. 그래서 프로세스 중 데이터 손실에 대해 걱정하지 않습니다.

이 작업의 목적은 설치를 1T 디스크로 이동하려는 것입니다.설정으로다른 500GB USB 디스크로 넘어갑니다. 나는 여러 가지 방법을 시도했지만, clonezilla,dd논리 파티션, 실제 이미지, gparted, .... lvm 및 더 작은 대상으로 인해 아무도 나를 도울 수 없거나 나에게 좋은 결과를 제공할 수 없습니다. 새 물리적 파티션이 일부 공간을 차지한 후에 물리적 파티션을 추가할 수 있기를 바랍니다.

sdd는 1T USB 디스크입니다.

녹색은 여유 공간입니다

편집하다:

우분투 라이브 CD 세션을 다시 시작해야 합니다. 이제 대상 디스크는sdb. sdb2의 크기를 조정하려고 할 때 오류가 발생했습니다.

ubuntu@ubuntu:~$ sudo su
root@ubuntu:/home/ubuntu# pvdisplay /dev/sdb2
  --- Physical volume ---
  PV Name               /dev/sdb2
  VG Name               fedora_lym
  PV Size               930.99 GiB / not usable 4.00 MiB
  Allocatable           yes 
  PE Size               4.00 MiB
  Total PE              238333
  Free PE               160569
  Allocated PE          77764
  PV UUID               Ytsy31-op7u-DqLM-lJG7-uIFb-2hAG-eZhn0a

root@ubuntu:/home/ubuntu# pvresize --setphysicalvolumesize 320G /dev/sdb2
  /dev/sdb2: cannot resize to 81919 extents as later ones are allocated.
  0 physical volume(s) resized / 1 physical volume(s) not resized
root@ubuntu:/home/ubuntu# 

편집2:

완료되었습니다. 이제 sdb3이 출시되었습니다.

root@ubuntu:/home/ubuntu# lsblk
NAME                  MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda                     8:0    0 223.6G  0 disk 
├─sda1                  8:1    0   100M  0 part 
└─sda2                  8:2    0 223.5G  0 part 
sdb                     8:16   0 931.5G  0 disk 
├─sdb1                  8:17   0   500M  0 part 
├─sdb2                  8:18   0 312.5G  0 part 
│ ├─fedora_lym-swap 252:0    0   3.8G  0 lvm  
│ ├─fedora_lym-home 252:1    0   250G  0 lvm  
│ └─fedora_lym-root 252:2    0    50G  0 lvm  
└─sdb3                  8:19   0 618.5G  0 part 
sr0                    11:0    1   4.4G  0 rom  /cdrom
loop0                   7:0    0   1.1G  1 loop /rofs
root@ubuntu:/home/ubuntu# 

답변1

내가 올바르게 이해했다면 sdd2의 여유 공간을 사용하여 다른 파티션 sdd3을 생성하려는 것입니다. 그렇게 하려면 먼저 를 사용하여 물리 볼륨의 크기를 조정해야 합니다(아직 수행하지 않은 경우) pvresize.

먼저 물리적 볼륨이 얼마나 큰지 살펴보십시오 pvdisplay /dev/sdd2. 이미 올바른 크기가 있는 경우 다음 단계로 건너뜁니다. 그렇지 않으면 먼저 크기를 조정해야 합니다.

pvresize --setphysicalvolumesize 123G /dev/sdd2

123G 대신 적절한 새 크기를 사용하십시오. 이것에 조심하십시오.

특정 범위가 할당되었다는 오류로 인해 실패하는 경우 pvresize두 가지 이유가 있을 수 있습니다. 1) pv 크기를 너무 작게 만들려고 했습니다. 2) 특정 범위가 디스크 시작 부분이 아닌 끝 부분에 할당되었습니다.

후자의 경우 먼저 해당 범위를 시작 부분으로 이동해야 합니다. 연속 세그먼트 할당 목록을 보려면 다음을 실행하세요.

pvs -v --segments

PV에 여유 공간이 있으면 첫 번째 세그먼트부터 마지막 ​​세그먼트까지 모든 것이 할당되지는 않습니다. pvresize를 차단하는 조각을 처음으로 이동하십시오.

pvmove --alloc anywhere SOURCE_SEGMENTS

(SOURCE_SEGMENTS는 이동하려는 세그먼트임)

더 자세한 설명을 보려면 여기에서 답변을 살펴보세요.https://unix.stackexchange.com/a/67707/154982

다음 단계는 파티션 크기를 줄이는 것입니다. 물리적 볼륨의 새로운 전체 크기를 기록해 둡니다. 그런 다음 fdisk(또는 그래픽 도구 또는 선호하는 파티션 프로그램)를 사용하여 파티션 sdd2의 시작 블록을 기록한 다음 삭제하고 물리 볼륨 크기로 새 블록을 만듭니다. 이 새로운 파티션은 다음 위치에서 시작하는 것이 중요합니다.정확한이전 sdd2 파티션이 시작된 것과 동일한 블록입니다! 파티션 크기의 경우 블록/섹터 번호를 바이트로 변환해야 할 수도 있다는 점을 염두에 두십시오. fdisk는 한 섹터에 할당된 바이트 수(보통 512)를 알려줍니다. 또한 크기는 1000이 아닌 1024를 기준으로 합니다(즉, kB 대신 KiB).

더 작은 새 sdd2를 생성한 후에는 디스크에 할당되지 않은 새 공간이 생겨서 다른 파티션 sdd3을 생성하는 데 사용할 수 있습니다.

그러나 LVM에 대해 sdd2 끝의 무료 600MB를 사용하려는 경우 다음을 사용하여 pv를 확대할 수 있습니다.

pvresize /dev/sdd2

그런 다음 lv 및 파일 시스템의 크기를 늘리면(을 사용하여 lvresize -r) 작업이 완료됩니다. 물론 여유 PV 공간에 새 LV를 생성할 수도 있습니다.

답변2

pvresize그래서 사용 하고 싶었지만 fdisk시작 블록을 직접 계산하기에는 너무 비겁했습니다(크기와 범위의 의미에 대해 가정하고 싶지 않았습니다).

gparted일부 익스텐트를 수동으로 이동해야 할 수도 있다는 점을 제외하면 전체 작업은 볼륨 내에서 볼륨 크기를 조정하여 수행할 수 있습니다 (볼륨 크기 조정을 마우스 오른쪽 버튼으로 클릭).

관련 정보