如何将大型目录复制到外部硬盘驱动器 Linux

如何将大型目录复制到外部硬盘驱动器 Linux

我已使用 fdisk(实际上是 gnu fdisk)将 3TB 外部硬盘格式化为 ext4,将其安装在 /media/external 并尝试将我的整个主目录复制到其中。

我认为我的第一次尝试是成功的,但是过了一会儿,当进程停止时,我无法进入复制的主目录。cd 似乎失败了:

sudo: cd: command not found

然后我认为 cp 可能存在一些限制,然后再次尝试使用 tar。

cd /from-stuff/
tar cf – . | (cd /to-stuff; tar xvf -)

我测量了我的主目录大小约为 100G。在主目录中,我运行了:

du -ch | grep total

我已将其安装为:

sudo mount -t ext4 /dev/sdd1 /media/external

请注意,我无法挂载/dev/sdd1/dev/sdd上显示的sudo fdisk -l但未显示的。

格式化时,我使用了最默认的设置,即 1 个分区,其他所有分区均默认。我确认格式化正确,因为没有任何“无效分区表错误”。我是新手,所以请耐心等待。我可能不小心选择了 GUID?但不知道如何检查或将其重新格式化为可能需要的任何格式。

我有什么明显的错误吗?有人可以提供一个 fdisk 序列来真正确保所有内容都是 1 个格式化为 ext4 的基本分区吗?

以下是我格式化操作的文档。如果可以,请澄清/补充。在此之前可能曾有一次失败的 gparted 尝试:

sudo fdisk /dev/sdb # this will pull up an interactive menu
n       # create a new partition
p       # create a primary partition
[enter] # use default value of 1 for the partition number
[enter] # use default value of 256 for first sector
[enter] # use default value for last sector
w       # write these settings and leave the interactive menu

# make the file system
sudo mkfs.ext4 /dev/sdb1

答案1

  • 有关sudo: cd: command not found

    那是正常的。cd 是 shell 内置命令。这并不意味着目标目录不存在。如果您需要以 root 身份进入该目录,请尝试“su - root”,然后 cd 到目标。

  • 关于无法挂载 /dev/sdd 的事实

    /dev/sdd 是整个 sd 磁盘(包括其主分区表、所有内容,甚至未分区的空间)。它不是分区。/dev/sdd1 是其第一个分区。请注意:您显示要挂载 /dev/sdd1 ,但您在 /dev/sdb1 上显示了 fdisk(另一个磁盘!/dev/sdb 与 /dev/sdd 不同)

  • 如果要使用新驱动器进行备份:您应该查看命令,而不是使用 tar | ( cd dest ; tar),因为每次都会复制所有内容(并且如果源文件/目录被删除,则不会删除目标文件/目录)rsync。尤其是在本地(但也适用于复制到远程位置时,因为 rsync 只会复制每个更改文件的更改部分,而不是整个文件)。但是谨防它的用法:rsync 一开始可能比较棘手。在阅读大量相关内容之前,不要使用“--delete”选项,如果源文件或目标文件在另一端没有匹配项,它可能会将其删除...查看指定源/目标目录的不同方法,有时您会添加尾随的“/”,有时则不会,这取决于您希望 rsync 采取何种操作。

答案2

我猜你的问题是 fdisk 不能处理大磁盘。它已被取代parted

它类似于 fdisk,只是针对新技术进行了更新。假设磁盘是 /dev/sdb(使用 进行检查sudo parted -l):

  1. sudo parted /dev/sdb
  2. mklabel(类型 gpt)
  3. mkpart(默认答案会创建一个最大尺寸的分区)
  4. q 退出 parted
  5. sudo mkfs.ext4 /dev/sdb1创建文件系统。

之后就只剩下 了sudo mount /dev/sdb1 /media/external。最好先使用以下命令确保自己拥有该目录sudo chown tarabyte.tarabyte /media/external

我通常用它rsync来进行大量复制,甚至是本地复制。它具有更好的输出效果,并且如果出现中断,可以轻松恢复。

rsync -avh --progress /from-stuff /to-stuff

请参阅man rsync以了解更多信息。

相关内容