Man*_*uel 5 partition hard-drive cloning lvm dd
我需要将 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#
Run Code Online (Sandbox Code Playgroud)
不过我认为它不适用于 LVM。
当然,我可以使用dd
克隆整个磁盘:
dd if=/dev/sda of=/dev/sdb
Run Code Online (Sandbox Code Playgroud)
但与partclone相比需要太多时间。
有没有办法更快地克隆 LVM 分区?我认为一种可能的解决方案是使用 dd 将 LVM 分区克隆到另一个磁盘中的常规分区,然后使用 partclone 将新磁盘克隆到其他计算机。但我不知道这样的事情是否会起作用:
dd if=/dev/mapper/vg_node07-lv_root of=/dev/sdb1
Run Code Online (Sandbox Code Playgroud)
能行吗?你能告诉我其他解决方案吗?
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
Run Code Online (Sandbox Code Playgroud)
您需要了解 LVM 和文件系统工具,但这是 shell 脚本编写的绝佳选择。
归档时间: |
|
查看次数: |
31679 次 |
最近记录: |