目前,我正尝试将安装了 Linux 的硬盘克隆到 16GB 的闪存驱动器上。硬盘为 233GB,但df -h
显示只使用了 3.5G。我可以使用 Clonezilla 仅使用分配的空间量创建映像并将其复制到闪存驱动器,然后我可以将该映像部署到其他 Linux 笔记本电脑吗?
编辑:我尝试使用 Clonzilla 与 Parted Magic,并尝试执行设备映像,但出现以下错误:
split /home/partimag/lubuntu.img/lubuntu-vg-root.ext4.ptcl-img.gz.aa: Input/output error
Checking the disk space...
Failed to save partition /dev/lubuntu-vg/root.
Press Enter to continue
答案1
您没有指定太多有关磁盘布局的信息,因此我将做一些假设。请根据您的应用程序进行修改,或者提供其他详细信息,然后我可以对其进行编辑。
假设:
- 1 个物理磁盘
- 2 个分区(启动 + LVM PV)
- 2 个 LV(根 + 交换)
这几乎是 CentOS/Red Hat 的默认安装,并且非常非常常见。
您可以使用 GParted 作为启动媒体,但让我们尝试不使用实际的 GParted 工具:
从堆栈底部开始。缩小 LVM 逻辑卷及其文件系统。
lvreduce -rL 8G /dev/mapper/centos-root
我在这里指定了 8G,因为它小于您可用的 16G,并且您可能仍然有一个较小的交换量。
用您的 LV 名称替换 centos-root。如果您不确定,请运行lvs
/ lvdisplay
/ 。)ls /dev/mapper
然后,您应该能够缩小 LVM PV。
pvresize --setphysicalvolumesize 14G /dev/vda2
用您的磁盘替换 /dev/vda2。
我选择 14G 是因为它刚好低于你的 16G 限制,这样我们就不需要做任何精确的计算了。如果你的交换空间是在根卷之前分配的,那么一切应该都行得通。此命令可能如果交换空间分配在您刚刚调整大小的根卷后面,则失败。如果是这种情况,则现在根卷和交换空间之间有一个间隙,您需要将交换空间滑入该空闲区域,以便 PV 可以缩小。我遇到了这个问题,但通过后续步骤克服了它。
/dev/vda2: cannot resize to *n* extents as later ones are allocated.
首先,找到需要移动的范围。
pvs -v --segments /dev/vda2
您将看到 LV 的一系列范围出现在目标边界之后n多于。
pvmove --alloc anywhere /dev/vda2:n-n
此命令将重新排列布局,使卷占用您刚刚通过缩小根目录创建的可用空间。然后您可以pvresize
再次尝试,现在它应该可以正常工作。
最后,缩小你的 LVM 分区。
fdisk /dev/vda2
首先,打印 ( p
) 您的分区表。(您稍后会需要它。)您要删除的 ( d
) 是您的 LVM 分区,希望它位于磁盘末尾。然后,使用新的较小尺寸重新创建它。(n
)绝对确保它从与之前相同的扇区开始。(向上滚动到您打印原始表格的位置。)再次将其设置为 15G,因为数学上我们知道它可以放在 16G 闪存驱动器上,但实际上并不是 16G。使用 ( w
) 完成此操作以写入您的更改。
验证所有内容均小于 16G,然后重试 CloneZilla 进程。