2010-03-17 3 views
6

Я написал драйвер устройства блокировки (ram disk) для ядра linux. Когда драйвер загружен, я вижу его как/dev/mybd.монтаж без -o петли

Я могу успешно перенести данные на него с помощью команды dd, сравнить скопированные данные .

Проблема в том, что при создании файловой системы ext2/3 я должен использовать параметр -o loop с командой mount. В противном случае крепление терпит неудачу с следующий результат:

Гора: неправильный тип фс, плохой вариант, плохо суперблок на mybd, отсутствует кодовая страница или вспомогательные программы или другую ошибку

Что может быть проблема? Пожалуйста помоги.

Спасибо.

+0

Опубликовать свой блок драйверов и запросить процедуры? У меня есть драйвер ramdisk, но я не видел эту ошибку, возможно, видя, что код поможет. –

+0

aah .. просто разбил мою систему Linux .. сделал dd на неправильном устройстве! Нужно начинать снова с установки linux ... Я вернусь сюда, если смогу воспроизвести проблему. Спасибо. – user295631

+0

Посмотрите на: http://user-mode-linux.sourceforge.net/ Вы можете запустить Linux в системе Linux. Это позволит вам быстро создавать и «развертывать» новую версию плагина. И все изменения, которые вы сделаете (например, 'dd'), будут выполнены в гостевой ОС, поэтому он не сломает вашу родную ОС. Насколько я помню, была даже возможность иметь «дельту» вашей файловой системы в отдельном файле, так что вы могли бы легко восстановить начальное состояние гостевой файловой системы. –

ответ

0

Создать filesytem на устройстве перед установкой его:

mkfs -t ext2 /dev/mybd

или

mke2fs /dev/mybd
+0

Я уже это сделал. – user295631

+1

Попробуйте проверить dmesg или /var/log/messages ... иногда ядро ​​записывает там диагностическую информацию. – Doug

+0

aah .. просто разбил мою систему Linux .. сделал dd на неправильном устройстве! Нужно начинать снова с установки linux ... Я вернусь сюда, если смогу воспроизвести проблему. Спасибо. – user295631

0

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

1

Я вижу, что вы начинаете заново. Как быстрая заметка о вашей предыдущей попытке, вы убедились, что ваше устройство появилось в/dev как блок , а не персонаж один?

3

Хм, если он работает с -o loop и не работает без, то у меня плохие новости для вас: ваше «устройство» на самом деле является просто обычным файлом в/dev. Что делает ls -l /dev/mybd показать? Если его размер не равен нулю, он является обычным файлом и не имеет ничего общего с вашим драйвером.

Используйте mknod, чтобы создать файл устройства самостоятельно, если необходимо.

Смежные вопросы