Instalando o GRUB

Monte a imagem criada anteriormente, para que possamos trabalha-la:

mount /dev/loop2 mnt/hdd/

Crie uma pasta para o GRUB e copie os arquivos stage1 e stage2 files. Também copie o kernel criado anteriormente para a imagem montada:

mkdir -p /myos/hdd/boot/grub
cp -r /usr/lib/grub/i386/stage1 /usr/lib/grub/i386/stage2 /boot/grub/menu.lst /myos/boot/grub
cp -r MeuOsKernel /myos/hdd/

Edite menu.lst e coloque a informação do kernel:

default 0
timeout 10
title=Meu Primeiro SO
root (hd0,0)
kernel /MeuOsKernel

Agora vamos instalar o GRUB propriamente dito.

Inicie, em um prompt de comando, o GRUB:

grub --device-map=/dev/null

Entre o seguinte comando para mapear o grub:

device (hd0) /myos/hdd.img
root (hd0,0)
setup (hd0)

Usando a imagem:

Teremos de seguir um processo semelhante ao de criação de um dispositivo de loopback e montagem da imagem que acabamos de criar:

losetup -o 32256 /dev/loop3 /myos/hdd.img
mount /dev/loop3 /myos/hdd
chown -R username:username /myos/hdd

Se você não tem nenhum dispositivo de loopback disponível, poderá ser excluido alguns utilizando o comando losetup -d.

Inicialize o sistema com o software KVM. Não se esqueça de especificar a quantidade de memória do emulador caso contrário, pode se deparar com um erro de memória (out of memory):

kvm /myos/hdd.img -m 512

Você deverá ver o seu kernel como uma das opções de menu no GRUB. Por alguma razão, tem um erro na inicialização do kernel selecionando-o no menu. Então entre com a linha de comando GRUB pressionando ‘c’ no menu de inicialização e insira os seguintes comandos:

grub> root (hd0,0)
grub> kernel /MeuOsKernel
grub> boot

Bem vindo a main do meu proprio SO!

Também pode iniciar usando o sistema bochs. O seguinte arquivo bochssrc.bxrc pode ser utilizado:

###############################################################
# bochsrc.txt file for DLX Linux disk image.
###############################################################
# how much memory the emulated machine will have
megs: 512
# filename of ROM images
romimage: file=../BIOS-bochs-latest
vgaromimage: file=../VGABIOS-lgpl-latest
# what disk images will be used
floppya: 1_44=floppya.img, status=inserted
floppyb: 1_44=floppyb.img, status=inserted
# hard disk
ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14
ata0-master: type=disk, path="hdd.img", cylinders=306, heads=4, spt=17
# choose the boot disk.
boot: c
# default config interface is textconfig.
#config_interface: textconfig
#config_interface: wx
#display_library: x
# other choices: win32 sdl wx carbon amigaos beos macintosh nogui rfb term svga
# where do we send log messages?
log: bochsout.txt
# disable the mouse, since DLX is text only
mouse: enabled=0
# enable key mapping, using US layout as default.
#
# NOTE: In Bochs 1.4, keyboard mapping is only 100% implemented on X windows.
# However, the key mapping tables are used in the paste function, so
# in the DLX Linux example I'm enabling keyboard_mapping so that paste
# will work. Cut&Paste is currently implemented on win32 and X windows only.
#keyboard_mapping: enabled=1, map=$BXSHARE/keymaps/x11-pc-us.map
#keyboard_mapping: enabled=1, map=$BXSHARE/keymaps/x11-pc-fr.map
#keyboard_mapping: enabled=1, map=$BXSHARE/keymaps/x11-pc-de.map
#keyboard_mapping: enabled=1, map=$BXSHARE/keymaps/x11-pc-es.map

Coloque a imagem no sistema através do seguinte comando:

bochs -q -f bochsrc.bxrc

Voltar a página inicial

  1. No comments yet.
Submitting Comment, Give me a second...

Leave a comment

 

Allowed tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>
Trackbacks & Pingbacks ( 0 )
  1. No trackbacks yet.