Sunday, April 20, 2008

DragonFlyBSD - Instalação de pacotes

Hoje começei a brincar com o DragonflyBSD, e até agora estou gostando, vários detalhes facilitados comparado a outros BSDs.

Mas depois de instalar e ao tentar usar o pkg_search, tive o seguinte erro:


No pkgsrc(7) tree found. Fetching pkg_summary(5) file.
fetch: http://pkgbox.dragonflybsd.org/packages/DragonFly-1.12/i386//All/pkg_summary.bz2: Not Found
fetch: http://pkgbox.dragonflybsd.org/packages/DragonFly-1.10.1/i386//All/pkg_summary.bz2: Not Found
Unable to fetch pkg_summary(5) file.


Tentei abrir estas URLs no browser mas também sem sucesso, então comecei a fuçar e descobri este site:

http://www.pkgsrc-box.org/

Que tem os packages do DragonflyBSD, então fuçando neste site descobri que aqui tem a lista dos packages:

http://www.pkgsrc-box.org/packages/stable/DragonFly-1.10/All/

E também o precioso pkg_summary.bz2:

http://www.pkgsrc-box.org/packages/stable/DragonFly-1.10/All/pkg_summary.bz2

E da versão 1.12 estão aqui:

http://pkgbox.dragonflybsd.org/packages/DragonFly-1.12/stable/All/

Boa, mas agora como configurar para usar estas URLs em vez das que vem por default?! Procurei e procurei no /etc e nada, então resolvi arriscar e fiz:


vi /usr/bin/pkg_search


Boas notícias é um script mesmo e logo nas primeiras linhas estava a string com as preciosas URLs, é preciso dar permissões de escrita no arquivo:


chmod u+w /usr/bin/pkg_search


Mudei as linhas do PKGSRCBOX1 e do PKGSRCBOX2 para:


PKGSRCBOX1=http://pkgbox.dragonflybsd.org/packages/DragonFly-1.12/stable/
PKGSRCBOX2=http://www.pkgsrc-box.org/packages/stable/DragonFly-1.10/


Depois foi só usar o pkg_search, o qual funcionou perfeitamente.


pkg_search nano


Para usar o pkg_add precisei passar a url completa do arquivo, as dependências são instaladas automaticamente se estiverem na mesma URL base:


pkg_add http://pkgbox.dragonflybsd.org/packages/DragonFly-1.12/stable/All/nano-2.0.7.tgz

Tuesday, April 8, 2008

LVM vs Mount

Se por acaso ao tentar montar uma partição no Linux e der com o seguinte erro:

mount: unknown filesystem type 'LVM2_member'

O problema é que as partições do disco foram registradas na LVM.

Minha distribuição é o OpenSuse 10.3, mas em princípio esta solução servirá para qualquer Linux.

Podemos ver a estrutura LVM com o comando:

# /sbin/pvs

PV VG Fmt Attr PSize PFree
/dev/sdb1 system lvm2 a- 5,86G 5,86G


Para mais detalhes:

# /sbin/pvscan

PV /dev/sdb1 VG system lvm2 [5,86 GB / 5,86 GB free]
Total: 1 [5,86 GB] / in use: 1 [5,86 GB] / in no VG: 0 [0 ]


Precisamos do VG Name, mais detalhes ainda:

# /sbin/pvdisplay /dev/sdb1

--- Physical volume ---
PV Name /dev/sdb1
VG Name system
PV Size 5,86 GB / not usable 3,73 MB
Allocatable yes
PE Size (KByte) 4096
Total PE 1499
Free PE 1499
Allocated PE 0
PV UUID lPwtfx-5ocj-eXah-gqcX-1bCd-kcod-YN96is


Com o VG Name que no meu caso é "system".

Podemos agora remover o Volume Group:

# vgremove system

Volume group "system" successfully removed


Se voltar a fazer o pvs, pvscan ou pvdisplay, verificamos que o disco já não tem o VG Name (Volume Group Name).

Falta remover definitivamente a partição da LVM, com o seguinte comando:

# pvremove /dev/sdb1

Labels on physical volume "/dev/sdb1" successfully wiped


Se tentar montar a partição agora não vai ser possível, vai dar sempre esta mensagem, mesmo definindo o type:

# mount /dev/sdb1 /mnt/hd1

mount: you must specify the filesystem type


Então é preciso fazer um reboot, para que os dispositivos dos discos sejam recarregados:

# reboot

Depois do reboot verifique com o pvs, pvscan ou pvdisplay, para ter a certeza que a partição já não esta registrada.

Agora só falta montar a partição normalmente:

# mount /dev/sdb1 /mnt/hd1

Para mais informações veja a documentação:
http://tldp.org/HOWTO/LVM-HOWTO/

E para saber para que serve a LVM e mais informções:
http://en.wikipedia.org/wiki/Logical_Volume_Manager_(Linux)