Доступ к устройствам с терминала

Доступ к устройствам с терминала

У меня есть флэш-накопитель, который я не хочу монтировать. Вместо этого я просто хочу использовать его для передачи файлов между моими компьютерами.

Есть ли способ получить доступ к моему флеш-накопителю из терминала через каталог Devices? Или единственный способ получить доступ к флеш-накопителю из терминала — сначала смонтировать его, а затем получить доступ к точке монтирования?

решение1

Вы не можете получить доступ ни к одному виду носителя информации без предварительного монтирования диска. Однако вы можете выполнить весь этот процесс с вашего терминала.

Во-первых, вам нужен идентификатор раздела ( /dev/sdXY). Вы можете использовать lsblkкоманду, чтобы узнать его. Получив этот идентификатор, вы можете запустить sudo mount /dev/sdXY /mnt. Файловая система вашего флэш-накопителя теперь будет доступна по адресу /mntи может использоваться из терминала.

Устройства в /devизвестны как блочные устройства и являются сырыми представлениями файловых систем, содержащихся в этих устройствах (где применимо). Хотя вы можете напрямую читать и писать с этих устройств, это часто плохая идея, поскольку вы игнорируете огромный уровень абстракции и защиты файловой системы.

В большинстве случаев чтение/запись на необработанные блочные устройства выполняется только для клонирования илиоченьОперации с низкоуровневыми устройствами. Файловая система обеспечивает огромный уровень абстракции, проверки ошибок и безопасности файлов.


Примечание:Раздел ниже этого блока текста предназначен только для образовательных целей. Пожалуйста, не пытайтесь сделать это на любой системе/диске, которые вам дороги, так как результаты могут быть очень легко катастрофическими. Я не несу ответственности за то, что вы сделаете, если вы последуете всему, что я скажу ниже.

Вы были предупреждены.

Учитывая это предупреждение и если вас не волнует содержимое вашего флеш-накопителя, теоретически возможно считывать и записывать данные на/с флеш-накопителя, используя операции с необработанными блоками.

В самом простом случае вы можете записать файл (скажем files.zip, ) на флэш-накопитель с помощью следующей команды:

dd if=files.zip of=/dev/sdd bs=1024

Это скопирует zip-файл в raw-блок вашего флэш-накопителя, но также (вероятно) повредит любой раздел или связанные данные, которые в настоящее время находятся на диске. Это также сделает запись о том, сколько "блоков" было записано на диск -- запишите это. Для этого примера я скажу, что было скопировано 1234 блока.

Если вы хотите прочитать файл с флеш-накопителя на другом компьютере, вы можете сделать это с помощью обратной команды:

dd if=/dev/sdd of=files.zip count=1234 bs=1024

Это извлечет необработанные данные блока с диска (содержащего ZIP-файл) для первых 1234 блоков и запишет их на files.zipваш компьютер в текущий каталог. Также обратите внимание, что этот ZIP-файл может быть фактически нечитаемым из-за поврежденных/мусорных данных в конце файла или чего-то подобного. Обязательно отметьте это при необходимости. Вы можете использовать команду, headчтобы обрезать ZIP-файл, если это необходимо.

Когда вы закончите, вам, скорее всего, понадобится отформатировать флэш-накопитель и заново разбить его на разделы и т. п., что делает это совершенно невозможным для больших операций. Просто используйте файловую систему.

Связанный контент