请帮忙,我需要将 148GiB 的数据从 Android 手机传输到计算机。
我的手机是 Oppo A96,空间不足:
它是满屏录制视频,总共占用了148GiB空间,我打算将文件移动到我的4TB HDD(3725.29 GiB容量),这样我就可以释放空间,然后我可以编辑和压缩视频在我将它们发布到我的 Youtube 频道之前。
当然我有USB数据线,所以我将数据线的一端插入手机,另一端插入电脑的USB 3.0端口,将手机连接到电脑,并在提示中选择“传输文件”,并开始使用 Windows 资源管理器复制文件:
这需要很长时间。
完成转移需要超过 4.5 小时,我已取消该操作,我不能等待 4.5 小时才能完成移动操作,即使在不太可能的情况下我可以,当操作完成时我也不会'无法访问计算机,这是一些“技术困难”,我不会在这里讨论。
于是我打开任务管理器,发现:
Windows 资源管理器仅以可怜的 37.1 MB/s 的速度移动文件...
USB 3.0的理论传输速度为4.8 Gbit/s:
4.8 * 1000^3 bit/s
600 * 1000^2 byte/s
600 * 1000^2/1024^2 mebibyte/s
572.20458984375 MiB/s
Run Code Online (Sandbox Code Playgroud)
以及该特定硬盘的性能:
我如何加快这个过程,使其尽可能快?
如果是普通驱动器,我会使用 FastCopy,但这里我通过 USB 电缆访问模拟文件系统,所以我不知道这是否是最有效的解决方案。
如果文件内容很重要,其中大约一半是 JPEG 屏幕截图,所有这些屏幕截图的大小都小于 1MiB。其他文件是各种大小的 MPEG-4 屏幕录制文件,但大多数都在 0.5 - 5 GiB 之间。其中有 95 张图片和 100 个视频,总共 159636475587 字节(148.67 GiB)。
所有涉及蓝牙、Wi-Fi 和云存储的选项只能比物理连接慢,它们的带宽都比 USB 3.0 窄。
刚查了一下,手机的USB接口是Type-C源,不知道是否支持USB 3.0,不过没有说明。至于数据线,我不知道,也许我会为手机买一根USB 3.0数据线。
我的硬盘有坏块或扇区,由于潜在的机械问题而无法读取,例如磁盘磁头坏、电机坏或其他一些导致硬盘读取数据极其缓慢且大量数据的问题读取错误。我看到平均 50 KB/秒,有些读取速度低于 10 KB/秒,并且经常完全卡在文件或扇区上,通常很长一段时间 - 从 2-10 分钟或更长时间(当在超时之前使用 rsync)。
速度似乎变化很大,它经常卡在文件上,当它最终“解开”时,它似乎只持续了一小段时间,然后再次卡住。驱动器也非常安静,只有偶尔的文件复制声音(通常是在它卡住/解开一小段时间,然后再次卡住之前)。因此,不存在通常与 HDD 死亡相关的那些邪恶声音。有人建议,这些问题听起来可能是由磁头未对齐引起的,需要大量重新读取才能最终成功读取数据。听起来很有道理,但我离题了......
无论如何,rsync 的问题在于它似乎没有像样的错误处理支持。显然,这并不意味着,以恢复从失败的硬盘中的数据,但所有的所谓的“数据恢复”实用工具在那里,都意味着这种使用通常集中在被删除的文件恢复或弄乱了分区,而不是从垂死的硬盘驱动器上复制文件。显然,已删除的文件恢复不是我需要的,所以也许您可以理解我对无法找到我所追求的内容的失望。
自然,这就是您可能会说“您应该使用 ddrescue!”的地方。好吧,这一切都很好,但我已经备份了大部分数据,所以我只想恢复某些文件。我不关心尝试像 ddrescue 那样逐块恢复完整分区。我只对拯救特定的文件和目录感兴趣。
理想情况下,我想要的是 rsync 和 ddrescue 之间的某种交叉:允许我将源和目标指定为 rsync 等普通文件的目录(而不是 ddrescue 要求的两个完整分区),并可以通过以下方式跳过文件初始运行中出现错误,然后允许我在以后的运行中尝试恢复那些有错误的文件(当然,命令略有更改),甚至可能提供一个选项来指定重试尝试的次数……就像ddrescue 如何处理块,只有我想要一个可以像 rsync 一样处理特定文件/目录的实用程序。
那么我是在这里做白日梦,还是有什么东西可以做到这一点?或者,甚至可能是一种使 rsync 或 ddrescue 以这种方式工作的方法?我真的对任何可能有效的解决方案持开放态度,只要它们让我选择我想要“拯救”的文件,并且可以在初始运行时跳过有错误的文件,然后再尝试/重试这些错误。
到目前为止,我已经尝试使用以下选项进行 rsync,但它通常会在文件上停留的时间超过超时时间,理想情况下,我只是希望它移动到下一个文件,稍后再返回到它获取的文件坚持。我不认为这是可能的。无论如何,这是我迄今为止一直在使用的:
rsync -avP --stats --block-size=512 --timeout=600 /path/to/source/* /path/to/destination/
Run Code Online (Sandbox Code Playgroud) 如果我执行以下命令:
cp -R /myfiles /mydestination
Run Code Online (Sandbox Code Playgroud)
如果myfiles包含多个子目录和文件,它们将按什么顺序复制?
例如,目录可能命名为 0123a, 9993c, myfolder, xfolder。
ls据我所知,它们不是按字母顺序或按日期顺序或按它们在使用标准命令时出现的顺序复制的,那么实际上是什么决定了顺序?
编辑:我试图确定 cp 命令使用的顺序,以确定我的复制命令在它停止之前做了多远。例如,我希望能够确定它成功复制了 4 个目录中的 3 个。
我需要在未连接到同一网络的两台计算机之间传输文件。我有第三台可以通过 VPN 看到两个网络的计算机。
在第三台计算机上,我可以执行以下操作:
scp root@firstcomputer:./file ./
Run Code Online (Sandbox Code Playgroud)
并用以下语句完成传输:
scp ./file root@secondcomputer:./
Run Code Online (Sandbox Code Playgroud)
但我不能只在一行中完成,如下所示:
scp root@firstcomputer:./file root@secondcomputer:./
Run Code Online (Sandbox Code Playgroud)
错误响应是
ssh: connect to host secondcomputer port 22: No route to host
lost connection
Run Code Online (Sandbox Code Playgroud)
我意识到这可能是因为第一台计算机无法看到第二台计算机。是否有可能给 SCP 一个参数来处理运行 SCP 程序的机器是唯一可以看到两台计算机的事实?
顺便说一下,第三台计算机是带有 Lion 的 Mac,而第一台和第二台运行的是 Debian。
我注意到将 24Mb 的数据从一个文件夹复制到另一个文件夹需要大约 30 秒,因为(我假设这是原因)它有超过 1,000 个单独的文件。复制 24Mb 不应该花这么长时间。为什么文件数量不同?
我在 MacBook(4GB 内存,Intel(R) Core(TM)2 Duo CPU P7450 @ 2.13GHz,32 位操作系统)上运行 Windows 7
编辑:NTFS 是驱动器上使用的文件系统
当我用完存储空间时,我带来了一个新硬盘,当然我需要将所有数据从旧硬盘复制到新硬盘。
当我尝试通过新硬盘管理复制的文件时,我丢失了所有文件和文件夹的所有创建日期,现在我迷失在一堆文件和文件夹中,我不记得何时使用它们,当然我失去了我可以按创建日期对其进行排序的方式。当我复制它们时,所有创建日期都设置为新的创建日期。
我想知道是否有办法复制文件和文件夹并保留创建日期?
对于已经复制的文件和文件夹,是否有机会以批处理模式更改其创建日期?
file-management windows-explorer file-transfer copy-paste windows-10
我想将 iPhone 上的(非 DRM)音乐传输到我的电脑上。
我可以使用哪个应用程序来做到这一点?我发现了几个共享软件应用程序,但它们并没有真正起作用。
我剪切并粘贴了 80GB 的文件和文件夹。在大约 80% 时,我取消了它。一些文件是否被删除并永远消失了?成功传输的文件会被删除吗?如果是,我还能恢复它们吗?
我有一台机器在几跳之外,我需要设置端口转发才能传输文件。
编辑:需要明确的是,需要多跳才能访问远程机器。在我的机器上,我设置了一个 VPN,我可以在其中访问 10.255.xx - 这是我可以通过 VPN 连接的唯一机器。一旦登录到 .xx,我就可以连接到其他机器 - .yy 就是其中之一。
从我的机器:
ssh -L 4567:localhost:4567 me@10.255.x.x
Run Code Online (Sandbox Code Playgroud)
然后从那台机器:
ssh -L 4567:localhost:22 me@10.255.y.y
Run Code Online (Sandbox Code Playgroud)
那我可以
scp -P 4567 me@localhost:/path/to/large/file.gz .
Run Code Online (Sandbox Code Playgroud)
我让这个运行过夜,才发现转移在某个时候死了。
我已经看到一些建议使用 rsync over ssh 来恢复传输,但我不清楚如何设置。这可能吗?
get file有没有办法通过简单地在 ssh 会话中运行命令来从通过 ssh 连接到的远程服务器获取文件?有没有一种方法或现有工具可以做到这一点?将路径复制并粘贴到另一个终端中的 sftp 命令中的速度很慢,因此最好有一个像这样的快速方法。
file-transfer ×10
hard-drive ×2
linux ×2
rsync ×2
scp ×2
ssh ×2
windows-7 ×2
android ×1
copy-paste ×1
ddrescue ×1
iphone ×1
macbook ×1
mp3 ×1
sftp ×1
ssh-tunnel ×1
usb ×1
windows ×1
windows-10 ×1