DragonFlyBSD

Estou usando Debian GNU/Linux já há cinco anos; andei pensando em testar um sistema BSD. Acabei escolhendo o DragonFly BSD para testar. É baseado no FreeBSD, e o time de desenvolvimento dele está testando alguns conceitos novos em SO. Apesar dos novos conceitos não estarem inteiramente implementados, já funciona bem, e pode ser interessante para aprender alguma coisa em programação de SOs, também.

Comecei a instalação do DragonFlyBSD. Dei boot com o live CD.
O instalador automático (logar como installer) não funcionou, então loguei como root mesmo e fiz a instalação manualmente. Segui o DragonFly Handbook e o README do CD, mais estes dois documentos:
http://www.neuronenwerk.de/files/cdinstall.html
http://www.samspublishing.com/articles/article.asp?p=32084&seqNum=5&rl=1
Abaixo está uma descrição resumida do que fiz. Se quiser acompanhar o que fiz com mais detalhes, sugiro que siga o README do CD no tópico “Instalação Manual” usando os outros documentos como referência.
Além disso, à medida em que fui precisando digitar os comandos, fui lendo as manpages dos comandos:
fdisk
disklabel
boot0cfg
Os sistemas BSD chamam partição de slices. Além disso, o esquema de divisão de disco usado pelos BSD admite a existência de “sub-partições” que são chamadas de partições. Logo, a nomenclatura é:
Outros sistemas: partição – sub-partição
BSDs: slices – partição
Para evitar confusões, daqui para a frente cada vez que usar os termos do BSD os porei entre aspas.
Notar que outros sistemas (Linux, Windows, etc.) não possuem o mesmo esquema de sub-partição que os BSD. Isto dá aos BSD a vantagem de usar apenas uma partição no disco, caso você queira usar mais de um sistema na mesma máquina como eu. A desvantagem é que a partição deve ser primária, pois os BSDs não acessam partições estendidas.
Voltando à minha instalação:
Usei o segundo “slice” do meu HD; como é um HD SATA ele é reconhecido no DF como ad6, logo a partição foi ad6s2.
Dentro do “slice”, criei apenas duas “partições”: uma para o root / e outra para o diretório /usr , diferente do que os documentos de instalação recomendam. Não quis criar uma “partição” /home pois queria tentar usar a mesma do Linux, nem criei uma “partição” para swap (também queria tentar usar a mesma do Linux para economizar espaço em disco; além do mais tenho 512MB de RAM, então imagino que a falta do swap em disco não faça muita diferença por enquanto). Logo, as duas “partições” que criei são ad6s2a e ad6s2f.
Segue a seqüência aproximada dOs comandos usados.

  1. Já havia dividido o disco com o fdisk do Linux, então não foi preciso usar o fdisk do DF. Apenas rodei um “fdisk -s ad6” para me certificar que estava tudo OK.
  2. disklabel -B -r -w ad6s2 auto
    disklabel -e ad6s2

    Depois desse último comando, o editor vi aparece com uma arquivo-texto descrevendo as “partições” dentro do “slice” ad6s2. Editei mais ou menos como se segue:
    # size offset fstype [fsize bsize bps/cpg]
    a: 1073741824 0 4.2BSD
    c: xxxxxxx 0 unused 0 0
    f: * * 4.2BSD

    Sendo que a linha c: já existia, apenas adicionei as outras. Dei 1G para a “partição” a: (/) e ~9G para f: (/usr). Segui as orientações na manpage do disklabel para saber como editar este arquivo (man 8 disklabel).
  3. O passo seguinte de acordo com o README era criar os device nodes correspondentes às “slices” e “partições” recém-criadas:
    cd /dev
    ./MAKEDEV ad6s2a
    ./MAKEDEV ad6s2f

    No README o comando MAKEDEV vem indicado sem ./ na frente, e por isso não funciona. (no README está: cd /dev && MAKEDEV ad0s2a )
  4. Formatei os filesystems:
    newfs /dev/ad6s2a
    newfs -U /dev/ad6s2f
  5. mount /dev/ad6s2a /mnt
    mkdir /mnt/usr
    mount /dev/ad0s1f /mnt/usr
  6. Copiei os arquivos para o destino:
    cpdup / /mnt
    cpdup /etc.hdd /mnt/etc
    cpdup /dev /mnt/dev
    cpdup /usr /mnt/usr
  7. Limpeza da instalação:
    chmod 1777 /mnt/tmp
    rm -rf /mnt/var/tmp
    ln -s /tmp /mnt/var/tmp
  8. Renomeei /mnt/etc/fstab.example para /mnt/etc/fstab e alterei o arquivo para montar as “partições” que eu criei.
  9. Criei um backup do disklabel:
    disklabel ad6s2 > /mnt/etc/disklabel.ad6s2

2 pensou em “DragonFlyBSD

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *