如何将我的 Windows 7 衍生文件从 USB 复制到 Ubuntu?

如何将我的 Windows 7 衍生文件从 USB 复制到 Ubuntu?

这似乎是一个新手问题,但我似乎找不到任何具体的答案。我(终于)摆脱了我的 Windows 7 机器,但需要将所有数据文件复制到我的 Ubuntu。我将所有文件传输到 2TB USB 外部硬盘上。但是,只有部分文件正在复制,我想是因为这些文件的权限设置不正确。这些文件是 tif、jpg 和 pdf,我可以用 Ubuntu 程序正常打开这些文件(所以不是文件损坏的问题)。我意识到我可以手动更改每个文件的权限,但我说的是数千个。有没有一种可靠的方法可以集体更改 USB 外部的权限,以便我可以复制所有文件?

这篇文章似乎没有回答我的问题:USB 驱动器不允许我复制/粘贴文件,“权限被拒绝” 其他帖子似乎讨论了服务器、双启动或虚拟机,但这些都不适用于这个问题。

或者可能存在我不知道的其他问题(例如,USB 外部设备是否为 NFTS 格式?)。
提前感谢您的帮助。

答案1

将文件从 Windows 复制到 Ubuntu 中的专用目录

当启动到 Ubuntu(已安装的系统或从 USB 启动的实时系统)时,您可以使用 Linux 工具来挂载文件系统和复制文件。

首先,Windows 应该不是处于休眠或半休眠状态,别名为“快速启动”。因此,要么关闭它,要么从 Windows 重新启动(并直接启动到 Ubuntu)。否则,Windows 文件系统将处于“脏”状态,这可能会导致复制问题。

如果没有自动安装,您可以检查 Windows 分区(通常是 NTFS 文件系统的最大分区)的设备 ID。在宽终端窗口中(拉一个角使其足够大)

lsblk -f
lsblk -m

然后挂载它

sudo mount -o rw,user,umask=0000 /dev/sdXN /mnt

其中 X 是设备字母,例如 a,N 是分区号,例如 2

或者如果是 NVMe 驱动器

sudo mount -o rw,user,umask=0000 /dev/nvmeMnpN /mnt

其中 M 是 nvme 卡号,通常为 0,N 是分区号例如 2。

然后决定复制到哪里,你可能需要创建一个专用目录,例如oldwin1在你的主目录中

cd
mkdir oldwin1

首先检查它是否将您想要的内容复制到您想要的位置。请注意源目录的尾部斜杠

# sudo rsync -Havn source/ target # for advanced backup of Linux file systems

您不希望所有文件都属于 Windows 操作系统,而只希望复制您的个人文件,因此请识别path1-to-top-of-directory-tree-to-copy要复制的每个目录树...

这里我们使用另一组选项。首先通过“试运行”检查是否一切正常

rsync -rtvn "/mnt/path1-to-top-of-directory-tree-to-copy/" ~/oldwin1

当一切看起来不错时,您就可以复制了。n从命令行中删除该选项并启动进程

rsync -rtv "/mnt/path1-to-top-of-directory-tree-to-copy/" ~/oldwin1

您可能有多个这样的路径path1 path2等需要复制到~/oldwin1 ~/oldwin2等。对每个路径使用单独的 rsync 命令,因此如果需要

cd
mkdir oldwin2
rsync -rtv "/mnt/path2-to-top-of-directory-tree-to-copy/" ~/oldwin2

ETC。

复制完成后,您可以卸载 Windows 分区

sudo umount /mnt

此复制过程应保留文件的目录结构和修改时间,并使您的用户ID成为文件的所有者。

有关选项的详细信息在手册中有说明

man rsync
    -r, --recursive             recurse into directories
    -t, --times                 preserve modification times
    -v, --verbose               increase verbosity
    -n, --dry-run               perform a trial run with no changes made

编辑:如果阅读有问题

如果出现问题,因为您的普通用户无权从 Windows 读取文件,您可以使用提升的权限sudo

试运行:

sudo rsync -rtvn "/mnt/path1-to-top-of-directory-tree-to-copy/" ~/oldwin1

复印:

sudo rsync -rtv "/mnt/path1-to-top-of-directory-tree-to-copy/" ~/oldwin1

这将使root文件成为所有者,你可能想要修复这个问题

sudo chown -R "$USER":"$USER" ~/oldwin1

相关内容