1) 我想将单个文件从 Ubuntu 18.04 的 ext4 格式分区复制到 Windows 10 的 NTFS 格式分区,而无需经过中间的 FAT32 分区。Ubuntu 中的“dd”命令可以做到这一点吗?可能需要哪些“mount”命令才能做到这一点?
2) 如果源是字节块而不是文件,“dd”能否将这些字节转换为 NTFS 格式分区中的文件格式?(我正在尝试使用 Windows 的 BCDedit 设置“\linux.bin”文件以实现 Ubuntu 双启动,如下所示:bcdedit /set {long id here} path C:\linux.bin 其中 dd 的 if= 是一个 512 字节的扇区。)
蒂姆·丹尼尔斯
答案1
1) 我想将单个文件从 Ubuntu 18.04 的 ext4 格式分区复制到 Windows 10 的 NTFS 格式分区,而无需经过中间的 FAT32 分区。Ubuntu 中的“dd”命令可以做到这一点吗?可能需要哪些“mount”命令才能做到这一点?
日不关心分区或文件系统。它的输入和输出都是普通文件,它唯一做的事情就是将数据逐字节(或逐块)地从输入复制到输出。
就你的情况而言,日并不比普通的更有用cp甚至猫在 Linux 上安装源 ext4 分区和目标 NTFS 分区后,您可以...使用复制文件cp或其他常规工具,甚至使用图形文件管理器。
要安装具有读/写功能的 NTFS 文件系统,请安装ntfs-3g
。Linux 方面不需要特殊选项(通常),但如果这是内部磁盘,则需要确保 Windows 在关机时已完全卸载它 - 即没有进入“休眠”或“混合”或“快速启动”模式。
(例如,您可以使用shutdown /s /t 0
Windows 来开始完全关机。)
2) 如果源是字节块而不是文件,“dd”能否将这些字节转换为 NTFS 格式分区中的文件格式?(我正在尝试使用 Windows 的 BCDedit 设置“\linux.bin”文件以实现 Ubuntu 双启动,如下所示:bcdedit /set {long id here} path C:\linux.bin 其中 dd 的 if= 是一个 512 字节的扇区。)
与以前答案相同。日不理解文件系统;它只是复制文件。因此,如果输出需要是 NTFS 上的文件,则必须在 Linux 本身内挂载 NTFS 文件系统,然后日将简单地写入您提供的文件。
因此,只需像上面第 1 部分中那样挂载 NTFS 分区,然后用它dd if=/dev/xxx of=/mnt/windows/linux.bin bs=... count=...
来复制引导代码。
扇区大小与最终数据无关。它只告诉日一次读取多大的块——例如,读取单个 512 字节的块比读取 512 个单字节的块要快得多,但无论哪种方式,生成的数据都是相同的。
(也就是说,dd if=A of=B bs=1 count=512
将dd if=A of=B bs=512 count=1
创建相同的文件,只是以不同的速度执行。
事实上,head -c 512 A > B
将创建一个与两者相同的文件。)