Назад | Перейти на главную страницу

Modprobe не создает устройство nbd

Я запускаю сервер с Debian 8, и после запуска modprobe nbd, программа работает нормально. Однако устройство не создается, так как /dev/nbd0 не существует. Что мне делать, чтобы modprobe работал правильно?

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

разрешение

Выполните эти команды:

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

Последняя команда должна выглядеть так:

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

Объяснение

Мы определили в чате который /dev не обновлялся, потому что был смонтирован как tmpfs вместо как devtmpfs.

Вы можете проверить второй столбец следующей команды, чтобы узнать, /dev установлен как tmpfs или devtmpfs:

df -T /dev

Без devtmpfs, только файлы устройств и символов, определенные во время начальной загрузки, будут заполнены в /dev. devtmpfs позволяет добавлять и удалять устройства после загрузки.

Размонтировать невозможно /dev с участием umount /dev потому что там используются специальные файлы, но можно загрузить свежий devtmpfs над существующими /dev крепление.

sudo mount -t devtmpfs none /dev монтирует devtmpfs над существующим креплением на /dev.

Теперь, когда вы это сделаете sudo modprobe nbd, файлы устройства /dev/nbd0 через /dev/nbd15 заселяться в /dev.

Причина

Я не определил почему /dev был установлен как tmpfs вместо того devtmpfs или почему udev не работал. devtmpfs должно было быть по умолчанию.

Этот ответ о сбое сервера может быть несколько зацепок.