Você não deve precisar de 32 mb, você realmente só precisa inicializar o linux (o kernel ) e ter certeza de que ele tem suporte para drives USB embutidos.
Pode ser complicado fazer com que encontre a partição root correta se o computador tiver vários discos SATA / USB, mas além disso, basta carregar o kernel e informá-lo para montar o pendrive como root.
Eu acho que isso não vai encaixar muito bem em um disquete (a menos que você domine a arte de diminuir kernels ou possua uma unidade de disquete de 2.88 e disquetes compatíveis), mas isso deve tornar o requisito de espaço mais simples.
Se isso falhar, bem, você pode tentar encontrar (ou codificar) um pequeno programa que é capaz de lidar com drives USB e colocá-lo em um disquete. Gostaria de saber se os gerenciadores de inicialização, como o Smart Boot Manager , conseguem carregar os discos USB.
Editar : na compilação do seu próprio kernel: o procedimento não é difícil, é fácil. A parte difícil é encontrar exatamente o que você precisa e o que você pode descartar. O capítulo do Manual do Gentoo sobre configuração do kernel mostra você os passos - para breve, você
-
Obtenha o código-fonte do kernel e certifique-se de que o sistema tenha as ferramentas para compilá-lo (esta última parte não é coberta pelo Manual do Gentoo porque, bem, o Gentoo sempre possui essas ferramentas)
-
Configurando o kernel: se você não está acostumado com o desenvolvimento do UNIX, muitas vezes as etapas de desenvolvimento são codificadas em um único arquivo com receitas, o
Makefile
, que é usado pormake
. O Linux o utiliza e oferece várias maneiras (interfaces) para configurar o Linux:make xconfig
abre uma ferramenta gráfica,make config
faz isso com texto simples, e eu geralmente usomake menuconfig
, que fornece um menu legal (texto) . -
Compilando o kernel: Oh, apenas
make
, então ele compila o código e constrói a imagem -
Copiando o kernel compilado para onde ele deveria estar em
-
Diga ao bootloader sobre esse kernel
Agora o problema é como fazer algo útil com isso, você quer tornar o seu kernel muito pequeno, então a possibilidade é ativar o suporte para módulos e apenas compilar no kernel quaisquer recursos modulares você precisa durante a inicialização (inclui suporte para o controlador USB e qualquer sistema de arquivos em que a unidade USB esteja), e o resto que você precisa deve ir como módulos para a unidade USB (eles podem ser carregados posteriormente).
O próprio kernel tem alvos para construir uma imagem de disquete, make fdimage
, make fdimage144
e make fdimage288
, mas eu me pergunto como isso se comporta se não for possível construir uma imagem tão pequena ...
Eu também me pergunto se alguém poderia construir um kernel realmente minimalista com suporte a kexec e nenhum módulo, que apenas lê o drive USB e como um binário roda algo que kexec
s outro kernel ( kexec
, por analogia com o POSIX exec
, substitui o kernel