sexta-feira, 4 de julho de 2014

Wicd:: Acessando redes Wifi pela linha de comando com qualquer usuário

O wicd, na verdade, é como o Network Manager, e é uma dessas ferramentas de configuração de rede modernas que permite, entre outras coisas, que um usuário normal mude de rede facilmente, desde que esteja no grupo netdev.
Ele também tem ênfase em ferramentas clientes gráficas.
O Network Manager também possui ferramentas de modo texto (nmcli), que permite conectar-se a uma rede já existente, consultar que redes há disponíveis etc, mas não encontrei meio de configurar a rede pela linha de comando, sem antes configurá-lo com ferramentas gráficas (nmapplet, por exemplo).

Por essa razão, eu preferi o wicd.
Ele também tem ferramentas gráficas para configurar a rede pela interface gráfica, sendo esse, inclusive, o seu foco. Porém, diferentemente do Network Manager, as ferramentas de linha de comando não ficam devendo para as de interface gráfica.
Pode-se configurar e ativar a rede com o comando wicd-curses (depois de instalado, o que se pode fazer com apt-get install wicd-curses para o Debian).
Há, também o wicd-cli (apt-get install wicd-cli), que é mais parecido com o nmcli, mas ligeiramente mais funcional.

Como eu apenas precisar de uma ferramenta leve e em modo texto para acessar a rede wireless, o wicd-curses já cumpriu plenamente com os objetivos.

sábado, 7 de junho de 2014

Ah, se todos os manuais de comando tivessem exemplos...

Estava feliz por ter achado o cnetworkmanager para gerenciar conexões de rede (mas principalmente wireless)facilmente pela linha de conando no Debian Squeeze, quando resolvi atualizar para o Wheezy.

Descobri que o cnetworkmanager não mais estava funcionando no Wheezy, e que para a nova versão do NetworkManager, este pacote para gerenciar rede na linha de comando, simplesmente, havia sido removido.

Restou, então o nmcli, que já é parte do pacote network-manager.
O problema é que o man dele não me pareceu muito simples.
Eu tenho o defeito de só executar um comando quando tenho certeza de que entendi o manual e que ao ser executado, o comando funcionará. Isto pode ser bom em termos de segurança, mas é terrível para o aprendizado, já que aprende-se melhor fazendo.
Uma opção interessante, seria escrever exemplos dos comandos e de suas opções após estas serem explicadas.
Alguns manuais de comando possuem exemplos, se eu não engano, é o caso do comando tar.

Felizmente, existe o site "linux commands examples", que faz exatamente isso!

Pretendo escrever, pelo menos, mais 3 postagens sobre conexões à redes WiFi utilizando a linha de comando, desde a forma mais clássica, onde o usuário root é necessário, até comandos que qualquer usuário pode utilizar na linha de comando.

Por enquanto, para usar o nmcli, consultei este link aqui.

domingo, 18 de maio de 2014

Congelamento do GRUB 2 após a mensagem "Welcome to GRUB!"

Minha nova máquina, que estou configurando (novomarx) é um Intel Core 2 Duo de 1,8GHz, placa P5LD2-X HD de 80GB IDE (PATA), placa de vídeo NVIDIA GeForce 730GS de 256MB.
Ao instalar o Debian 7 (Wheezy), o GRUB 2 congelava após a mensangem "Welcome to GRUB!", e nem aparecia o menu.

O problema foi resolvido após seguir as recomendações deste link.

A "solucionática" consiste em entrar no arquivo /etc/default/grub, e descomentar a opção

GRUB_TERMINAL=console
Depois, rodar:
#update-grub

quarta-feira, 15 de janeiro de 2014

Dividindo a tela no VIM

Para dividir a tela no VIM com o arquivo atual, basta pressionar no teclado: Ctrl + w + s .

Para a janela voltar ao normal (em cima da janela atual): Ctrl + w + o .

O VIM trabalha com o conceito de buffers, e cada janela é a vizualização de um buffer.

Para fechar e salvar tudo, pressione ESC (sai do modo de edição), e:

:wall (salva tudo). :qall (fecha tudo).

Abrir e fechar janelas: CTRL + w + n Abre uma nova janela, sobrepondo a atual (:new) CTRL + w + q Fecha a janela atual, e termina após a última (:quit) .

 CTRL + w + c Fecha a janela atual (:close) .

Manipulação de Janelas: CTRL + w + w Alterna entre janelas (salta de uma para outra)
CTRL + w + j desce uma janela j .
CTTL + w + k sobe uma janela k .
CTRL + w + r Rotaciona janelas na tela .
CTRL + w + + Aumenta o espaço da janela atual (observe que o W é maiúsculo) CTRL + w + - Diminui o espaço da janela atual (observe que o W é maiúsculo) Para mais informações, a referência é o wikilivros sobre o VIM, da Wikipédia.

segunda-feira, 6 de janeiro de 2014

Configuração do /etc/X11/xorg.conf para a placa de vídeo HD5450

xorg.conf
# xorg.conf (X.Org X Window System server configuration file)
#
# This file was generated by dexconf, the Debian X Configuration tool, using
# values from the debconf database.
#
# Edit this file with caution, and see the xorg.conf manual page.
# (Type "man xorg.conf" at the shell prompt.)
#
# This file is automatically updated on xserver-xorg package upgrades *only*
# if it has not been modified since the last upgrade of the xserver-xorg
# package.
#
# If you have edited this file but would like it to be automatically updated
# again, run the following command:
#   sudo dpkg-reconfigure -phigh xserver-xorg

Section "InputDevice"
 Identifier "Generic Keyboard"
 Driver  "kbd"
 Option  "XkbRules" "xorg"
 Option  "XkbModel" "abnt2"
 Option  "XkbLayout" "br"
 Option  "XkbVariant" "abnt2"
 Option  "XkbOptions" "abnt2"
EndSection

Section "Module"
   Load  "record"
 Load  "GLcore"
 Load  "glx"
 Load  "extmod"
 Load  "xtrap"
 Load  "dri"
 Load  "dbe"
EndSection
       

Section "InputDevice"
 Identifier "Configured Mouse"
 Driver  "mouse"
EndSection

Section "Device"
 Identifier "Device0"
# Option  "UseFBDev"  "true"
 Driver  "radeon"
# Algumas op藤畫s de acelera藤υ 3D
 Option "XAA"
 Option "AccelMethod" "1" #1 pra PCIExpress
 Option "GARTSize" "64"
 Option "EnablePageFlip" "1"
 Option "ColorTiling" "1"
EndSection

#Section "Monitor"
# Identifier "Configured Monitor"
#EndSection

Section "Screen"
   Identifier  "Default Screen"
   Monitor     "Configured Monitor"
   DefaultColorDepth 24
   SubSection "Display"
      Depth 24
      Modes "1024x768" "800x600" "640x480" "320x200"
   EndSubSection
EndSection

Placa de Vídeo ATI Radeon HD5450 no Debian 7 (Wheezy)

Esta placa já é nativamente suportada no GNU/Linux, mas aparentemente, a performance dela ficou horrível usando o MAME (8% da velocidade, inicialmente).
Depois, reconfigurei o xorg.conf, e obtive 22% da velocidade.
Faltava, porém o firmware (sem ele, o desempenho dela perde até para o driver VESA), com o pacote firmware-linux-nonfree).
Depois, o MAME rodou a 100%.]

Comprei esta placa de vídeo porque não entendi a razão do driver da minha placa chrome9 ter piorado da versão 5 para as versões 6 e 7.
Continuo achando estranho  - e é esta a razão pela qual eu mantive o meu Debian 5 funcionando até hoje.
Até fevereiro, eu desinstalo esse sistema de bons serviços prestados.

terça-feira, 16 de julho de 2013

Listando os arquivos presentes em um pacote já instalado...

O comando para tal é:
dpkg -L nomedopacote


Para maiores detalhes sobre como trabalhar com pacotes Debian, este guia prático do pessoal do Debian-BR é muito útil!

Reempacotando pacotes debian já instalados no sistema

Podemos reempacotar programas já instalados. Isto é útil para fins de backup, fazer instalações "Franksteins" ou instalar em outros computadores quando não temos outra forma de obter o pacote (sem acesso a um CD-ROM com o Debian, não tem o pacote no CD, ou estamos sem Internet), mas sabemos que o pacote está instalado em algum lugar.
Precisamos instalar o pacote "dpkg-repack"
apt-get install dpkg-repack
Depois:
dpkg-repack [nome do pacote]

Para mais informações, podemos seguir este link.

Pegando arquivos das distribuições antigas do Debian

A cada dois anos, em média, uma nova versão da distribuição Debian é lançada (Só é lançada quando fica pronta, sem prazos).
A versão antiga, ainda é suportada, e seus pacotes ainda ficam disponíveis por cerca de mais um ano após o lançamento da versão nova.
Eis que quando você digita, por exemplo, "apt-get update", e o sistema retorna uma mensagem de erro.
Para continuar a ter acesso ao pacotes da distribuição antiga, é necessário substituir os links no  arquivo /etc/apt/sources.list para:
deb http://archive.debian.org/debian/ [nome da distribuição] main contrib
Por exemplo:
deb http://archive.debian.org/debian/ lenny main contrib
Em maiores detalhes, podemos consultar este link.

Debugando códigos em FORTRAN com o DDD

O DDD (Data Display Debugger) pode ser utilizado para debugar códigos escritos em FORTRAN.
O debugger padrão é o GDB, mas pode ser utilizado o debugger da Intel (IDB), caso o código tenha sido compilado com Intel FORTRAN (ifort)
É necessário compilar os códigos com a opção -g no caso do gfortran, depois digitar:
ddd [nome do programa]
Se for necessário usar o debugger da Intel:
ddd --debugger idb [nome do programa]
Estas informações podem ser vistas neste link e neste outro.

quarta-feira, 3 de outubro de 2012

quinta-feira, 8 de março de 2012

Exatamente, Nasceu uma Flor no Asfalto


Exatamente, Nasceu uma Flor no Asfalto

Gloriosa seja a desgraça, pois nos impele a sair da Inércia. O
Labor dos dias de desassossego ressuscita a Esperança.
Até a velha guarda da Física agiu, mesmo como uma flor murcha, mas...
Uma Flor nasceu no asfalto! Foi vista com alegria pela velha quase sem pétalas.
Contra o pensamento corrente e à luz da verdadeira democracia, as
Exatas mostram que também estão à serviço da liberdade, como quer a utopia.

... E uma flor nasceu no asfalto, porque...

Já foi o tempo das flores ornamentais, que apenas são belas, mas sem significado.
As flores hoje têm de ter sentido se querem ser belas, e precisam das marcas da luta.
Se Silvanas, Victors e Cássios se orgulham de Marks, Xaviers e Márcias foi...
Mais por encontrar flores fortes e vivas em terreno infértil. A esperança pode estar em qualquer lugar.
Infeliz é a universidade que deixa, voluntariamente, o canhão calar a política, pois
Mesmo a mais perfeita tecnologia academicamente construída é burra se o livre-pensar é coagido!

... É por isso que eu amos as flores nascidas no asfalto!
... E amos as flores ornamentais subversivas!!
... Estas não se contentam em ser somente ornamentais.

Atenágoras Souza Silva

quinta-feira, 12 de janeiro de 2012

Comando para deixar a tela do xmame fullscreen

Faz tempo que eu não adiciono nada neste blog...
Eu, de fato, não tive muitas experiências Linux, hoje em dia... Devo começar a fazê-las dentro de umas duas semanas.

O comando para deixar a tela inteira ao rodar o emulador, pelo menos no meu caso é:

xmame -fullscreen -ef 1 jogo

-ef 1 é a opção para duplicar a tela. Se colocado apenas fullscreen, o jogo, pelo menos no meu caso, ficará centralizado na tela com a mínima resolução disponível, mas sem tela inteira.

segunda-feira, 18 de julho de 2011

Configuração da Rede no Fedora 15

No Fedora, a configuraćão básica do sistema está no diretório /etc/sysconfig
A configuraćão de rede está distribuida em vários arquivos.
Para a configuraćão das rotas, bem como o nome do computador, temos o arquivo /etc/sysconfig/network.
Dentro dele, colocamos o nome do computador e o gateway padrão do seguinte modo:
HOSTNAME=[ nome do computador ]
GATEWAY =[ IP do gateway padrão ]

Já para a configuraćão do dispositivo da Rede em questão, temos o arquivo /etc/sysconfig/network-scripts/ifcfg-[interface de rede]. Por exemplo, /etc/network-scripts/ifcfg-eth0, a primeira interface de rede:
DEVICE=eth0 BOOTPROTO=none ---> Tipo de protocolo de rede. Neste caso é nenhum, pois a rede é estática
ONBOOT=yes ---> Informa ao sistema que a interface deve ser carregada no boot NETMASK= [ máscara de rede ] IPADDR=[ IP da máquina ] USERCTL=no
DNS1=[ Enderećo do Servidor de Nomes ]
DNS2=[ Enderećo do Servidor de Nomes ]
No caso de uma configuraćão com DHCP, em que as informaćões de rede do seu computador vem de um servidor:
DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes
Fonte: Manual do Fedora 15, citado na postagem anterior.


Manual do Fedora Core 15

Este post serve apenas para postar um link, já que esta é a distribuićão que eu uso na iniciaćão.
Eu gosto mais do Debian...
http://docs.fedoraproject.org/en-US/Fedora/15/html/Deployment_Guide/index.html

sexta-feira, 8 de julho de 2011

Mountando partições LVM

Descobri no site do FocaLinux porque, afinal, há pessoas que instalam o sistema colocando algumas partições em um LVM (Logical Volume Manager).
Embora o acesso ao disco possa ficar ligeiramente mais lento, o acesso aos blocos até melhora.
Ainda sim, não gostei da idéia. Distribuições como o Fedora, já cria um LVM por padrão. Isto dá pepino para restaurar o sistema em caso de uma pane, pois ao acessar o sistema através de um LIVE-CD, não é tão fácil mountar as partições que estão dentro de um LVM.

Bem, vamos primeiro às referências. Se você quer criar um LVM, uma boa referência é: http://focalinux.cipsga.org.br/guia/intermediario/ch-disc.htm

Mas eu queria era mountar uma partição dentro de um LVM. Antes, passemos os sites que utilizei para conseguir o que queria:

- http://www.vivaolinux.com.br/dica/Recuperando-corrigindo-erros-em-particao-%28raiz%29-em-LVM-Fedora-Core-5

- http://acassis.wordpress.com/2008/10/29/mountando-particao-lvm/

Bem, agora vou falar o que eu fiz:

1) Localizar quais partições são um LVM:
#fdisk -l /dev/sda (ou /dev/qualquer-coisa-que-seja-o-seu-hd)
resultados do comando no meu caso:

Dispositivo Boot Início Fim Blocos Id Sistema
/dev/sda1 * 1 25496 204796588+ 7 HPFS ou NTFS
/dev/sda2 25497 25521 200812+ 83 Linux
/dev/sda3 25522 30401 39198600 8e Linux LVM

2) Carregar modulo para módulo para mountar o LVM:
#modprobe dm-mod

3) Verificar onde está o grupo de volume que contém /dev/sda3, a partição LVM encontrada:
#pvs

saída:
PV VG Fmt Attr PSize PFree
/dev/sda3 VolGroup00 lvm2 a- 37,38g 32,00m

4) Listar os volumes lógicos do grupo:
# lvdisplay VolGroup00

saída:
--- Logical volume ---
LV Name /dev/VolGroup00/LogVol00
VG Name VolGroup00
LV UUID d70uZQ-fI0a-aIEB-K192-J4Eg-mDq6-6Y5jox
LV Write Access read/write
LV Status available
# open 1
LV Size 35,41 GiB
Current LE 1133
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 252:0

--- Logical volume ---
LV Name /dev/VolGroup00/LogVol01
VG Name VolGroup00
LV UUID VsIsbe-wxcS-DE0v-8Xgt-IhQO-1F97-neekCy
LV Write Access read/write
LV Status available
# open 0
LV Size 1,94 GiB
Current LE 62
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 252:1

5) Ativando o grupo lógico para ser montado:
#lvchange -a y -v /dev/VolGroup00/LogVol00

6) Finalmente, montando a partição:
#mount /dev/VolGroup00/LogVol00 /mnt/raiz (não esqueça de criar o diretório vazio antes)

sexta-feira, 4 de março de 2011

BRAMS e Grads

Para a utilização da versão 4.0 (e acho, 4.2 do BRAMS), é necessário o grads.
Entretanto, nas versões posteriores à 1.9 do grads, não há o comando 'gradsc', substituido por um supercomando grads, que executa quase todos os procedimentos do programa a partir da versão 2.07.
Para maiores detalhes, http://grads.iges.org/grads/downloads.html

quarta-feira, 2 de março de 2011

Alterando o PATH do sistema (Fedora)

É a primeira vez, desde muito tempo, que eu uso um sistema RedHat-like.
Costumava usar Conectiva Linux. Isto foi de 1998 a 2001.
A partir de 2002, passei a usar Debian, e em um breve período de trabalho, usava o próprio RedHat (por dois meses, mas só no computador de trabalho).
Agora, na minha iniciação, voltei a utilizar uma distribuição RedHat-like, desta vez, a geradora da RHLE (Red Hat Linux Enterprise - a versão paga da RedHat), a Fedora.
E eu tive dúvidas quanto ao arquivo de configuração para alterar o PATH.
É o /etc/bashrc. Desconfio que seja o mesmo no Debian, mas eu não me lembro.
Ele altera mais coisas do que o caminho, tome cuidado.
Em todo o caso, basta colocar no fim do arquivo a expressão:
PATH=$PATH:/nome-do-caminho-a-ser-colocado-no-path
export $PATH

Para alterar o arquivo somente no seu usuário normal, procure ou crie os arquivos .bash_profile, ou .bashrc

terça-feira, 28 de dezembro de 2010

Editando múltiplos arquivos com o VIM

Podemos editar múltiplos arquivos com o VIM: Eles podem ser abertos com o comando:]
vim -o arquivo1 aquivo2 arquivo3

Para alternar entre os arquivos abertos, basta pressionar duas vezes a combinação Ctrl + w

quarta-feira, 23 de junho de 2010

Comando wget - opções de download multiplo e recursividade

Com o comando wget, você pode fazer o download de sites inteiros... ou de apenas arquivos com determinadas extenções que você está interessado.
A opção -r é um pouco perigosa, já que o site poder ter links fora dele, mas é útil.
No meu caso, eu precisava fazer o download de vários pdf que compõem um livro gratuito na Internet.


wget -cr -A*.extensão http://site.arquivo.html
A opção -A é para definir as extensões aceitas, embora eu tenha baixado html, também.
A opçaõ c é para continuar o download, caso este tivesse sido interrompido antes, e a opção r é o download recursivo.

domingo, 14 de fevereiro de 2010

Configuração do Samba - Ajustando permissões de acesso e monitoramento instantâneo

Esta é mais uma configuração do SAMBA que eu fiz apenas para incluir um diretório padrão de compartilhamento de músicas e arquivos diversos.
Isto resolve o problema dos usuários não terem acesso aos arquivos multimídia de um outro, desde que os usuários tenham a intenção de colaborar com isso, é claro.

A checagem de permissões é feita tanto pelo SAMBA quanto pelo Sistema. Em um primeiro momento, o SAMBA, ao sabor da configuração do compartilhamento em /etc/samba/smb.conf (bem no Debian Lenny, o arquivo de configuração do SAMBA fica neste diretório), verifica quais os usuários que podem acessar e escrever (ou não) no recurso compartilhado (no caso, o diretório /multimidia), e depois a solicitação é passada para o sistema, que permitirá o acesso mediante a verificação de quem tem permissão sobre os diretórios e arquivos dentro deles.

Não esquecer de digitar #smbpasswd -a para cadastrá-lo no SAMBA também.
Assim, a solução que utilizei foi:

1) Criar o grupo multimidia, incluir usuários e dar o diretório /multimidia ao grupo
2) Configurar, enfim, o SAMBA para disponibilizar o recurso apenas aos usuários do grupo

Vamos agora, aos procedimentos necessários.

Parte 1: Criar o grupo multimidia, incluir usuários e dar o diretório /multimidia ao grupo

- Criação do grupo e inclusão de usuários:
# addgroup multimidia --> cria o grupo "multimidia"
# adduser [usuario] multimidia --> adiciona o "usuário" no grupo multimidia
Ex: # adduser karmarx multimidia

-Dando o diretório multimidia ao grupo multimídia:
#chgrp -R multimidia /multimidia --> instrui o sistema para que o grupo multimidia seja o dono do diretório /multimidia. A opção "-R" implementa as modificações recursivamente.
Alternativamente, poderemos fazer:
# chowm -R :multimidia /multimidia --> Faz a mesma coisa que o comando anterior. A diferença é que, antes de ":multimidia", podemos colocar o usuário que será dono do diretório ou recurso.
-Dando permissão ao grupo e seus usuários para acessar o diretório:
# chmod g+rwx /multimidia --> Dá permissão de leitura e escrita e acesso aos usuários do grupo multimídia. A opção "g" se refere a grupos.
# chmod -R g+rw /multimidia --> Dá permissão de leitura e escrita aos usuários do grupo multimídia.

Parte 2: Configurar, enfim, o SAMBA para disponibilizar o recurso apenas aos usuários do grupo

-O trecho que eu inclui no meu /etc/samba/smb.conf foi este:
[multimidia]
comment = Arquivos multimidia (filmes, musicas, jogos etc) compartilhados pelos usuarios.
path = /multimidia
writable = yes
# Para permitir que apenas os usuários do grupo multimidia possam acessar o compartilhamento
valid users = +multimidia
É importante que os comentários sejam feitos não na mesma linha de alguma palavra-chave que vai ser passada para o SAMBA.
A opção que precisa ser entendida é a "valid users". Nela, podemos incluir, separados por vírgulas, os usuários que podem acessar o recurso, ou então, colocamos um sinal de mais "+" seguido do nome do grupo, e automaticamente, apenas os usuários pertencentes ao grupo conseguirão acessar o recurso. Podemos separar entre vírgulas, os grupos que podem ter acesso ao recurso, bem como misturar grupos e usuários que o acessarão.

Referências:

Samba, parte 2: Configuração avançada do Samba (atualizado) -Carlos E. Morimoto

Manual do chgrp: man chgrp
Manual do chmod: man chmod
Manual do chown: man chown

Comando chroot

O comando chroot permite que você defina algum diretório como sendo a "nova raíz".
Isto é útil para mountar a partição raíz de uma outra instalação de Linux que haja no computador, e executar os programas a partir dela.

Suponhamos que queiramos editar o arquivo /etc/fstab da outra partição, ou dar um grub-install para restaurar o grub a partir daquela partição, porém através dela mesmo, não conseguimos, tendo de recorrer a outra partição funcional (geralmente nem isso é possível, sendo necessário o uso de um disco de recuperação, ou um live-cd com alguma distribuição GNU/Linux.

1) Montamos a partição de teste:

root@localhost: /# mount /dev/sda2 /mnt/teste --> supomos que o diretório /mnt/teste existee esteja vazio antes da montagem da partição.

2) Acesso à partição:

root@localhost: /# cd /mnt/teste

3) Tornando o diretório /mnt/teste como "raíz"

root@localhost: /mnt/teste# chroot /mnt/teste

Resultado:

root@localhost: /#
Aí, se você precisar editar o arquivo /etc/fstab da partição /dev/sda2, não precisará digitar vi /mnt/teste/etc/fstab, mas apenas vi /etc/fstab

Para voltar ao normal, basta digitar:

root@localhost: /# exit

Resultado:
root@localhost: /mnt/teste#

terça-feira, 9 de fevereiro de 2010

Redimensionando partições ext3 - Diminuindo uma partição

Para o redimensionamento de uma partição ext3, deve-se adotar 2 procedimentos básicos, depois de desfragmentá-la, se este for o caso:

1) redimensionar o sistema de arquivo: Para isto, utiliza-se o comando resize2fs.
2) redimensionar a partição fisicamente: Para isto, utiliza-se o comando fdisk.

Quando nós redimensionamos o sistema de arquivos é como dar um aviso ao kernel que os arquivos da partição podem ser encontrados entre o cilindro xxx do disco ao cilindro yyy, e a partição, quando as coisas estão funcionando, vai do cilindro xxx ao cilindro yyy. Entretanto, pode ser que não haja correspondência entre o que informa o sistema de arquivo ao kernel, e o tamanho físico da partição mesmo.

Assim, quando queremos diminuir o tamanho de uma partição, devemos, primeiro, diminuir o tamanho do sistema de arquivo com resize2fs, para depois diminuir seu tamanho físico com fdisk. Desde 2002 que esse software suporta o redimensionamento não só de partições ext2, mas também de ext3, portanto não é necessário tirar o journaling da partição.
No caso de querermos expandir o tamanho de uma partição, precisamos fazer o caminho inverso, desde que haja espaço livre começando quando termina originalmente o a partição que queremos expandir: aumentamos seu tamanho fisico para depois redimensionar o seu sistema de arquivo.

Bem, vamos aos passos:

No caso, eu queria diminuir o tamanho da minha partição /home de 50GB para 10GB.
Se você vai fazer isto com a partição raiz do seu sistema, ou a partição que contém outros executáveis importantes do sistema operacional, é necessário reiniciar o sistema e utilizar um disco/CD/DVD de recuperação, ou uma distribuição live-CD, pois é necessário executar os procedimentos com a partição com a qual queremos trabalhar desmontada.

Primeira parte: Checando informações sobre o disco e a partição, e redimensionando o Sistema de arquivos

- Checando informações:
fdisk -l /dev/sda --> Este comando dá informações sobre todas as partições do disco, tais como o cilindro inicial e final da partição, e número de blocos que ocupa. Lembrando que /dev/sda é apenas o exemplo utilizado, e o dispositivo que será utilizado dependo de como está configurado o seu HD, e de qual tecnologia ele utiliza (para HDs IDE, utilizamos /dev/hd(letra), e para primeiro hd, a letra a. Para HDs SCSI ou SATA, utilizamos /dev/sd(letra), e para o segundo hd, utilizamos a letra b. Utilizariamos também a letra a, no caso de ser o primeiro hd, que é o caso do exemplo.
A informação primordial, neste caso, é a posição inicial da partição. Isto, porque na parte 2, teremos de apagá-la, e para que não haja perda de dados, devemos nos certificar de que a "nova" partição deve começar no mesmo cilindro da "velha".
No meu caso, eu queria informações da partição /dev/sda2, que no meu caso, normalmente é montada em /home. LEMBRE-SE QUE TODOS OS PROCEDIMENTOS DEVEM SER FEITOS COM A PARTIÇÃO DESMONTADA.

- Talvez seja necessário checar a partição com:
e2fsck -f /dev/sda2 -->substitua /dev/sda2 pela partição que desejar/precisar checar.
-Redimensionando o sistema de arquivos, finalmente:
resize2fs /dev/sda2 10G
O comando resize2fs possui a seguinte sintaxe: resize2fs [partição] [tamamho] --> onde tamanho pode ser dado em S (setores de 512 bytes), K, M e G, em que as três últimas maiúsculas representam, respectivamente, kilobytes, megabytes e gigabytes.
Ele, depois, vai retornar o número de blocos que a nova partição deverá ocupar. Mas atenção, ele informa isso para o Kernel, mas não fez nenhuma modificação física, como, aliás, discutimos acima. É importante mencionar que o número de blocos informado pode estar ligeiramente errado, devido a um bug conhecido e mencionado no próprio manual do comando (man resize2fs). O que fazer em relação a isso, veremos na segunda parte.

Segunda Parte: Redimensionando a partição

Para redimensionar a partição, o procedimento é tão simples quanto perigoso: Devemos apagar a partição que queremos redimensionar e criá-la de novo! :-D
Se o procedimento for feito corretamente, não haverá nenhuma perda de dados. Entretando, devido ao risco, é extremamente aconselhável fazer um backup dos dados mais importantes da partição, senão de toda ela. Eu estava muito "com o cú na mão", então fiz 2 backups!
fdisk /dev/sda --> Para iniciar operações de particionamento do disco.
Resposta do comando:
Command (m for help): m
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)
-Devemos, agora apagar a partição dois:
Command (m for help): d
Partition number (1-5): 2
Como eu cometi o erro de ter criado esta partição como primária, outrora (Poderia ter criado apenas uma partição primária, que devem ser no máximo 4, e deixado a partição em questão como estendida), devo recriá-la como primária (na verdade, tive medo de fazer diferente, mas como eu também posso criar partições Linux principais como partição extendida, eu não me importei).
Command (m for help): n
Command action
l logical (5 or over)
p primary partition (1-4)
p
Partition number (1-4): 2
Agora, ele perguntará em que cilindro que começa a partição. mantenha a resposta padrão, que deve ser identica à obtida com fdisk -l /dev/sda . Se não for, digite o dado obtido anteriormente, caso contrário, haverá perda de dados.

Agora que informamos o fdisk onde que a nossa partição começa, não sabemos onde ela termina. Felizmente, podemos dizer o tamanho da nossa partição, em MB. Porém, dizer que ela terá 10240MB (10GB) acarretará em erros mais para frente, porque, como mencionado anteriormente, o resize2fs tem um bug no cálculo do número de blocos (que são de 4KB), e dar imediatamente o tamanho que nós queremos, fará com que o sistema de arquivos e o tamanho físico continuem diferentes, podendo haver perda de dados (O e2fsck não conseguirá avaliar a partição por causa disso, e você pode ter problemas até para reiniciar o sistema).
A solução para este problema é o seguinte: Pegar o número de blocos retornado pelo resize2fs, multiplicar por 4k (como a resposta do comando já é em blocos de 4k, basta multiplicar por 4, mesmo), e depois multiplicar por 1.05, para dar uma margem de uns 5% para aquele número, pois é prudente que o tamanho físico seja maior que o tamanho do sistema de arquivos, e não o contrário. É quando acontece o contrário que a partição começa a dar problemas.

-O número resultante do cálculo deve ser colocado como +[númeroK] quando o fdisk solicitar:
Last cylinder or +size or +sizeM or +sizeK (xxx-yyy, default yyy ): +númeroK --> onde xxx-yyy é o intervalo, em cilindros, do número do cilindro que termina a partição. yyy, é o limite final do disco. + é a opção para declarar o tamanho da partição, em vez do cilindro final, e deixar a tarefa de descobrí-lo para o fdisk, número, é o tamanho em KiloBytes da Partição, e K é a opção especificando que o tamanho será mesmo dado em Kilobytes.
-Agora, devemos gravar na tabela de partições.
Command (m for help): w
The partition table has been altered!
-Resposta do comando:
Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table.
The new table will be used at the next reboot.
Syncing disks.

É preciso, agora, reiniciar o sistema (ou não).

Com a partição redimencionada desmontada, vamos à terceira e última parte:

3) Checagem do sitesma, e re-redimensionamento:

Com o sistema reiniciado para que a nova tabela de partições seja reconhecida, digite:

e2fsck -f /dev/sda2 --> (com a partição desmontada e ,novamente, substitua a partição utilizada no exemplo pela que você quer redimensionar efetivamente)

E depois o comando:

resize2fs /dev/sda2

Agora, não tem mais o tamanho da partição, porque, com a nossa preucaução, o tamanho informado pelo sistema de arquivos é menor do que o tamanho físico da partição, e queremos apenas que o sistema de arquivos seja redimensionado para o tamanho máximo da partição física.

Referências:

http://usefulfor.com/nothing/2007/12/14/howto-resize-an-ext3-partition-without-losing-data/

http://www.howtoforge.com/linux_resizing_ext3_partitions

Manual do resize2fs (man resize2fs)

terça-feira, 26 de janeiro de 2010

VIM - Modo Visual

Para entrar no modo visual do VIM, há 3 maneiras, quando não estamos no modo de edição. Podemos digitar:

v : Entra no modo de seleção de caracteres.
V : Entra no modo de selecão de linhas
Ctrl +v : Entra no modo de seleção de blocos.


E aqui, uma tabela de comandos úteis quando o texto já está selecionado:

Comando | Ação no texto selecionado
d | Apaga
y | Copia
p | Cola
c | Troca por outro texto
r | Troca cada letra por um caractere
J | Junta todas as linhas em uma só
U | Converte para maiúsculas
u | Converte para minúsculas ~ Inverte maiúsculas e minúsculas
gq | Reformata as linhas para a largura desejada
! | Manda as linhas para um comando externo (!sort)
: | Aplica um comando 'ex' nas linhas (:s/isso/aquilo/)

Para sair do modo visual, basta apertar v, de novo.
Extraído de http://aurelio.net/vim/selecao-vi-sual.html

quarta-feira, 13 de janeiro de 2010

Compactando arquivos com o zip a partir de uma lista deles criada com o comando find

Para isso, podemos utilizar a opção -@ do comando zip, e os pipes para direcionar a saída na entrada do comando zip.
Fica assim:

find [caminho] -name "[nomes pesquisados]"|zip -@ [nome do arquivo.zip]

sexta-feira, 25 de dezembro de 2009

Extraindo arquivos específicos do unzip

Isso é coisa básica, que pode ser lida no manual, Mas como eu posso perder mais tempo para procurar no manual do que no meu blog, aqui vai uma dica simples e ridícula sobre o comando unzip.

Checando os arquivos que estão compactados dentro do arquivo.zip:
unzip -l arquivo.zip
Extraindo apenas alguns arquivos:
unzip arquivo.zip arquivo1 arquivo2 .. arquivoN
Extraindo apenas alguns arquivos, mas utilizando caracteres coringa:
unzip arquivo.zip "*expressão*" , onde expressão é a parte do arquivo a ser procurada.

quarta-feira, 21 de outubro de 2009

Declarando variáveis no maxima

Em funções, vimos que a declaração delas se dá com F(variável independente):=[expressão];
Por exemplo:
F(y):=y^3+5*x;
No caso de variáveis, a declaração delas é assim:
variável:valor;
Por exemplo:
a:2*%pi;

terça-feira, 20 de outubro de 2009

Plotando Gráficos com o Wxmaxima

No último post, eu esqueci de avisar que para chamar o wxmaxima, era necessário digitar:
$wxmaxima

Bom, feito isso, e depois de ter escrito as funções com as quais quer trabalhar (você poderá chamá-las através da linha em que foram escritas), você quererá plotar alguns gráficos.
o comando para isso é: wxplot2d!
Sintaxe para uma função só:
wxplot2d([expressão], [variável,valor inicial, valor final], [xlabel, "rótulo para o eixo-x"], [ylabel, "rótulo para o eixo-y"]);
A expressão pode ser o número para alguma função que você digitou antes, ou criou, ou explicitamente, uma função que você colocou lá na hora.
Exemplos:
1) %i1 sin(x);%o1 sin(x);
%i2 wxplot2d([%o1],[x,0,2*%pi],[xlabel, "ângulo (radianos)"], [ylabel, "sen(ângulo")]); --> plota a função sin(x) no intervalo de 0 a 2pi, rotulando o eixo x de ângulo... e o y de sen(ângulo).
2) wxplot2d([sin(x)],[x,0,2*%pi],[xlabel, "x (rad)"],[ylabel, "sen(x)"]);
Caso queiramos graficar mais de uma função com um único comando, a sintaxe muda só um pouco:
wxplot2d([expressão1, expressão2], [variável, valor inicial, valor final], [xlabel, "rótulo"],[ylabel, "rótulo"]); Lembrando que os rótulos são sempre opcionais.
Aproveitarei para mostrar como definir funções:
Exemplo:
F(x):=sin(x)-x^2;
G(x):=cos(x)+x^3 + e^(-2*x);
wxplot2d([F,G],[x,-100,100],[xlabel," velocidade (m/s)"]);

Maxima e Yacas - Softwares de Apoio Computacional à Álgebra

Depois de passar mais de uma semana desesperado com a prova de Física Nuclear que o professor pediu para fazer em casa, eu entendi o que era para fazer e notei que seria fortemente recomendável utilizar programas como o maxima e o yacas.
Estes programas fazem maravilhas, embora possam ser até limitados dependendo do cálculo.
Eles podem resolver uma integral, uma derivada, achar os zeros de uma equação/função tanto numericamente quanto analíticamente (este último, se possível), e são suficientemente inteligentes para lidar com linguagem simbólica.
Para instalá-los, se seu /etc/apt/sourcs.list estiver configurado, e se sua distribuição for Debian, ou uma Debian-like fazemos:
#apt-get install yacas -->Instala o yacas
#apt-get install maxima wxmaxima xmaxima -->Instala o maxima, e duas interfaces gráficas para ele: wxmaxima e xmaxima
O wxmaxima é uma interface cheio de menus e botões meio auto-explicativos para ficar parecido com concorrentes no Windows, tipo o Maple® e o Mathematica®, embora não seja bonito.
O xmaxima é uma interface feita em tcl/tk mais bonita, embora mais espartana. Ela abre junto com o ambiente onde são digitados os comandos uma espécie de tutorial disponívels na documentação do máxima, estimulando o aprendizado para poder mexer no programa.

Uma interface permite que você mexa "no estilo Windows", ou seja, já faça as coisas sem se aprimorar muito, sem nem saber o que está fazendo, até, de forma intuitiva. A outra faz você apanhar um pouco mas lhe força a aprender mais, o que pode facilitar no futuro, pois você começará a pensar em programar na linguagem e a resolver as coisas de maneira mais complicada, desenvolvendo certa habilidade.
Como eu estava desesperado para fazer a prova do Robilotta, eu fiquei com o wxmaxima, mesmo.

Mesmo assim, há alguns comandos que não aparecem, senão sutilmente nos menus, e dos quais você pode precisar.
Primeiro alguma sobre o ambiente:
%in --> É o prompt, aguardando que você dê algum comando. No wxmaxima, você não precisa se preocupar muito com isso. Há uma caixa de texto onde você coloca os comandos.
O 'i' quer dizer entrada, e o n, é o número da linha em que você está.
Quando você digita um comando, aparece: %on , que quer dizer saída, acompanhada do resultado do comando.
Para escrever expressões matemáticas, simplesmente, escreva-as!
Por exemplo: sin(x)
O resultado será informado como sin(x).
Você pode usar a linha %on nos cálculos da linha n+1 , por exemplo. Até pode definir novas funções e variáveis.

Para achar os zeros de uma função analítica, pode-se fazer:
solve([expressão], [variável]); (colchetes não obrigatórios, utilizei apenas para mostrar a sintaxe.

Ex:
solve(x^2-a,x); As raízes da equação serão retornadas, e a é qualquer valor. Entendeu porque é legal? Não é só para cálculo numérico.

E quando só dá para resolver numericamente?
find_root([expressão],[variável],["chute inicial], ["chute final"]);

Ex:
find_root(exp(-5*r)-5*cos(15*r),r,0.001,1000);