如何使用現有未使用的lvm空間建立另一個實體磁碟區/分區而不遺失資料?

如何使用現有未使用的lvm空間建立另一個實體磁碟區/分區而不遺失資料?

我有一個1T USB安裝了 Fedora 20 的磁碟。它顯示為SDD在下面的第一張圖片中。我只用了大約50GB。 sdd2下方有3個邏輯卷,縮小後還有大約620GB的可用空間邏輯分區,如第二張圖所示。

我在想使用 620GB 可用空間建立實體磁碟區/分割區 sdd3。我希望其他邏輯磁碟區不會被損壞數據將保持不變。我怎樣才能做到這一點?

我已經用clonezilla 創建了一個磁碟映像。所以我不擔心過程中資料遺失。

這樣做的目的是我想把安裝移到我的1T磁碟上有設定轉移到我的另一個 500GB USB 磁碟。我嘗試了很多方法,clonezilla,DD邏輯分割區、真實映像、gparted,...由於 lvm 和較小的目標,沒有人可以幫助我或給我一個好的結果。我希望在新的實體分區佔用一些空間後我可以添加實體分區。

sdd為1T USB

綠色是自由空間

編輯:

我必須重新啟動我的 ubuntu live CD 會話。現在目標磁碟是深圳發展銀行。當我嘗試調整 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)。另請記住,幅度以 1024 為基數,而不是 1000(即 KiB 而不是 kB)。

建立新的較小的 sdd2 後,磁碟上就有了新的未分配空間,您可以使用它來建立另一個分割區 sdd3。

但是,如果您只想將 sdd2 末尾的免費 600MB 用於您的 LVM,您可能只想使用以下命令擴大您的 pv

pvresize /dev/sdd2

然後增加 lv 和檔案系統的大小(使用lvresize -r),然後就完成了。當然,您也可以在空閒的 pv 空間上建立一個新的 lv。

答案2

所以我想使用pvresizeand ,fdisk但太膽怯了,無法自己計算起始區塊(我不想對大小和範圍的含義做出假設)。

整個操作可以透過調整磁碟區大小gparted(右鍵單擊調整磁碟區大小)來完成,但您可能必須手動移動某些範圍。

相關內容