データを失うことなく、既存の未使用の LVM スペースを使用して別の物理ボリューム/パーティションを作成する方法は?

データを失うことなく、既存の未使用の LVM スペースを使用して別の物理ボリューム/パーティションを作成する方法は?

私は1T USBFedora 20がインストールされたディスク。SD D下の最初の画像では、約50GBしか使用していません。sdd2の下には3つの論理ボリュームがあり、縮小後に約620GBの空き領域があります。2 番目の画像に示すように、論理パーティションです。

私は考えています620GBの空き領域を使用して物理ボリューム/パーティションsdd3を作成します。他の論理ボリュームが損傷していないことを祈ります。データは変更されません。 どうやってやるの?

私は clonezilla でディスク イメージを作成しました。そのため、プロセス中にデータが失われる心配はありません。

これを実行する目的は、インストールを1Tディスクに移動することです設定あり別の500GB USBディスクに転送します。クローンジラなど、いろいろな方法を試しました。dd論理パーティション、True Image、Gparted、.... LVM と小さい宛先のため、誰も私を助けたり、良い結果を与えたりできません。新しい物理パーティションがいくらかのスペースを占めた後、物理パーティションを dd できることを願っています。

sddは1TのUSBディスクです

緑色は空きスペースです

編集:

UbuntuライブCDセッションを再起動する必要があります。ターゲットディスクはsdbsdb2 のサイズを変更しようとするとエラーが発生しました:

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、次の 2 つの理由が考えられます: 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 は、1 つのセクターに割り当てられているバイト数 (通常は 512) を示します。また、大きさは 1000 ではなく 1024 を基数としていることにも留意してください (つまり、kB ではなく KiB)。

新しい小さい sdd2 を作成すると、ディスク上に新しい未割り当て領域が作成され、これを使用して別のパーティション sdd3 を作成できます。

ただし、sdd2の最後の600MBの空き領域をLVMに使用したい場合は、次のようにpvを拡大するだけでよいかもしれません。

pvresize /dev/sdd2

その後、lv とファイル システムのサイズを ( を使用lvresize -r) 増やせば完了です。もちろん、空き pv スペースに新しい lv を作成することもできます。

答え2

pvresizeそこで、とを使いたかったのですfdiskが、開始ブロックを自分で計算するのはあまりにも臆病でした (サイズと範囲の意味について仮定を立てたくありませんでした)。

gparted一部のエクステントを手動で移動する必要がある場合を除いて、ボリュームのサイズを変更する (右クリックしてボリュームのサイズ変更) だけで操作全体を実行できます。

関連情報