Os aplicativos executando no espaço do(a) usuário(a) utilizam vários sistemas de arquivos criados pelo núcleo para comunicar com o próprio núcleo. Esses sistemas de arquivos são virtuais: nenhum espaço em disco é usado por eles. O conteúdo desses sistemas de arquivos reside em memória. Esses sistemas de arquivos precisam estar montados na árvore de diretórios $LFS, de modo que os aplicativos consigam encontrá-los no ambiente chroot.
Comece criando os diretórios nos quais esses sistemas de arquivos virtuais serão montados:
mkdir -pv $LFS/{dev,proc,sys,run}
Durante uma inicialização normal de um sistema LFS, o núcleo
automaticamente monta o sistema de arquivos devtmpfs
no diretório /dev
; o núcleo cria nós de dispositivo naquele
sistema de arquivos virtuais durante o processo de inicialização ou
quando um dispositivo for primeiro detectado ou acessado. O daemon
udev possivelmente mude a propriedade ou as permissões dos nós de
dispositivo criados pelo núcleo e crie novos nós de dispositivo ou
links simbólicos para facilitar o trabalho dos(as) mantenedores(as)
de distribuição e de administradores(as) de sistema. (Veja-se o
Seção 9.3.2.2,
“Criação de Nó de Dispositivo” para detalhes). Se o núcleo do
anfitrião suportar devtmpfs
,
[então] nós podemos simplesmente montar um devtmpfs
em $LFS/dev
e confiar no núcleo para povoá-lo.
Porém, alguns núcleos de anfitrião carecem de suporte a
devtmpfs
; essas distribuições
anfitriãs usam métodos diferentes para criar o conteúdo do
/dev
. Assim, a única maneira
agnóstica ao anfitrião para povoar o diretório $LFS/dev
é a de montar vinculadamente o diretório
/dev
do sistema anfitrião. Uma
montagem vinculada é um tipo especial de montagem que produz uma
sub árvore de diretórios ou de um arquivo visível em algum outro
local. Use o seguinte comando para fazer isso.
mount -v --bind /dev $LFS/dev
Agora monte os restantes sistemas de arquivos virtuais do núcleo:
mount -v --bind /dev/pts $LFS/dev/pts mount -vt proc proc $LFS/proc mount -vt sysfs sysfs $LFS/sys mount -vt tmpfs tmpfs $LFS/run
Em alguns sistemas anfitriões, /dev/shm
é um link simbólico para /run/shm
. O tmpfs /run foi montado acima, de modo
que, nesse caso, somente um diretório precisa ser criado.
Em outros sistemas anfitriões, /dev/shm
é um ponto de montagem para um tmpfs.
Nesse caso, a montagem do /dev acima somente criará /dev/shm como
um diretório no ambiente chroot. Nessa situação, nós precisamos
montar explicitamente um tmpfs:
if [ -h $LFS/dev/shm ]; then mkdir -pv $LFS/$(readlink $LFS/dev/shm) else mount -t tmpfs -o nosuid,nodev tmpfs $LFS/dev/shm fi