将 Ubuntu 服务器从 64gb SD 移至 16gb USB

将 Ubuntu 服务器从 64gb SD 移至 16gb USB

我正绞尽脑汁想弄清楚这一点。

我最近为自己搭建了一个家庭服务器来存储和保存我的所有媒体。我安装了 Ubuntu 服务器 12.04LTS,并在我闲置的 64GB SD 卡上设置了一堆东西。后来我买了一个 16GB USB3 棒来接管操作系统,这样我就可以再次使用 SD 卡了。我原以为将操作系统从一个驱动器移动到另一个驱动器会是一个相当简单的过程……

首先,我了解到您无法轻松地将大驱动器克隆到小驱动器。整个操作系统目前仅占用 5GB 空间,即使使用 3GB 交换分区,16GB 驱动器上仍然有足够的原始空间。

我尝试使用 dd,结果只是用 16gb EXT4 分区填满了 USB,然后失败了。我将 SD 卡上的 EXT4 分区大小调整为 9gb,其余空间未分区。再次尝试 dd,结果只是创建了另一个 16gb EXT4 分区,然后就抱怨驱动器已满。Clonezilla 也失败了,我忘记了确切的错误消息,但它仍然抱怨目标驱动器上没有足够的空间(这是在格式化之后,只复制了 9gb EXT4 分区)。

所以,请提出建议!

答案1

问题是sudo dd if=/dev/sda of=/dev/sdb复制整个设备而不关心有哪些分区以及有多少个分区。解决方案是添加计数参数

sudo dd if=/dev/sda of=/dev/sdb count=...

查找计数数字

fdisk -u -l /dev/sda 

其中 sda 是您要复制的磁盘

使用您要复制的最后一个分区的结束列中的数字作为计数。并确保您正在从正确的设备复制/复制到正确的设备。

其他可能性应该是(我很确定这有效,但需要一些确认)首先复制分区表,就像这里描述的那样 https://unix.stackexchange.com/questions/19047/how-can-i-quickly-copy-a-gpt-partition-scheme-from-one-hard-drive-to-another/19051#19051

然后复制你想要的分区

sudo dd if=/dev/sda1 of=/dev/sdb1

假设你想复制第一个分区

相关内容