Использовать устройство через SSH?

7852
culebrón

У меня есть 2 ПК с Ubuntu дома и сетевое соединение между ними.

Если я сделаю

 $ sshfs pc2root@192.168.0.2:/ /media/pc2 

я могу использовать удаленное устройство как локальное? (в данном случае: /media/pc2/dev/sr0как локальный DVD-RW). В конце концов, все в Unixes - это файл, верно?

я сделал

 culebrón@culebrón:/dev$ sudo ln -s /media/pc2/dev/sr0 dvdrw 

но безуспешно: Brasero и K3b не видят ни одного DVD-устройства.

Я знаю, что для большинства задач SSH и sshfs более чем достаточно, но хотелось бы знать, есть ли общее решение.

11
SSHFS cannot handle block devices. Look into [Network Block Device](https://sweetcode.io/introduction-to-linux-network-block-devices/) if this is something you really need. Zaz 5 лет назад 0

4 ответа на вопрос

14
Kevin Panko

SSHFS не работает таким образом - он обрабатывает файлы, но не устройства. Все является файлом, но есть много типов файлов, включая: обычные файлы, каталоги, символические ссылки, сокеты, символьные устройства и блочные устройства.

% ls -l /dev/sda brw-r----- 1 root disk 8, 0 Oct 9 20:59 /dev/sda 

Буква bуказывает на то, что это блочное устройство. Эти типы файлов поддерживают ioctlв дополнение к обычным функциям чтения и записи. Цель ioctlсостоит в том, чтобы предоставить способ выполнять «дополнительные» операции с устройством. Эти операции различны для каждого типа устройства: устройство DVD может открывать / закрывать свою дверь, но устройство Ethernet не может.

Вот почему программное обеспечение SSHFS не может сделать файлы устройств доступными по сети.

Для этой цели вам понадобится другая система, например, webCDwriter .

Я вроде не могу поверить, что webCDwriter все еще рядом. phresus 14 лет назад 1
Я никогда не пробовал - если это отстой, не вините меня: D Kevin Panko 14 лет назад 1
10
Suppressingfire

Если вы хотите получить удаленный доступ к блочному устройству, есть такой инструмент под названием « nbd » (Сетевое блочное устройство). Я использовал это в прошлом для клонирования жесткого диска dd if=/dev/nbd0 of=/dev/hdaс разумным успехом.

Однако я сомневаюсь, что это будет работать для оптических приводов.

Я думаю, что вам лучше запустить локально записывающее программное обеспечение на удаленной машине (скажем, с X или VNC) и заставить его извлекать файлы, используя обычные механизмы обмена файлами, такие как samba или NFS.

6
phresus

Linux / UNIX не являются Планом 9. «Все это файл» не означает, что это все файлы одного типа. FIFO и узлы устройств являются яркими примерами.

Нет, ты не можешь сделать это таким образом. Я бы порекомендовал использовать виртуального писателя (например, celebron пишет в образ, .iso или другой) и направить его в cdrecord через ssh.

2
quack quixote

Brasero и K3b не видят устройство DVD, потому что ядро ​​ОС вашего локального компьютера не видит устройство DVD.

Удаленно монтировать файловые системы; Существуют сетевые протоколы, такие как CIFS, NFS, AFS и даже SSHFS для обработки всех деталей доступа к файлам. Но низкоуровневый доступ к устройствам - это другое животное - обратите внимание, что ни один из этих протоколов не позволил бы, например, перераспределить или переформатировать файловую систему, к которой осуществляется доступ.

Вам понадобится протокол низкого уровня, такой как iSCSI, FCoE (Fibre Channel over Ethernet) или ATAoE (ATA over Ethernet), чтобы делать то, что вы хотите. Это может включать программное обеспечение уровня драйвера на удаленном устройстве для экспорта устройства и программное обеспечение уровня драйвера на локальном устройстве для подключения к нему. Есть программное обеспечение Windows под названием Starport, которое претендует на эту возможность, и сайт Linux-iSCSI, который может дать вам больше информации о том, что в настоящее время возможно.

Но, как правило, эти технологии используются в корпоративных дата-центрах с дорогостоящим оборудованием. Для общего домашнего использования вы действительно хотите запустить Brasero на своем удаленном компьютере и просто отобразить окно графического интерфейса в локальной системе (через X, VNC или другую технологию удаленного рабочего стола).

AFAIK, iSCSI не будет отправлять команды ATAPI. Remote X, FreeNX, VNC - отличные предложения. phresus 14 лет назад 1
хм, может и нет, но запись на удаленное оптическое устройство приведена в качестве примера iSCSI на сайте Starport. для этого может понадобиться устройство записи SCSI. или используйте ATAoE, который (теоретически) должен нормально обрабатывать ATAPI. quack quixote 14 лет назад 0