Hard-Drive

複製 LVM 分區

  • November 7, 2021

我需要將 CentOS 安裝從使用 LVM 分區的 1TB 磁碟複製到幾台相同的機器上。磁碟大部分是空的,因為只安裝和配置了作業系統和一些軟體。

如果沒有 LVM,我會複製整個分區表,然後我會使用 partclone 一個一個地複製分區:

sfdisk -d /dev/sda | sed -e 's/sda/sdb/' | sfdisk /dev/sdb
partclone.ext4 -c -s /dev/sda# -o - | partclone.ext4 -r -s - -o /dev/sdb#

但是我認為它不適用於LVM。

當然我可以dd用來複製整個磁碟:

dd if=/dev/sda of=/dev/sdb

但與部分複製相比,它需要太多時間。

有沒有辦法更快地複製 LVM 分區?我認為一種可能的解決方案是使用 dd 將 LVM 分區複製到另一個磁碟中的正常分區,然後使用 partclone 將新磁碟複製到其他機器。但我不知道這樣的事情是否可行:

dd if=/dev/mapper/vg_node07-lv_root of=/dev/sdb1

它可以工作嗎?你能告訴我其他的解決方案嗎?

是的,您可以dd按照描述使用。

我要做的是使用盡可能小的分區創建源映像,複製它們,然後擴大目標上的邏輯捲和文件系統。您的複製過程如下所示:

# <attach target for cloning, say, /dev/sdc>
# CURRENT_LE=2000  (get exact "Current LE" value from lvdisplay)
# NEW_SIZE="20G"
# parted -a optimal /dev/sdc mklabel gpt mkpart p1 ext4 0% 100%
# pvcreate /dev/sdc1
# vgcreate nodexx /dev/sdc1
# lvcreate -n lv_root -l $CURRENT_LE nodexx
# dd if=/dev/node07/lv_root of=/dev/nodexx/lv_root bs=4M
# lvresize /dev/vg_nodexx/lv_root -L $NEW_SIZE
# fsck.ext4 -f -y /dev/vg_nodexx/lv_root
# resize2fs /dev/vg_nodexx/lv_root

你會想要預訂 LVM 和文件系統工具,但這是一個很好的 shell 腳本候選者。

引用自:https://serverfault.com/questions/702971