使用 dd 完成数据传输-可能吗?

使用 dd 完成数据传输-可能吗?

我打算创建一个/home分区。唯一的问题是我的硬盘是 MBR,而不是 GPT,而且我已经使用了最多 4 个可用分区(Windows 7、用于数据的 NTFS 分区、Lubuntu 18.04 和交换分区。)

因此我想出了一个计划:使用dd它来传输我的数据,对主磁盘进行必要的更改,然后dd再次使用它来恢复数据。计划如下:

  1. 从 Live CD/USB 启动
  2. 缩小主 Lubuntu 分区(因为目标磁盘有 73 GB 可用)
  3. 将我的数据传输dd到目标磁盘
  4. 删除 Lubuntu 和交换分区,然后创建一个包含 2 个“子分区”的扩展分区
  5. dd再次使用将数据恢复到我的主磁盘
  6. 跟随本指南创建/home分区
  7. 完毕!

这可行吗?因为我不知道符号链接是否会被转移,而且我不想花 2 个小时下载软件包和更新。

答案1

从另一个驱动器启动

我建议您从另一个驱动器工作,例如 Ubuntu 实时驱动器或 Clonezilla 驱动器。

  • 备份至少全部文件,你不能失去,在你开始缩小 Lubuntu 分区之前,或者更好的是,你

    • 克隆整个当前 Lubuntu 分区dd或者克隆兹拉或者
    • 使用以下命令制作两个 tarball(保留属性)

      cd /path-to-lubuntu-root-file-system/home
      sudo tar                   -cvzf /path-to-external-drive/home.tar.gz .
      cd /path-to-lubuntu-root-file-system
      sudo tar --exclude="/home" -cvzf /path-to-external-drive/root.tar.gz .
      

      从实时驱动器启动时。

编辑分区

  • 使用gparted编辑分区表,使其符合您的要求。如果您让新根分区的头端与旧分区位于同一位置,引导加载程序可能会找到它,这样您就不需要重新安装引导加载程序 ( grub),如果不是,则很容易重新安装,‘修复’,引导加载程序

  • 如果你依赖 tarball,你可以擦除根分区和交换分区,编辑过程将非常快

  • 否则,你可以通过移动尾端来缩小它并删除交换分区
  • 在未分配的驱动器空间的头端为根文件系统创建一个分区(并为其他分区留下一些未分配的驱动器空间)
  • 创建扩展分区(使用所有未分配的驱动器空间)
  • 创建一个用于和用于交换的分区/home作为逻辑分区。

现在你可以开始从克隆的镜像文件或 tarball 中恢复数据

cd /path-to-lubuntu-home-file-system
sudo tar -xvzf /path-to-external-drive/home.tar.gz
cd /path-to-lubuntu-root-file-system
sudo tar -xvzf /path-to-external-drive/root.tar.gz
  • 使根文件系统和交换分区的 UUID 与以下行匹配/etc/fstab
  • /etc/fstab为“home”分区创建一个新行

重新启动进入更新后的系统,如果有必要的话,重新安装、‘修复’引导加载程序。


屏幕截图,其中包含一个扩展分区和两个逻辑分区,

在此处输入图片描述

在这种情况下,我减少了casper-rw持久实时驱动器的分区的大小并添加了一个home-rw分区。

相关内容