Verifique a lista (confira se você tem esses ítens antes de
continuar).
1) Versão de kernel 2.4.* (estou usando 2.4.28 e para quem
usa
Gentoo, recomenda-se o 2.4.26-gentoo-r9).
2) Kernel 2.6.*. Não funciona com ovlfs!
3) Confira se /usr/src/linux é um atalho para o kernel que
você usa.
4) Confira se /lib/modules/*kernelVersion*/build/ é um
atalho para o kernel que você usa.
5) Confira se o seu kernel está com os corretos
modules/options/tantofaz como são chamados.
Começando....
1) Baixe o vanilla kernel oficial do site:
(Vanilla kernel é um kernel "limpo" sem alguns pacotes)
2) Use o 2.4 kernel, se quiser utilizar o kernel 2.6, espere
até que alguém tenha uma solução para resolver os problemas
encontrados com o
ovlfs nesta versão, ou faça você mesmo
(mas me avise porque eu também vou querer depois rs).
3) Vá até /usr/src/ e:
Comandos:
# cd /usr/src/
# rm ./linux
# ln -s /usr/src/*Nome da pasta do seu kernel*/ linux
Perceba que ao colocar '/' em "rm ./linux", pois isto é um
link e ao tentar ser removido causará o erro: "rm: cannot
remove `linux/': Not a directory".
4) Se isso não for feito, vá em /lib/modules/*kernelVersion*/
e:
# rm ./boot
# ln -s /usr/src/linux boot
Perceba que ao colocar '/' em "rm ./boot" pois, isto é um link
e ao tentar ser removido causará o erro: "rm: cannot remove
`boot/': Not a directory".
5) Você precisará ter esses ítens compilados em seu kernel:
- devfs (CONFIG_DEVFS_FS=y)
- ext2 (CONGIG_EXT2_FS=y)
- tmpfs (CONFIG_TMPFS=y)
- loop device (CONFIG_BLK_DEV_LOOP=y)
- ramdisk (CONFIG_BLK_DEV_RAM=y)
- initrd (CONFIG_BLK_DEV_INITRD=y)
- iso filesystem (CONFIG_ISO9660_FS=y)
- with transparent decompression (CONFIG_ZISOFS=y)
Confirme se estas opções serão compiladas em seu kernel, para
ter certeza disso elas terão * a frente do seu nome. Exemplo:
[*] /proc file system support
Para isto, selecione uma opção e pressione a tecla 'Y' e verá
na tela essas opções:
Block devices ---> Loopback device support
Block devices ---> RAM disk support
Block devices ---> Initial RAM disk (initrd) support (Available after checking RAM Disk Support)
FileSystems ---> /dev file system support (EXPERIMENTAL)
FileSystems ---> Second extended fs support
FileSystems ---> Virtual memory file system support (former shm fs)
FileSystems ---> ISO 9660 CDROM file system support
FileSystems ---> Transparent decompression extension (Available after checking ISO 9660)
O que fazer em seguida?
Agora você irá compilar seu kernel:
# make dep && make clean bzImage modules modules_install
E copiar esta imagem para o diretório /boot/:
# cp /usr/src/linux/arch/i386/boot/bzImage /boot/
Após compilar o seu kernel, você precisa compilar o ovlfs.
Primeiro baixe ovlfs 2.0.1 de:
(temos em outros sites também, confira a parte de links)
Descompacte-o de preferência no diretório /tmp em seu
Linux em
desenvolvimento:
# tar -zxvf ovlfs-2.0.1.tgz
Agora entre no diretório ovlfs directory e execute build:
# cd ovlfs-2.0.1/
# ./build
Responda as perguntas assim:
Run the configuration utility [y]?
y
Build the ovl.o and klist.o modules [y]?
y
Build the documentation (requires m4) [n]?
n
Install the ovl.o and klist.o modules [y]?
y
Please enter the prefix directory or press return:
/
Install the documentation [y]?
n
Se após "compilar o ovl.o e o klist.o", as perguntas forem
assim:
Um erro do tipo:
Compiling file_test
file_test_getents.o(.text+0x1c): In function `getdents':
: undefined reference to `errno'
collect2: ld returned 1 exit status
make[1]: *** [file_test] Error 1
make[1]: Leaving directory `/usr/src/ovlfs-2.0.1/tools'
make: *** [tools] Error 2
Você pode ignorar isso e tentar compilar outro módulo de
teste, o que eu não precisei. Não fique preocupado!
Como checar se ele foi instalado?
# depmod -a
# modprobe ovl
# lsmod
Veja se é mostrado os módulos do ovl em lsmod.
Um outro modo de verificar se ele foi instalado no sistema é
conferindo se o diretório
/lib/modules/*kernelVersion*/kernel/fs/ovlfs/ existe.
Soluções para outros erros
Se você visualizou outro erro enquanto compilava, confira se
nessas outras dicas ele pode ser resolvido.
Erro:
ovl_debug.c: At top level:
../include/ovl_fs.h:477: error: storage size of `s' isn't known
make[1]: *** [ovl_debug.o] Error 1
make[1]: Leaving directory `/packages/ovlfs-2.0.1/fs'
make: *** [fs] Error 2
Solução: Você não pode compilar ovlfs com o kernel 2.6.*, verifique a
lista de requisitos:
http://slax.linux-live.org/forum/viewtopic.php?t=1935
Erro:
make[1]: Entering directory `/usr/src/linux-2.4.21-99/ovlfs-2.0.0/lists'
Compiling kernel_lists.o
In file included from kernel_lists.c:70: ../include/kernel_lists.h:163: error: conflicting types for `list_t'
/lib/modules/2.4.21-99-default/build/include/linux/list.h:21:
error: previous declaration of `list_t'
make[1]: *** [kernel_lists.o] Error 1
make[1]: Leaving directory `/usr/src/linux-2.4.21-99/ovlfs-2.0.0/lists'
make: *** [lists] Error 2
Solução: Você tem que usar o ovlfs 2.0.1 ao invés do 2.0.0.
http://slax.linux-live.org/forum/viewtopic.php?t=660
Erro:
warning: unable to find kernel symbol file at /proc/ksyms
Solução: Nesta situação a solução é fácil, se você usa
Gentoo
(ou outra distro) e você criou a partição/diretório para o seu
live cd, aqui você precisa estar como chroot. Se esta não é a sua
situação, desculpe mas eu não posso te ajudar aqui...
Se sua situação é esta, monte o diretório /proc em seu disco
local como chrooted, assim:
# mount -t proc none /dir/to/live/cd/proc/
Erro:
The error contains some things about the file_io module, which seems to be important It says something about CPU_BOARD_bla bla bla. I thought it had something to do with MTRR support (needed for NVidia's driver) but now it works. It might has something to do with an other kernel module that I forgot about.
Pseudo-solução: Se você tem este erro, remova suas
configurações e tente novamente.
# cd /usr/src/linux/
# rm ./config
# make menuconfig
Apenas selecione as opções que você realmente precise, compile
e instale o ovlfs, se funcionar, faça novamente, mas
habilitando as opções extras que você deseja que o seu sistema
tenha. Continue fazendo isso e você encontrará outras maneiras
de fazer isto. Se você sabe de outro meio, me envie um e-mail...
Verdadeira solução: Eu descobri lendo nos fóruns pela net que
este erro havia sido causado pelas configurações do kernel, no
ítem 'Processor type and features --->', se selecionar a
arquitetura i386, isso irá causar o erro quando compilar o
ovlfs. Escolha outra, uma padrão como
'Pentium-III/Celeron(Coppermine)' como um usuário em que
encontrei na net e me relatou este erro.