失敗的分離腳本嘗試

失敗的分離腳本嘗試

我有一個 VM 模板,用於使用 virt-clone / KVM 建立其他 VM。虛擬機器模板為4GB,以節省空間。我由此建構的虛擬機器儲存位於 iSCSI 目標或 LVM 磁碟區上(取決於功能),並且它們的檔案系統大小會根據電腦的角色而有所不同。

從範本建立新虛擬機器後,如果我正在建立需要超過 4GB 磁碟的內容,則必須調整根分割區的大小。這在互動使用parted時工作得很好,但不是腳本化的。當嘗試刪除檔案系統時,系統詢問我是否要繼續,儘管使用“-s”

下面的輸出顯示了失敗的腳本嘗試和實現此目的的工作互動會話。

克隆後調整根分割區大小且可以簡單編寫腳本的最佳方法是什麼?

失敗的分離腳本嘗試

克隆後分區

# parted /dev/vda p
Model: Virtio Block Device (virtblk)
Disk /dev/vda: 10.7GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type     File system  Flags
 1      1049kB  4294MB  4293MB  primary  ext4         boot

腳本刪除嘗試

# parted /dev/vda -s rm 1
Warning: Partition /dev/vda1 is being used. Are you sure you want to continue?
#

刪除失敗後分割區

# parted /dev/vda p
Model: Virtio Block Device (virtblk)
Disk /dev/vda: 10.7GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type     File system  Flags
 1      1049kB  4294MB  4293MB  primary  ext4         boot

工作互動調整大小(然後重新啟動)

刪除前分割區

# parted /dev/vda p
Model: Virtio Block Device (virtblk)
Disk /dev/vda: 10.7GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type     File system  Flags
 1      1049kB  4294MB  4293MB  primary  ext4         boot

刪除並建立使用所有磁碟的新分割區

# parted /dev/vda
(parted) rm 1
Warning: Partition /dev/vda1 is being used. Are you sure you want to continue?
Yes/No? y
Error: Partition(s) 1 on /dev/vda have been written, but we have been unable to
inform the kernel of the change, probably because it/they are in use.  As a
result, the old partition(s) will remain in use.  You should reboot now before
making further changes.
Ignore/Cancel? I
(parted) mkpart p ext4 1 -1
(parted)

# parted /dev/vda p
Model: Virtio Block Device (virtblk)
Disk /dev/vda: 10.7GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type     File system  Flags
 1      1049kB  10.7GB  10.7GB  primary  ext4

檔案系統調整大小

# resize2fs /dev/vda1
resize2fs 1.42.9 (4-Feb-2014)
Filesystem at /dev/vda1 is mounted on /; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 1
The filesystem on /dev/vda1 is now 2621184 blocks long.

# df -kh  .
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1       9.8G  1.6G  7.9G  17% /

答案1

我已經想出瞭如何做到這一點。關鍵是 kpartx 讓 LVM 可以透過 VM 外部的 parted 使用(在 Hypervisor 主機上也是如此)。然後修改分割區大小,然後引導來賓並增加檔案系統。

因此,如果您有一個名為 TESTVM 的來賓,其儲存位於 /dev/VMS/VIRT-TESTVM,則您需要在虛擬機器管理程式主機上執行下列操作:

# kpartx -a /dev/VMS/VIRT-TESTVM
# parted /dev/VMS/VIRT-TESTVM rm 1
# parted /dev/VMS/VIRT-TESTVM mkpart -a optimal p ext4 0% 100% 
# kpartx -d /dev/VMS/VIRT-TESTVM

然後只需啟動機器,登入並執行

# resize2fs /dev/vda1 

為了安全起見,請再次重新啟動。

相關內容