Use um dispositivo sobre SSH?

11

Eu tenho 2 PCs com o Ubuntu em casa e um link de rede entre eles.

Se eu fizer

 $ sshfs [email protected]:/ /media/pc2

posso usar um dispositivo remoto como local? (neste caso: /media/pc2/dev/sr0 como um DVD-RW local). No final, tudo em Unixes é um arquivo, certo?

eu fiz

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

mas sem sucesso: o Brasero e o K3b não veem nenhum dispositivo de DVD.

Eu sei que, para a maioria das tarefas, o SSH e o sshfs são mais que suficientes, mas gostariam de saber se há uma solução geral.

    
por culebrón 20.11.2009 / 18:05

4 respostas

14

O SSHFS não funciona dessa maneira - ele lida com arquivos, mas não com dispositivos. Tudo é um arquivo, mas há muitos tipos de arquivos, incluindo: arquivos regulares, diretórios, links simbólicos, soquetes, dispositivos de caractere e dispositivos de bloco.

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

A letra b indica que este é um dispositivo de bloco. Esses tipos de arquivos suportam ioctl além das funções normais de leitura e gravação. A finalidade de ioctl é permitir uma maneira de executar operações "extras" no dispositivo. Essas operações são diferentes para cada tipo de dispositivo: um dispositivo de DVD pode abrir / fechar sua porta, mas um dispositivo de rede não pode.

É por isso que o software SSHFS não pode disponibilizar arquivos de dispositivos pela rede.

Você precisará de um sistema diferente para esse propósito, algo como webCDwriter .

    
por 20.11.2009 / 18:22
10

Se você quiser acessar remotamente um dispositivo de bloco, existe uma ferramenta chamada ' nbd ' (Dispositivo de bloqueio de rede ). Eu usei isso no passado para clonar um disco rígido usando dd if=/dev/nbd0 of=/dev/hda com razoável sucesso.

No entanto, duvido que isso funcione para unidades ópticas.

Acho que seria melhor executar o software de gravação localmente na máquina remota (digamos, com X ou VNC) e fazer com que ele recebesse arquivos usando mecanismos comuns de compartilhamento de arquivos, como samba ou NFS.

    
por 20.11.2009 / 18:28
6

Linux / UNIX não é o Plano 9. "Tudo é um arquivo" não significa que sejam todos do mesmo tipo de arquivos. FIFOs e nós de dispositivos são exemplos primos.

Não, você não pode fazer assim. Minha recomendação seria usar um escritor virtual (celebron escreve em uma imagem, .iso ou outro) e canalizar isso para cdrecord em ssh.

    
por 20.11.2009 / 18:20
2

O Brasero e o K3b não veem um dispositivo de DVD porque o kernel do seu computador local não vê um dispositivo de DVD.

Montar sistemas de arquivos remotamente é fácil; Existem protocolos de rede como CIFS, NFS, AFS e até SSHFS para lidar com todos os detalhes do acesso a arquivos. Mas o acesso de dispositivos de baixo nível é um animal diferente - note que nenhum desses protocolos permitiria, por exemplo, reparticionar ou reformatar o sistema de arquivos sendo acessado.

Você precisaria de um protocolo de baixo nível como iSCSI, FCoE (Fibre Channel sobre Ethernet) ou ATAoE (ATA over Ethernet) para fazer o que você quer fazer. Isso envolveria software em nível de driver no dispositivo remoto para exportar o dispositivo e software em nível de driver no dispositivo local para anexá-lo. Há o software do Windows chamado Starport que reivindica esse recurso, e um Site Linux-iSCSI que pode fornecer mais informações sobre o que é atualmente possível.

Mas, geralmente, essas tecnologias são usadas em data centers corporativos com hardware caro. Para uso doméstico geral, você realmente quer rodar o Brasero em seu computador remoto e apenas exibir a janela GUI no seu sistema local (via X, VNC ou alguma outra tecnologia de desktop remoto).

    
por 20.11.2009 / 18:24