Я запускаю сервер с 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
должно было быть по умолчанию.
Этот ответ о сбое сервера может быть несколько зацепок.