1) Я хотел бы скопировать один файл из раздела ext4, отформатированного в Ubuntu 18.04, в раздел Windows 10, отформатированный в NTFS, без промежуточного раздела FAT32. Может ли команда "dd" в Ubuntu сделать это? Какие команды "mount" могут понадобиться для этого?

2) Если источником является блок байтов, а не файл, может ли "dd" перевести эти байты в формат файла в разделе, отформатированном в NTFS? (Я пытаюсь настроить файл "\linux.bin" с помощью BCDedit в Windows для двойной загрузки в Ubuntu, как показано в: bcdedit /set {длинный идентификатор здесь} путь C:\linux.bin, где dd's if = является сектор 512 байт.)

TimDaniels

1 ответ1

3

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 создаст файл, идентичный обоим.)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .