Что происходит, когда я делаю «cat debian.iso> / dev / sdX»?

10

Я создаю live-USB и точно не понимаю: что происходит, когда я копирую файл (или даже файловую систему) непосредственно на узел устройства (в отличие от файловой системы)?

Борис Бурков
источник

Ответы:

16

Оболочка откроет устройство /dev/sdX. Весь вывод catкоманды, которая в конечном итоге является содержимым debian.iso, записывается непосредственно на это устройство.

Конечным результатом является то, что debian.isoзаписывается побайтно в начало нижележащего диска /dev/sdX.

Фактически, узел устройства создает впечатление, что низкоуровневое содержимое вашего носителя данных ведет себя как один файл. Вы пишете в этот «файл» и, следовательно, пишете на носитель. Эта философия известна как «все является файлом» и считается одной из определяющих особенностей системы Unix.

Джим Пэрис
источник
9
Эта команда отличается от dd if=debian.iso of=/dev/sdX?
2
@htor, незначительно, но ddдает вам больший контроль над размерами блоков, по умолчанию зависит от реализации (например, 1 или 512 байт). С ddего помощью вы можете потенциально выбрать лучший размер для своего блочного устройства, например 4096 байт.
mrb
Спасибо, Джим. Означает ли это, что, выполнив эту команду, я перезаписываю MBR таблицей разделов и разделом FAT на своей флэш-памяти и заполняю ее файловой системой ISO-9660 с ее 2048-байтовыми секторами и загрузчиком где-нибудь внутри? Я не знаю, как это должно работать, потому что спецификация загрузочного CD El Torito допускает несколько режимов действия этого образа CD - эмуляция дискеты, эмуляция жесткого диска и отсутствие эмуляции. Не могли бы вы также объяснить, какой смысл говорить dd (если я использую его вместо этого), какой размер блоков он должен использовать, если размер блока определяется файловой системой (т.е. они должны составлять 2048 байт в ISO)
Борис Бурков
2
@Bob За исключением ленточных накопителей, размер блока, который вы передаете, ddвлияет на производительность, но не на то, какие данные читаются и записываются. Нет никакого отношения между ddразмером блока и размером блока CD или размером блока файловой системы. Несколько мегабайт, как правило, дают вам лучшую производительность, хотя catмогут быть быстрее, чем dd.
Жиль "ТАК - перестать быть злым"
2
Как насчет загрузочного сектора, будет ли / dev / sdX загружаться как обычно, как образ CD / DVD?
математика