在 linux 中移动到更大的驱动器

Stu*_*Stu 7 linux backup drive

我在非根卷驱动器上有一个空间不足的 linux 机器。迁移到更大驱动器的最佳方法是什么?

我想我启动到单用户模式,格式化,挂载新驱动器,执行一些神奇的复制命令来保留链接、权限、文件日期和其他所有内容,然后卸载旧驱动器,将新驱动器挂载为旧名称并重新启动。

听起来对吗?我错过了什么吗?建议?提示?有人知道cp命令是什么吗?

这是一台 ubuntu 机器。

Dav*_*ett 10

如果你给出你当前的布局(fdisk -l如果你不使用 LVM,输出会做,“ fdisk -l”,“ pvdisplay -C”,“ vgdisplay -C”和“ lvdisplay -C”的输出,如果你使用 LVM)和你希望增长的驱动器/分区,我们可以给出更准确的答案。

假设“非根卷驱动器”是指具有单个分区的驱动器,其中包含要在新磁盘上增长的卷,旧磁盘显示为 sdb(及其上的分区 sdb1),现有分区显示为是 ext2 或 ext3 文件系统,新磁盘位于并分区为单个卷(例如,sdc1),并且您想完全移动到新磁盘以摆脱旧磁盘,以下将起作用:

  1. 备份数据,以防万一
  2. 停止访问卷 /dev/sdb1 的任何服务和其他进程
  3. 卸载它
  4. dd if=/dev/sdb1 of=/dev/sdc1
  5. fsck /dev/sdc1 -C 0
  6. resize2fs /dev/sdc1 -p
  7. 将指向旧设备(即在 /etc/fstab 中)的任何指针调整为新设备
  8. 重新挂载并重启服务
  9. 下次机器断电时卸下旧驱动器。您可能希望将其保留一段时间作为紧急备份,以防新驱动器出现故障

编辑: fsck 上的“-C 0”和 resize2fs 上的“-p”告诉相应的实用程序在执行任务时输出进度信息。调整大小操作应该非常快(如果使卷变小,通常只需要很多时间,因为在这种情况下需要移动更多数据)。如果您安装了pv,那么您也可以通过将对 dd 的调用替换为“pv /dev/sdb1 > /dev/sdc1”来使步骤 3 也为您提供进度信息

编辑 2:这是非常完整的卷的一个不错的选择,因为它首先逐块复制,因此不需要翻转驱动器磁头来关心文件系统结构(因此复制将与“旧驱动器可以批量读取的速度”和“新驱动器可以批量写入的速度”),并且它不会与硬链接、设备节点或文件系统中可能存在的任何其他特殊内容混淆 - 对于相当空,您会发现其中一种基于 cp/cpio 的方法要快得多,因为它们不会将所有空块从磁盘复制到磁盘