Este documento apresenta quais são os passos necessários para criar um disco de boot do ModulOS. Se você quiser um disco de boot pronto, utilize os que estão disponíveis na área de download.
Atualmente, o ModulOS só suporta o sistema de arquivos ext2. Por isso, o disquete criado tem que ter esse tipo de sistema de arquivos.
Todos os passos aqui descritos devem ser feitos numa máquina rodando Linux.
1 - Crie o sistema de arquivos ext2 no disquete. Por exemplo:
$ mke2fs /dev/fd0
2 - Monte o disquete num diretório. Por exemplo:
$ mount /dev/fd0 /a
3 - Crie os diretórios system/modules, system/config e lib no disquete. Por exemplo:
$ mkdir -p /a/system/modules /a/system/config /a/lib
4 - Copie todos os módulos do sistema para o diretório system/modules. Ele deve ficar algo como:
at_video.mod chipset.mod intermanager.mod kbdlus.mod rexecmodfile.mod taskmanager.mod avltree_in.mod ext2fs.mod intmanager.mod kbdlusintl.mod rlibmodfile.mod usermodmanager.mod blockbuffer.mod fdcontroller.mod ioportmanager.mod manip.mod rsysmodfile.mod cfgmanager.mod fsmanager.mod kbd_generic.mod memmanager.mod sysmodmanager.mod
5 - Copie todos os módulos biblioteca para o diretório lib. Ele deve ficar algo como:
exception.mod manip.mod memmanager.mod sync.mod
6 - Copie o arquivo starter e os programas ls.mod e shell.mod para o diretório raiz do disquete. Ele deve ficar algo como:
lib lost+found ls.mod shell.mod starter system
7 - Crie o arquivo system.cfg em system/config com este conteúdo:
[SysModManager] modules { at_video { path=/system/modules/at_video.mod prop=0x5 } avltree_in { path=/system/modules/avltree_in.mod prop=0x5 } blockbuffer { path=/system/modules/blockbuffer.mod prop=0x5 } cfgmanager { path=/system/modules/cfgmanager.mod prop=0x5 } chipset { path=/system/modules/chipset.mod prop=0x5 } ext2fs { path=/system/modules/ext2fs.mod prop=0x5 } fdcontroller { path=/system/modules/fdcontroller.mod prop=0x5 } fsmanager { path=/system/modules/fsmanager.mod prop=0x5 } intermanager { path=/system/modules/intermanager.mod prop=0x5 } intmanager { path=/system/modules/intmanager.mod prop=0x5 } ioportmanager { path=/system/modules/ioportmanager.mod prop=0x5 } kbd_generic { path=/system/modules/kbd_generic.mod prop=0x1 } kbdlusintl { path=/system/modules/kbdlusintl.mod prop=0x1 } manip { path=/system/modules/manip.mod prop=0x5 } memmanager { path=/system/modules/memmanager.mod prop=0x5 } rexecmodfile { path=/system/modules/rexecmodfile.mod prop=0x5 } rlibmodfile { path=/system/modules/rlibmodfile.mod prop=0x5 } rsysmodfile { path=/system/modules/rsysmodfile.mod prop=0x5 } sysmodmanager { path=/system/modules/sysmodmanager.mod prop=0x7 } taskmanager { path=/system/modules/taskmanager.mod prop=0x5 } usermodmanager { path=/system/modules/usermodmanager.mod prop=0x7 } } [FSManager] root { fsImp=Ext2FS devImp=FDC data= unit=0x0 } [UserModManager] modules { exception { path=/lib/exception.mod } manip { path=/lib/manip.mod } memmanager { path=/lib/memmanager.mod } sync { path=/lib/sync.mod } } init { path=/shell.mod input { keyboard { imp=MF2KBD } } output { video { imp=AT } } }
8 - Desmonte o disquete. Por exemplo:
$ umount /a
9 - Faça o disquete poder iniciar o ModulOS com o utilitário mkext2boot. Por exemplo:
$ mkext2boot /dev/fd0
É isso! O disquete é um disquete de boot do ModulOS. Você pode testar esse disquete no Bochs (bochs.sourceforge.net).