如何将 Linux 磁盘复制到较小的闪存驱动器

如何将 Linux 磁盘复制到较小的闪存驱动器

我的 Windows 10 桌面上有一个虚拟机(VMWare WS),运行 Debian 9,安装需要 12 GB,为了安全起见,我给它分配了 15 GB。所以它实际上是一个 15 GB 的硬盘。

我需要将此虚拟机的多个副本复制到 8 GB 可启动闪存驱动器上。

于是我将其精简(删除了许多我不需要的软件包),并使用 GParted Live 调整大小并减少分区,这样系统总共只使用大约 6 GB。启动正常,没有问题。甚至移动了交换分区,这样最后大约 9 GB 的空间就完全没有分配了。

所以我现在有一个 6 GB 的系统,我想把它放到 8 GB 的闪存驱动器上……

我尝试使用 GParted 复制分区,并在尝试启动时看到一个闪烁的“_”。

Google-fu 和 GParted 不会复制 GRUB,所以不行。

然后我尝试了 Clonezilla 设备到设备克隆,它抱怨目标磁盘太小,因为 Clonezilla 太愚蠢了,看不到源磁盘上最后 9 GB 的空间没有被使用。

我使用专家部分 (-icds) 中的覆盖来忽略磁盘大小,并将虚拟机复制到闪存驱动器。在我的其中一台机器上启动该驱动器,并遇到了 GRUB(耶!)。

不幸的是,这种喜悦是短暂的,正如系统显示的那样……

/dev/sdb1:干净,119211/349504 个文件,1052948/1408000 个块 _

然后我的朋友,闪烁的光标又出现了。

那么我在这里做错了什么?如何将 Linux 的大小调整得更小,并将其复制到一个或多个驱动器上,而不必完全重建/重新安装/重新编译该死的操作系统?

答案1

GParted 可以完成除安装 GRUB 之外的所有工作。但是,GRUB 所需的所有内容(包括设置)都在复制的分区上。

  1. 要复制的系统外的工作(例如 livecd)。

  2. 使用 GParted 复制(缩小)分区。

  3. 安装 GRUB。此处,USB 驱动器/dev/sdx安装到/mnt/stick

    grub-install --force --removable --boot-directory=/mnt/stick/boot /dev/sdx
    

答案2

我会这样做:

  1. 在闪存驱动器中创建您想要的分区。
  2. 使用命令将相应文件系统的内容复制到闪存驱动器cp -a -x。此命令仅复制一个文件系统的内容,因此您需要对所有文件系统(/以及/boot默认的 Debian 安装)运行它。
  3. 运行dpkg-reconfigure grub-pc,它会询问你选项以及你想安装 GRUB 的位置。在这里选择闪存驱动器。

此后,您应该有一个可启动的闪存驱动器。

相关内容