Modprobe não cria dispositivo nbd

1

Estou executando um servidor com o Debian 8, e depois de executar modprobe nbd , o programa roda muito bem. No entanto, o dispositivo não é criado porque /dev/nbd0 não existe. O que devo fazer para que o modprobe funcione corretamente?

    
por SalmonKiller 02.07.2016 / 19:32

1 resposta

3

Eu tenho uma resposta parcial que efetivamente trabalha em torno de seu problema, mas não explica conclusivamente por que o problema aconteceu em primeiro lugar.

Resolução

Execute estes comandos:

sudo rmmod nbd 
sudo mount -t devtmpfs none /dev 
sudo modprobe nbd 
ls /dev/nbd*

O comando final deve ficar assim:

root@node51 [~]# ls /dev/nbd*
/dev/nbd0  /dev/nbd1  /dev/nbd10  /dev/nbd11  /dev/nbd12  /dev/nbd13  /dev/nbd14  /dev/nbd15  /dev/nbd2  /dev/nbd3  /dev/nbd4  /dev/nbd5  /dev/nbd6  /dev/nbd7  /dev/nbd8  /dev/nbd9

Explicação

Determinamos no bate-papo que /dev não estava sendo atualizado porque Ele foi montado como tmpfs em vez de como devtmpfs .

Você pode verificar a segunda coluna do comando a seguir para ver se /dev está montado como tmpfs ou devtmpfs :

df -T /dev

Sem devtmpfs , apenas os arquivos de dispositivo e de caractere definidos durante a inicialização inicial seriam preenchidos em /dev . devtmpfs permite que dispositivos sejam adicionados e removidos após a inicialização.

Não é possível desmontar /dev com umount /dev porque os arquivos especiais lá estão em uso, mas é possível carregar um novo devtmpfs sobre a montagem /dev existente.

sudo mount -t devtmpfs none /dev monta um devtmpfs sobre a montagem existente em /dev .

Agora, quando você executar sudo modprobe nbd , os arquivos do dispositivo /dev/nbd0 a /dev/nbd15 serão preenchidos em /dev .

Causa

Eu não determinei por que /dev foi montado como tmpfs em vez de devtmpfs ou por que udev não estava em execução. devtmpfs deveria ter sido o padrão.

Esta resposta na falha do servidor pode ter alguns leads.

    
por 02.07.2016 / 20:22