Монтаж без -o петли
Я написал фиктивный (ram диск) драйвер блочного устройства для ядра Linux. Когда драйвер загружен, я вижу его как /dev/mybd.
Я могу успешно перенести на него данные с помощью команды dd, успешно сравнить скопированные данные.
Проблема в том, что когда я создаю на нем файловую систему ext2/3, я должен использовать опцию -o loop с командой mount. В противном случае монтирование завершится неудачно со следующим результатом:
mount: неверный тип fs, неверный параметр, плохой суперблок на mybd, отсутствующая кодовая страница или вспомогательная программа или другая ошибка
В чем может быть проблема? Пожалуйста помоги.
Благодарю.
4 ответа
Хм, если это работает с -o loop
и без этого не работает, тогда у меня для вас плохие новости: ваше "устройство" на самом деле просто файл в /dev. Что значит ls -l /dev/mybd
шоу? Если его размер файла не равен нулю, это обычный файл, и он не имеет ничего общего с вашим драйвером.
использование mknod
создать файл устройства самостоятельно, если это необходимо.
Я вижу, вы начинаете все заново. В качестве краткого замечания о вашей предыдущей попытке, вы убедились, что ваше устройство появилось в /dev как блочное устройство, а не как символьное?
Создайте файловый элемент на устройстве перед его монтированием:
mkfs -t ext2 / dev / mybd
или же
mke2fs /dev/mybd
Устройство loop используется для монтирования блочных специальных файлов в файловой системе linux, эмулируя их как блочные устройства. Следовательно, монтирование выдает ошибку.