1) Я хотел бы скопировать один файл из раздела ext4, отформатированного в Ubuntu 18.04, в раздел Windows 10, отформатированный в NTFS, без промежуточного раздела FAT32. Может ли команда "dd" в Ubuntu сделать это? Какие команды "mount" могут понадобиться для этого?
ДД не заботится о разделах или файловых системах. Его ввод и вывод - это обычные файлы, и единственное, что он делает, - это копирует данные побайтно (или чанк за чанк) со своего ввода на свой выход.
В вашей ситуации dd не более полезен, чем обычный cp или даже cat. После того, как вы смонтировали исходный раздел ext4 и целевой раздел NTFS в Linux, вы можете просто ... скопировать файлы, используя cp или другие обычные инструменты, или даже используя графический файловый менеджер.
Чтобы смонтировать файловую систему NTFS с функциями чтения / записи, установите ntfs-3g
. Никаких специальных опций со стороны Linux (как правило) не требуется, но если это внутренний диск, вам нужно убедиться, что Windows полностью размонтировала его во время выключения, то есть не перешла в «спящий», «гибридный» или «гибридный» режим быстрого запуска.
(Например, вы можете использовать shutdown /s /t 0
из Windows, чтобы начать полное выключение.)
2) Если источником является блок байтов, а не файл, может ли "dd" перевести эти байты в формат файла в разделе, отформатированном в NTFS? (Я пытаюсь настроить файл "\linux.bin" с помощью BCDedit в Windows для двойной загрузки в Ubuntu, как показано в: bcdedit /set {длинный идентификатор здесь} путь C:\linux.bin, где dd's if = является сектор 512 байт.)
Тот же ответ, что и раньше. дд не понимает файловые системы; он просто копирует файлы. Таким образом, если выходной файл должен быть файлом в NTFS, вы должны смонтировать файловую систему NTFS в самой Linux, и тогда dd просто запишет в файл, который вы ему предоставили.
Так что просто смонтируйте раздел NTFS, как вы это делали в части 1 выше, и используйте dd if=/dev/xxx of=/mnt/windows/linux.bin bs=... count=...
для копирования загрузочного кода.
Размер сектора не имеет отношения к окончательным данным. Он только сообщает dd, насколько большой блок должен быть прочитан за один раз - например, чтение одного 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
создаст файл, идентичный обоим.)