4. Construindo um sistema de arquivos a partir do zero

Como os cartões Compact Flash compatíveis com ATA são vistos pelo FreeBSD como discos rígidos IDE normais, você poderia teoricamente instalar o FreeBSD a partir da rede usando o os disquetes do kern e mfsroot ou de um CD.

No entanto, mesmo uma pequena instalação do FreeBSD utilizando procedimentos normais de instalação pode produzir um sistema com tamanho maior que 200 megabytes. Como a maioria das pessoas usará dispositivos de memória flash menores (128 megabytes são considerados razoavelmente grandes - 32 ou até mesmo 16 megabytes são comuns), uma instalação usando mecanismos normais não será possível - simplesmente não há espaço em disco suficiente nem para as menores instalações convencionais.

A maneira mais fácil de superar essa limitação de espaço é instalar o FreeBSD usando meios convencionais em um disco rígido normal. Após a conclusão da instalação, reduza o sistema operacional para um tamanho que caiba na mídia flash e compacte o sistema de arquivos inteiro com o tar. Os passos seguintes irão guiá-lo através do processo de preparação de uma parte da memória flash para o seu sistema de arquivos compactado com o tar. Lembre-se de que não estamos executando uma instalação normal, logo as operações como particionamento, criação dos labels, criação do sistema de arquivos, etc. precisam ser executadas manualmente. Além dos disquetes do kern e mfsroot, você também precisará usar o disquete do fixit.

  1. Particionando seu Dispositivo de Mídia Flash

    Após inicializar com os disquetes do kern e mfsroot, escolha custom no menu de instalação. No menu de instalação personalizada, escolha partition. No menu de partições, você deve apagar todas as partições existentes usando a tecla d. Depois de excluir todas as partições existentes, crie uma partição usando a tecla c e aceite o valor padrão para o tamanho da partição. Quando perguntado sobre o tipo da partição, certifique-se de que o valor esteja configurado para 165. Agora escreva esta tabela de partições no disco pressionando w (esta é uma opção oculta nesta tela). Se você estiver usando um cartão compact flash compatível com ATA, deverá escolher o FreeBSD Boot Manager. Agora pressione q para sair do menu de partições. Você verá novamente o menu do gerenciador de inicialização - repita a escolha feita anteriormente.

  2. Criando Sistemas de Arquivos em seu Dispositivo de Memória Flash

    Saia do menu de instalação personalizada e, no menu de instalação principal, escolha a opção fixit. Depois de entrar no ambiente do fixit, digite o seguinte comando:

    # disklabel -e /dev/ad0c

    Neste ponto, você terá entrado no editor vi sob os auspícios do comando disklabel. Em seguida, você precisa adicionar uma linha a: no final do arquivo. Esta linha a: deve ser semelhante a linha abaixo:

    a:      123456  0       4.2BSD  0       0

    Onde 123456 é um número o qual é exatamente o mesmo que o número existente na entrada c: para o tamanho. Basicamente, você está duplicando a linha c: existente como uma linha a:, certifique-se de que o fstype seja 4.2BSD. Salve o arquivo e saia.

    # disklabel -B -r /dev/ad0c
    # newfs /dev/ad0a
  3. Colocando seu Sistema de Arquivos na Mídia Flash

    Monte a mídia flash recém-preparada:

    # mount /dev/ad0a /flash

    Coloque esta máquina na rede para que possamos transferir nosso arquivo tar e extrai-lo em nosso sistema de arquivos de mídia flash. Um exemplo de como fazer isso é:

    # ifconfig xl0 192.168.0.10 netmask 255.255.255.0
    # route add default 192.168.0.1

    Agora que a máquina está na rede, transfira seu arquivo tar. Você pode se deparar com um pequeno dilema neste ponto - se a sua memória flash tiver por exemplo 128 megabytes, e seu arquivo tar for maior que 64 megabytes, você não poderá ter o seu arquivo tar na mídia flash ao mesmo tempo em que realiza a descompressão - você ficará sem espaço. Uma solução para esse problema, se você estiver usando FTP, é descompactar o arquivo enquanto ele é transferido por FTP. Se você realizar sua transferência desta maneira, você nunca terá o arquivo tar e o conteúdo do tar em seu disco ao mesmo tempo:

    ftp> get tarfile.tar "| tar xvf -"

    Se o seu arquivo tar estiver gzipado, você pode fazer isso também:

    ftp> get tarfile.tar "| zcat | tar xvf -"

    Depois que o conteúdo do seu sistema de arquivos compactado pelo tar estiver no sistema de arquivos da sua memória flash, você poderá desmontar a memória flash e reinicializar:

    # cd /
    # umount /flash
    # exit

    Assumindo que você configurou seu sistema de arquivos corretamente quando ele foi construído no disco rígido normal (com seus sistemas de arquivos montado como read-only, e com as opções necessárias compiladas no kernel) você agora deve inicializar com sucesso seu sistema embarcado FreeBSD.

All FreeBSD documents are available for download at https://download.freebsd.org/ftp/doc/

Questions that are not answered by the documentation may be sent to <freebsd-questions@FreeBSD.org>.
Send questions about this document to <freebsd-doc@FreeBSD.org>.