Para construir-se um sistema de arquivos raiz, deve-se ter um dispositivo extra, grande o suficiente para conter todos os arquivos antes da compactação. Deve-se ter à mão um dispositivo capaz de conter pelo menos 4 Mb. Há diversas opções:
RAMDISK_SIZE = nnn
a qual determina quanto de memória RAM será alocada. O padrão é 4096K, que deverá ser suficiente. Não se deve tentar utilizar esse disco em memória para máquinas com menos de 8 Mb de RAM.
Verifique a existência de um dispositivo como por exemplo /dev/ram0, /dev/ram ou /dev/ramdisk. Caso não exista, crie /dev/ram0 com mknod (número principal 1, secundário 0).
Caso não se tenha uma simulação de dispositivos (/dev/loop0, /dev/loop1, etc...) no sistema, pode-se criar uma através do comando ``mknod /dev/loop0 b 7 0''. Uma vez instalados os binários especiais de mount e umount, deve-se criar um arquivo temporário em um disco rígido com capacidade suficiente (por exemplo, /tmp/fsfile). Pode-se, por exemplo, utilizar o comando:
para criar um arquivo com nnn blocos.
Deve-se utilizar então o nome do arquivo no lugar do DISPOSITIVO a seguir. Ao utilizar o comando mount deve-se incluir a opção ``-o loop'' para definir uma simulação de dispositivos. Por exemplo:
mount -o loop -t ext2 /tmp/fsfile /mnt
irá montar /tmp/fsfile (através de uma simulação de dispositivo) no ponto de montagem /mnt. Através do comando df pode-se obter a confirmação disso.
Após a escolha de alguma dessas opções, deve-se preparar o DISPOSITIVO com o seguinte comando:
dd if=/dev/zero of=DISPOSITIVO bs=1k count=3000
Este comando inicializa com zeros o DISPOSITIVO. Este passo é importante pois o sistema de arquivos será compactado posteriormente e as partes não utilizadas e preenchidas com zeros, atingirão o máximo de compactação.
Após, pode-se criar o sistema de arquivos. O kernel do Linux reconhece dois tipos de sistemas de arquivos para discos raiz a serem automaticamente copiados para discos em memória. Há o minix e o ext2, sendo o segundo o mais indicado. No caso de utilização do ext2, pode ser útil o uso da opção -i para especificar um número maior de inodes que o padrão do sistema; -i 2000 é o valor sugerido, garantindo-se assim que não faltarão inodes. Alternativamente, pode-se salvar inodes removendo-se os diversos arquivos dev desnecessários. mke2fs irá criar 360 inodes por padrão em um disquete 1.44. Cremos que 120 inodes são suficientes para um disco de emergência padrão, mas caso todos os dispositivos /dev sejam incluídos, então pode-se facilmente exceder os 360 disponíveis. Usar um sistema de arquivos raiz compactado permite um sistema de arquivos maior, provocando a utilização de um número de inodes maior que o padrão, porém pode ainda ser necessário reduzir o número de arquivos ou incrementar o número de inodes.
O comando necessário será algo similar a:
(Caso se esteja usando uma simulação de dispositivos, o arquivo em disco que se esteja utilizando deve ser informado no lugar do DISPOSITIVO. Neste caso mke2fs perguntará se realmente se deseja executar o comando e a resposta deve ser positiva.)
O comando mke2fs automaticamente detectará o espaço disponível e fará a configuração automaticamente. O parâmetro -m 0 evita a alocação de espaço para o raiz, e adicionalmente provê mais espaço útil em disco.
A seguir deve-se montar o dispositivo:
mount -t ext2 DISPOSITIVO /mnt
(Deve-se criar um ponto de montagem mnt caso ele ainda não exista). Nas próximas seções, todos os nomes de diretórios são assumidos como relativos a /mnt.