Algumas vezes o sistema de arquivos raiz é muito grande para caber em um disquete, mesmo após a sua compactação. Seguem algumas formas de reduzir seu tamanho, listadas em ordem decrescente de efetividade:
Por padrão, disquetes são formatados em 1400K, mas formatos de maior densidade estão disponíveis. fdformat poderá formatar nos seguintes tamanhos: 1600, 1680, 1722, 1743, 1760, 1840, e 1920. Muitos dispositivos de 1440K suportarão 1722K, e é este que sempre usamos para disquetes de inicialização. A página de manual fdformat e o arquivo /usr/src/linux/Documentation/devices.txt fornecem maiores informações sobre o tema.
Alguns dos mais populares interpretadores de comando para Linux, como bash
e tcsh
, são grandes e requerem diversas bibliotecas.
Alternativas mais leves existem, tais como ash
, lsh
, kiss
e smash
, os quais são muito menores e requerem menos (ou nenhuma) bibliotecas. Muitos dos interpretadores alternativos estão disponíveis em
http://sunsite.unc.edu/pub/Linux/system/shells/. Esteja certo porém de que o interpretador seja capaz de executar todos os comandos e programas configurados nos arquivos rc
incluídos no disco de inicialização.
Muitas bibliotecas e binários estão tipicamente com todos os símbolos de depuração inclusos, o que aumenta seu tamanho. Executando-se 'file
' nestes arquivos , ele apresentará a mensagem 'not stripped
' caso essa afirmativa seja verdadeira. Ao copiar binários para o seu sistema de arquivos raiz, é aconselhável utilizar:
objcopy --strip-all FROM TO
Ao copiar bibliotecas deve ser usado:
objcopy --strip-debug FROM TO
Caso alguns binários não sejam necessários durante a inicialização ou no acesso ao sistema, eles podem ser movidos para um disquete adicional. Veja a Seção Construindo um disquete de utilitários para maiores detalhes. Deve-se ainda considerar também a movimentação de módulos.
A Seção Construindo um sistema de arquivos raiz apresenta instruções sobre como construir um sistema de arquivos raiz compactado o qual é carregado em um disco em memória quando o sistema é iniciado. Este método tem diversas vantagens e é o mais comumente utilizado. De qualquer forma, alguns sistemas com pouca memória podem não suportar toda a RAM necessária para isso; e nestes casos o sistema de arquivos raiz é montado diretamente ao invés de ser copiado para um disco em memória.
Tais sistemas de arquivos são na verdade mais simples de serem construídos do que sistemas compactados, uma vez que eles podem ser construídos tanto em disquetes como em qualquer outro dispositivo, e não têm que ser compactados. Apresentaremos os procedimentos necessários e as suas diferenças em relação ao descrito até aqui. Caso seja esta a sua opção, deve-se ter em mente que se terá muito menos espaço disponível.
mke2fs
, para criar um sistema de arquivos raiz em um disquete com o tamanho apropriado.
rdev
conforme descrito.
Construir um disquete de utilitários é bastante simples, basta simplesmente criar um sistema de arquivos em um disquete formatado e copiar os arquivos para ele. Para usá-lo com o disco de inicialização, deve-se montá-lo manualmente após o sistema ser carregado.
Conforme descrito anteriormente, o disquete de utilitários pode ser montado como /usr
. Neste caso, os binários podem ser colocados no diretório /bin
no disquete de utilitários, sendo que uma indicação a /usr/bin na variável de ambiente de caminho permitirá o acesso direto a eles. Bibliotecas adicionais podem ser colocadas no diretório /lib
no disquete de utilitários.
Há vários pontos importantes para atentar-se ao se construir um disco de utilitários, a saber:
Apêndice
Listas de exemplo do conteúdo do disco de utilitários mostra um lista de exemplo de arquivos em um disquete de utilitários. Aqui estão colocadas algumas idéias que podem ser úteis: programas para examinar e manipular discos ( (format, fdisk
) e sistemas de arquivos (mke2fs, fsck, isofs.o
), um editor de textos leve (elvis, jove
), utilitários de compactação e arquivamento (gzip, tar, cpio, afio
), utilitários para fitas (mt, tob, taper
), comunicação (ppp.o, slip.o, minicom
) e dispositivos (setserial, mknod
).