2010-03-17 14 views
6

He escrito un controlador de dispositivo de bloque ficticio (disco ram) para Linux Kernel. Cuando el controlador está cargado, puedo verlo como/dev/mybd.montaje sin -o loop

Puedo transferir datos con éxito mediante el comando dd, comparar los datos copiados con éxito.

El problema es que cuando creo el sistema de archivos ext2/3, tengo que usar la opción -o loop con el comando mount. De lo contrario montaje no funciona con los siguientes resultados:

montaje: Tipo de fs mal, mala opción, mala superbloque en mybd, faltante página de códigos o programa de ayuda, u otro error

¿Cuál podría ser el problema? Por favor ayuda.

Gracias.

+0

Publique su unidad de controlador y solicite las rutinas? Tengo un controlador de ramdisk pero no he visto este error, quizás ver el código me ayude. –

+0

aah .. acaba de estrellar mi sistema linux ... hice un dd en el dispositivo equivocado! Necesito comenzar de nuevo desde la instalación de Linux ... Volveré aquí si puedo reproducir el problema. Gracias. – user295631

+0

Eche un vistazo a: http://user-mode-linux.sourceforge.net/ Puede ejecutar un Linux dentro de un sistema Linux. Eso le permitiría crear e implementar rápidamente una nueva versión del complemento. Y todos los cambios que haría (por ejemplo, 'dd') se realizarían dentro del sistema operativo invitado, por lo que no rompería su sistema operativo nativo. Como recuerdo, incluso existía la posibilidad de tener un 'delta' de los cambios en su sistema de archivos en un archivo separado, por lo que podría restaurar fácilmente el estado inicial de su sistema de archivos invitado. –

Respuesta

0

Crear un sistema de ficheros en el dispositivo antes de montarlo:

mkfs -t ext2 /dev/mybd

o

mke2fs /dev/mybd
+0

Ya lo he hecho. – user295631

+1

Intente verificar dmesg o /var/log/messages...algunas veces el kernel escribe allí información de diagnóstico. – Doug

+0

aah .. acaba de estrellar mi sistema linux .. hizo un dd en el dispositivo equivocado! Necesito comenzar de nuevo desde la instalación de Linux ... Volveré aquí si puedo reproducir el problema. Gracias. – user295631

0

El dispositivo de bucle se utiliza para montar archivos especiales de bloques del sistema de archivos Linux emular a ellos como dispositivos de bloque. Por lo tanto, el monte arroja un error.

1

Veo que está empezando de nuevo. Como nota rápida sobre su intento anterior, ¿se aseguró de que su dispositivo apareciera en/dev como un dispositivo bloque y no uno uno?

3

Hmm, si funciona con -o loop y no funciona sin, entonces tengo malas noticias para usted: su "dispositivo" es en realidad un simple archivo en/dev. ¿Qué muestra ls -l /dev/mybd? Si su tamaño de archivo no es cero, es un archivo normal y no tiene nada que ver con su controlador.

Use mknod para crear el archivo del dispositivo usted mismo si es necesario.