2009-01-08 7 views
6

Estoy usando un tutorial de barebones como base para un sistema operativo en el que estoy trabajando, y parece ser un tutorial anterior: ha sido compilar el kernel en una imagen de disquete y luego cargarlo con GRUB.¿Cómo creo programáticamente un CD de arranque?

Básicamente, todavía quiero usar GRUB, pero me gustaría tener mi sistema operativo ejecutado desde un CD en su lugar. La razón principal es que realmente no tengo una disquetera real disponible (actualmente estoy probando en VirtualBox) y, por lo tanto, no tengo manera de probar mi sistema operativo en hardware real.

He estado hurgando en la red, y puedo encontrar muchas utilidades que crean un CD de arranque desde una imagen de disquete, pero parece que todas requieren una disquetera real, además no es realmente lo que soy buscando. Me gustaría poder terminar con un CD de arranque durante mi paso de forma ideal, sin necesidad de colocar primero la imagen en un disquete, lo cual parece bastante inútil.

Supongo que la manera fácil de responder esto: ¿Cómo configuro GRUB para leer la imagen de mi kernel desde un CD? ¿Necesitaré una utilidad especial para hacer esto desde Windows? (El kernel no puede compilarse aún, eso no es por mucho tiempo)

¡Gracias!

Respuesta

5

Encontré la solución para mi proyecto por mi cuenta, con algunos consejos de la gente de OSdev. Hay una utilidad llamada mkisofs (que se puede ejecutar en Windows usando un dll cygwin) que toma un directorio y lo convierte en una imagen ISO que puede grabarse en un CD. Usando el indicador -b, puede especificar qué archivo debe residir en el sector de arranque del disco.

La solución es simplemente tener GRUB en el sector de inicio, y usar GRUB para cargar la imagen del kernel, que puedo compilar fácilmente en formato no disquete.

4

AFAIK un CD de arranque es prácticamente lo mismo que un disquete de arranque. Debe colocar el gestor de arranque (GRUB) en el sector de arranque, etc., el BIOS se encargará de las cosas de bajo nivel hasta que cambie al modo protegido.

Probablemente tengas que hacer tu imagen y luego convertirla en el disco físico real.

Aquí está la especificación El Torito CD de arranque: http://www.phoenix.com/NR/rdonlyres/98D3219C-9CC9-4DF5-B496-A286D893E36A/0/specscdrom.pdf

EDITAR: Una forma alternativa para probar su núcleo sería una memoria USB de arranque. Una vez más, el BIOS se encargará de las cosas de bajo nivel de USB hasta que encienda A20 y salte al modo protegido.

+0

... oooh, nunca pensé en USB. Buscaré eso. –

+0

No todas las computadoras pueden arrancar desde un dispositivo USB, pero la mayoría (¿todas?) Deberían ser modernas. – senfo

+0

senfo: Es cierto que no todas las computadoras pueden arrancar desde un dispositivo USB, al igual que no todas las computadoras pueden arrancar desde una unidad de CD-ROM. Pero si no tiene una unidad de disquete, probablemente sea lo suficientemente reciente como para poder hacerlo. –

1

Si está interesado en mirar el código, entonces el Moblin Image Creator es probablemente una buena aplicación para verificar. Está escrito en python y puede crear diferentes tipos de imágenes de arranque (CD, USB y NAND) para las configuraciones tanto en vivo como instalable de Moblin Linux.

+0

Ahora movido a http://wiki.meego.com/Image_Creation_For_Beginners –

Cuestiones relacionadas