quota de disco no fedora

Se você é um sysadmin com poucos recursos de hardware, ou é um ditador tirano como eu, implementar quotas de disco no sistema é fundamental para a saúde do sistema. Como sempre vou usar o fedora como base para a instalação e para a sua sorte ele já vem com esse recurso ativado no kernel por padrão. De nada adianta uma distribuição organizada se você quer usar um sistema de arquivos bizarro da árvore do AM, quota só rola legal em sistemas ext2/ext3 , em xfs eu nunca testei, e a implementação de quotas do reiserfs não é software livre.

yum install quota

Existe dois tipos de quota de disco, quota por usuário e quota de grupo, preciso explicar ? Que bom que não. Caso você vá implementar quota por usuário você deve adicionar usrquota ao campo de parâmetros da respectiva linha de sua partição no arquivo /etc/fstab , por exemplo :

/dev/ubda               /                       ext3    defaults,usrquota        1 1
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
/dev/ubdb               swap                    swap    defaults        0 0

Caso use quotas por grupo adicione grpquota, simples né ? Feita as modificações você deve remontar a partição :

mount -o remount /

Agora devemos criar o arquivo de controle quotas, como segue no exemplo :

# touch /home/aquota.user
# chmod 600 /home/aquota.user

Caso use quota por grupo use :

# touch /home/aquota.group
# chmod 600 /home/aquota.group

Agora você deve rodar o comando quotacheck -vagum , ele vai reclamar de algumas coisas, mas não leve ele a sério.

Para editar as quotas dos seus users use o edquota -u usuario , então você verá algo desse tipo :

Disk quotas for user (uid 505):
  Filesystem                   blocks       soft       hard     inodes     soft     hard
  /dev/ubda                        16  300000000  350000000          6        6        0

Soft é a quota flexivel, ela pode ser extendida temporariamente até o limite definido em hard , ou seja durante um certo periodo o usuario pode manter mais arquivos do que o limite imposto , após esse período o usuário perde o direito de escrever no disco, legal né ? Se o usuário for um espertinho e tentar escrever um arquivo maior que o imposto pelo Hard, o sistema bloqueia a escrita.

O tempo em que o usuário pode ficar com a quota estourada é definida pelo comando edquota -t

Feito isso, corra para o abraço, não dos seus usuários, eles vão te odiar.

Recuperando dados deletados de uma partição reiserfs


Assunto delicado, perder um dado importante ou todos os dados de uma partição ou uma partição inteira é como um incêndio na casa de um geek…. Eu mesmo já surtei inúmeras vezes nessa lista por ter perdido partições inteiras ao instalar uma distro nova (Conectiva 7 e depois nunca mais usei conectiva), ao dar um comando errado na hora errada na partição certa ou por falha de disco…. alias meu HD aqui já tem 3 anos……
Bom Após passar 2 semanas puxando um game de playstation ( Valkyrie Profile= RPG ambientado nas culturas nórdicas, asgard, odim, vicking e tals…) para curtir nas férias, hoje finalmente o jogo veio ! Tava puxando por bittorrent e no ápice do meu egoísmo, fui deletar o torrent para não fazer mais upload |:-> mas cai na pegadinha do tab-completion do shell que completou com o arquivo rar em vez do torrent X-(
Digamos que nenhuma política de backup poderia ter me salvado dessa tragédia…
Então vou descrever aqui como recuperar dados deletados de uma partição reiserfs incluindo os passos que dei para recuperar meus dados 🙂

Lascou-se ! Tudo deu errado ! Deletou tudo ! TIRE SEU MICRO DA TOMADA IMEDIATAMENTE, isso ai puxe o fio ! Não dê shutdown !
Parece loucura, afinal , tirar o micro da tomada não é nenhum procedimento técnico não é mesmo ? Mas isso impede que o sistema operacional grave arquivos no disco… Ao deletar um arquivo na verdade o sistema operacional apenas realoca seu espaço ocupado para novos arquivos, se por um acaso o SO gravar um novo arquivo ele pode sobre-escrever seu precioso arquivo com algum arquivo temporário ou um importante log do sistema :-/

Muita calma nessa hora o computador está desligado, seu arquivo está seguro ! Para religar todo cuidado é pouco, um erro e todos seus arquivos deletados podem ir para o limbo ! Será nescessário religar seu sistema em modo reparo com as partições em RO (read-only), como fazer ?
Se vc usa lilo/yaboot, dê um tab no prompt descubra o nome do Label do seu sistema e acrescente “ro init=/bin/bash”, por exemplo :

Linux ro init=/bin/bash

Se vc usa grub, no menu de opções aperte “e” no item que corresponde a sua distro, “e” na linha do kernel e adicione “ro init=/bin/bash no final…. então aperte ESC e b para bootar.

Isso vai fazer com que o sistema monte a partição root em modo ro e vai iniciar o processo bash como processo número 1 no lugar do init…. Pode acontecer do diretório dev não ser populado ou seja não será possível montar outras partições se nescessário… se isso acontecer, vc deve remontar a partição / para leitura e escrita (mount -o rw,remount /) e rodar o comando udevstart (ou devfsd para quem usa sistemas antigos como debian sarge desatualizado e etc…) e rezar para dar certo.

Se tudo der errado, a única forma é iniciar o sistema no runlevel 1 , mas isso pode ser uma péssima idéia em algumas distros… várias delas escrevem no disco antes de entrar em modo de manutenção, entre elas : Fedora, Ubuntu, gentoo… deve haver uma porção delas por ai… Tenho quase certeza que slackware e debian não o fazem.

Na distro em questão (gentoo) isso ocorreu, o sistema escreveu no disco e não foi pouco : as consequencias serão descritas no final…..

Bom com o sistema montado em ro e com o bash em mãos é hora de agir ! O sistema de arquivos reiserfs peca por não ter uma ferramenta para recuperar arquivos deletados…. ou pior se ela existe não é livre (várias ferramentas de sistema do reiserfs não são livres….), mas tem uma gambiarra que funciona bem….É o comando
reiserfsck !

Use :

reiserfsck –rebuild-tree -S /dev/PARTICAO

Esse comando vai buscar por todos os arquivos e diretórios e vestígios dos mesmos na partição e vai criar um diretório chamado “lost+found” no topo da partição…
dentro desse diretório vc vai encontrar uma porção de arquivos cujo o nome são apenas números… no meu caso tive que procurar por um arquivo grande, e achei, depois para confirmar usei o programa “file” para identificar o conteúdo ,tá lá ! Arquivo RAR na cabeça, então foi só renomear….
Tive a sorte de ser um arquivo grande , fácil de identificar… mas e se fosse um arquivo pequeno ? Bem mais complicado, não tem jeito é garimpar até achar…. No caso de diretórios inteiros ou partições a sistuação é mais grave, todos eles vão ter números como nomes e muitas vezes arquivos aparecem fora de seus diretórios …. uma zona.

Bom, e como meu sistema inicializou em init 1 e escreveu no disco não deu outra, ele corrompeu partes do meu arquivo e só pude recuperar 30% do meu arquivo original, bom melhor que nada :-/

Problemas com o superblock do ext2


logo após mandar o email sobre como des-deletar arquivos, uma amigo chegou com um caso intrigante de uma partição ext3
de 300Gb que não montava… sintomas :

Ao tentar montar o erro:


The superblock could not be read or does not describe a correct ext2
filesystem. If the device is valid and it really contains an ext2
filesystem (and not swap or ufs or something else), then the superblock
is corrupt, and you might try running e2fsck with an alternate superblock:
e2fsck -b 8193

E no dmesg a desanimadora mensagem :

EXT3-fs: unsupported inode size: 0

Ao tentar passar o fsck.ext3 manualmente mais um balde de água fria
:

Floating point exception

Esses problemas podem ser um clássico problema de superbloco corrompido… O superbloco pode
ser visto à groço modo como um mapa do sistema, mas felizmente tá vários backups dele pelo sistema,
e é essa estratégia pra recuperar a partição 🙂

O comando é :


fsck.ext3 -C -y -b /dev/


O “-C” é para aparecer a barrinha enchendo, o y é para responder Sim para todas as perguntas, o “-b ” é para passar o endereço do superbloco alternativo, que muda dependendo do tamanho da partição, olha ai os endereços:

Bloco-mínimo da partição endereço

1k 8193
2k 16384
4k 32768

É só substituir que funciona, no caso da partição de 300Gb o comando foi :


fsck.ext3 -C -y -b 32768 /dev/

Distribuição com X em disquete

Distro com X em um disquete ! Veja !

>> On 11/29/05, rafael2k  wrote:
>>
>> Eu e o rhatto, fritos sob o sol de manaus, depois de rodar o demodisk do
>> QNX,
>> concebemos uma distro de linux de um disquete de 1.44Mb com X que pode ser
>> bem útil para terminais burros e outras aplicações:
>> http://bootex.sarava.org/
>>
>> ainda estamos testando a parada, mas fiquem a vontade.
>>
>> abraços,
>> rafael diniz

Referências :
http://bootex.sarava.org/

Ndiswrapper em placa LG LW2220P


Genjuro é o nome do meu servidor de rede, ele é um pIII 666Mhz com 128 Mb e um HD de 40Gb que era do meu playstation 2 🙂
É uma máquina comum rodando fedora 4 e conta com uma placa wireless LG modelo LW2220P, perfeitamente compatível com o linux via ndiswrapper. Porém seguindo as instru&ccedil&otildees do site, ao dar o comando:

ndiswrapper -i NETWPNDS.INF

O comando retorna “módulo inválido” ! Então olhando com aten&ccedilão a caixa do meu dispositivo vi que o chipset da placa é um tal de WP1200, busquei no google e descobri que é um chipset de uma empresa chamada waveplus que não disponibiliza o driver para download nem pra windows hehehh. Cavei, cavei e achei esse driver que parece ser o correto para essa placa da LG.