Você parece confuso.
/boot
é um diretório. É possível colocar os conteúdos de /boot
em uma partição diferente, mas /boot
em si é um diretório normal. Não faz sentido dizer " /boot
é uma partição".
É costume ter um diretório chamado /dev
, que contém "nós de dispositivo", como sda
, sda1
e assim por diante. Esses arquivos parecem , mas se você abrir (digamos) /dev/sda
e ler bytes dele, verá os bytes brutos no primeiro disco rígido. E se você escrever, os bytes serão gravados diretamente no disco rígido (destruindo assim a tabela de partição de disco e outras informações, portanto, não tente isso!)
Existem outros nós de dispositivos; por exemplo, se você abrir o arquivo /dev/zero
e ler a partir dele, não importa quantos bytes você pedir para ler, você nunca chegará ao final do arquivo e os bytes serão sempre zeros. É como se /dev/zero
fosse um arquivo que contivesse infinito bytes de zeros!
É claro que /dev/zero
não realmente contém bytes infinitos. Na verdade, é apenas um pequeno esboço com alguns números de códigos mágicos dizendo ao kernel Linux para falar com um driver de dispositivo específico. Da mesma forma, /dev/sda
aponta para um driver diferente (aquele para discos rígidos), /dev/sr0
aponta para outro (o driver de CD-ROM) e assim por diante. (Você pode encontrar /dev/soundcard
, /dev/tty3
e assim por diante.)
Eu acho que sua pergunta é basicamente "Precisamos de /dev
para acessar os discos, mas o /dev
está armazenado no disco, então ... wuh ?!"
Quando a partição que contém /dev
estiver montada, você poderá acessar apenas /dev
normalmente. Mas como chegamos a essa posição em primeiro lugar? Bem, essa é a magia negra da seqüência de inicialização do Linux. ; -)
A maneira antiga era escrever um parâmetro do kernel Linux que diz algo como root=(hd0,3)
para dizer que montar a partição # 3 no disco # 0 como o sistema de arquivos raiz e continuar a partir daí. (Em particular, o kernel carrega /bin/init
como processo # 1.)
A nova maneira é usar algo chamado "disco RAM inicial" ("initrd"). O jeito ainda mais novo é o "initramfs", que é sutilmente diferente de uma maneira que eu não vou aborrecê-lo agora. De qualquer forma, o seu carregador de inicialização (normalmente o GRUB) carrega o kernel Linux e initrd na memória.
Basicamente, o initrd contém uma pequena mini-versão do seu sistema operacional; contém arquivos e pastas e outras coisas. Em particular, ele contém os scripts de inicialização que sabiam onde encontrar a partição de inicialização real e monta-a para você. Uma das coisas que o initrd contém é uma pasta /dev
cheia de nós de dispositivos. Eventualmente, quando os scripts de inicialização fazem suas coisas, você encontra o dispositivo de inicialização real e o monta sobre o topo do conteúdo do initrd. E a partir daí, você pode acessar seus arquivos reais normalmente.