Sou usuário do Ubuntu 8.10 em um notebook. Tenho também instalado neste mesmo notebook o Windows XP. O sistema operacional principal é o Ubuntu, mas existem arquivos que necessito editar nos dois sistemas; então particionei meu HD da seguinte forma:
sda1 50 GB ntfs Windows XP
sda2 2 GB swap
sda5 15 GB ext3 Ubuntu 8.10
sda6 64 GB ntfs Depósito, comum aos dois sistemas
sda7 15 GB ext3 Teste, atualmente com Fedora 11 - Alpha
Ser usuário constante (mais ou menos 90% do tempo) de Linux em um notebook traz alguns problemas incomuns. Tentarei mostrar como consegui contorná-los.
1 - Teclado
Em tese o teclado do meu notebook é ABNT-2. (Um aparte: De onde veio esse nome, ABNT-2? Procurei na própria ABNT (Associação Brasileira de Normas Técnicas) e não encontrei nada a respeito de teclados de computadores. Se alguém souber de algo, por favor informe.) Mas, conforme dizia, em tese o teclado do meu notebook é ABNT-2. Digo em tese, porque teclados de notebooks são uma verdadeira bagunça. Não há padronização. Tem os US (sem "Ç" e com o til, "~", lá em cima à esquerda, debaixo do Esc), tem os "importados" (portugueses, franceses, etc, etc ...) e tem os ABNT com suas variações. No meu, a tecla que contem os símbolos "/" e "?" está na última linha do teclado, à direita, substituindo a tecla Ctrl. Alguns nem tem essa tecla.
Em Windows, o símbolo "/" faz falta, mas não tanto assim. Afinal ele é usado basicamente em datas (p.ex. 08/02/2009). Mas em Linux a falta é grande, já que o separador na digitação de um diretório (p.ex. /etc/fstab) é o próprio. Não me acostumei com o Alt+Q. Além de não me acostumar, ficava irritado em ver a tecla e não poder usá-la. Então parti para tentar resolvê-lo.
Primeira constatação: Este problema é composto por dois sub-problemas: modo gráfico (KDE, Gnome, etc) e modo texto (terminal puro, "tela preta"). Então:
1.1 - Modo gráfico
Abrindo um terminal gráfico (Konsole no KDE / gnome-terminal no Gnome) e apertando a tecla, nada acontecia. Então digitei:
xev
Duas coisas aconteceram: Abriu-se uma janela gráfica "Event Tester" com um quadrado de bordas pretas na tela e surgiram muitas mensagens no terminal. Levei o apontador do mouse até o quadrado e novamente apertei "/". A última mensagem foi:
...
KeyPress event, serial 34, synthetic NO, window 0x3a00001,
root 0x6a, subw 0x3a00002, time 10505184, (54,49), root:(847,99),
state 0x0, keycode 105 (keysym 0x2f, slash), same_screen YES,
XKeysymToKeycode returns keycode: 97
XLookupString gives 1 bytes: (2f) "/"
XmbLookupString gives 1 bytes: (2f) "/"
XFilterEvent returns: False
...
O que interessa nessa mensagem é:
- keycode 105
- XKeysymToKeycode returns keycode: 97
Anotei essas duas linhas, fechei a janela gráfica e digitei:
gedit .Xmodmap
No editor de texto que se abriu, digitei:
keycode 105 = slash question
Salvei, fechei o editor de texto e resetei o modo gráfico com Ctrl+Alt+BkSpc (digitando ao mesmo tempo as teclas Control, Alt e BackSpace). Ao retornar o modo gráfico, abrindo novamente um terminal, o resultado foi:
////////////////////////////////////
Um a zero!
1.2 - Modo texto puro ("tela preta")
Primeiramente o teste. Digitei Ctrl+Alt+F1 (ou F2, ou F3, ou ..., ou F6). Abriu-se a tela preta, loguei com usuário e senha (os mesmos dados de quando ligo o computador) e apertei a fatídica tecla. Como esperado: NADA.
Retornei ao modo gráfico, digitando Alt+F7. Como já tinha um terminal aberto nele, digitei:
sudo cp /etc/console-setup/boottime.kmap.gz .(Tem um espaço e um ponto no final do comando, sim!)
Dei a senha pedida e a operação se completou.
--------------------------------------------------------------------------------------
OBS: Se não digitar aquele espaço e aquele ponto no final do comando:
...
sudo cp /etc/console-setup/boottime.kmap.gz
[sudo] password for user:
cp: falta operando arquivo de destino após `/etc/console-setup/boottime.kmap.gz'
Tente `cp --help' para mais informação.
....
que significa simplesmente que o sistema não sabe para onde copiar o arquivo pedido. O ponto diz ao sistema para copiar o arquivo pedido no diretório em que você está no momento.
---------------------------------------------------------------------------------------
Para confirmar a operação:
ls
Se o arquivo estiver aí:
gunzip boottime.kmap.gz
gedit boottime.kmap
O que aconteceu? O arquivo original (boottime.kmap.gz) estava comprimido ("gzipado"). O primeiro comando o descomprimiu e o segundo o abriu para edição.
Fui para o final do arquivo. A linha 108 (ou perto dela) estava assim:
keycode 89 = U+002f U+003f U+00b0 U+00bf Delete Delete Delete Delete Meta_slash ....(Não é só isso; a linha é imensa. Isso é só o começo da linha.)
Mudei o início dela de "keycode 89" para "keycode 97". Oitenta e Nove era o keycode original, aquele que você encontra em, por exemplo, teclados de desktops, em que a tecla "/?" está ao lado da "Ç". Noventa e Sete é o keycode que você descobriu lá no início deste texto, lembra?
Digitei:
gzip boottime.kmap
sudo mv /etc/console-setup/boottime.kmap.gz /etc/console-setup/ORIG_boottime.kmap.gz
sudo mv boottime.kmap.gz /etc/console-setup/
O primeiro comando comprime ("gzipa") o arquivo, o transformando em boottime.kmap.gz; o segundo faz uma cópia do arquivo original (vai que dê m...) mudando seu nome e o terceiro substitui o arquivo original pelo que acabamos de modificar.
Rebootei, digitando
sudo reboot
Após o boot, Ctrl+Alt+F1, usuário + senha e
////////////////////////////////////
Dois a zero!
OBS: Este problema não é exclusivo do Linux. Em Windows ocorre exatamente a mesma coisa (Cadê a maldita barra?), mas a solução é completamente diferente, envolvendo modificações no Registro. Mas isso não é assunto deste forum.
2 - Prompt
Eu não gosto do prompt original do Linux. Acho confuso e, pior ainda quando você está com uma tela cheia de comandos e respostas, você não vê onde termina um comando e começa outro. Mudei-o para:
--------------
[Kursk : ~]=>
Aí, pelo menos tenho uma linha de separação entre os comandos e não é tão poluído.
Como fiz:
Numa janela de terminal (Konsole, gnome-terminal) digitei:
sudo gedit /etc/bash.bashrc
Procurei a linha:(deve ser a 19 ou perto dela)
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
Comentei-a, colocando na frente dela o sinal "#" (sustenido, tralha, jogo da velha, etc). A linha então ficou:
#PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
Na linha seguinte digitei:
export PS1='------------\n[\u : \w]=> '
Ao colocar o "#" no início da linha, a mesma se transformou em um comentário, ou seja deixou de ser executável; a segunda linha significa:
export = todos os usuários do computador terão o mesmo prompt
PS1 = o prompt
'-------------' = a linha de separação entre comandos
\n = comando de mudança de linha
\u = o usuário atual (Kursk, José, etc)
\w = o diretório em que estou. Se fôr o "home" aparecerá um til "~"
Note o espaço entre o ">" e a aspa simples final. Ele serve para melhorar a estética, não "grudando" o prompt no comando.
Salvei e fechei o arquivo. Digitei então:
gedit .bashrc
Fiz "uma limpa" no arquivo, deixando somente:
eval "`dircolors -b`"
alias ls='ls --color=auto'
alias ll='ls -l'
alias la='ls -A'
"Prá" que? Porque todas as outras definições já não eram necessárias e para dar uma "incrementada" no comando "ls". Agora quando digito "ls" a resposta vem colorida: os diretórios vem azul, os executáveis em verde, etc. "ll" me mostra as propriedades de todos os arquivos e diretórios (se são arquivos ou diretórios, o proprietário e o grupo do qual ele faz parte, o tamanho, a data e a hora da última modificação e, obviamente o nome). "la" me mostra também os arquivos ocultos (aqueles que começam com um ".")
Fechei e abri novamente o terminal. OK. O prompt agora estava da forma como eu desejava.
3 - Os sub-diretórios de "home"
Os nomes de diretórios e arquivos em Linux são "case sensitive". Isso significa que "home"
não é a mesma coisa que "Home". Pior ainda é a presença de espaços ou letras acentuadas no nome de um diretório ou arquivo. Cansado de erros idiotas tais como tentar copiar um arquivo que "não existe", de um diretório que "não existe" para um diretório "que não existe", porque a primeira letra do nome do arquivo, ou do diretório de origem ou de destino tinha uma letra maiuscula ou um espaço no nome, apelei. Meus subdiretórios de "home" agora são:
desktop (sem maiúscula)
musicas (sem maiúscula e sem acento)
documentos (sem maiúscula e sem o desprezível "Meus ", causa de muitos problemas)
videos (sem maiúscula e sem acento)
Minha vida ficou bem mais fácil.
4 - As outras partições
Duas coisas me incomodavam no Ubuntu: A recusa do sistema em montar minha partição "Deposito" automaticamente no boot e aquelas mensagens enigmáticas tipo "Partição de 59,4 GB" quando eu queria ler "Windows". Mais incomodado eu ficava quando ao clicar na misteriosa "Partição de 59,4 GB" para montá-la vinha lá uma mensagem dizendo que "A política de segurança blá blá blá" e eu tinha que digitar senha para acessar.
Para resolver estes incômodos:
Digitei:
blkid -L
A saída foi:
...
device fs_type label mount point UUID
-------------------------------------------------------------------------------
/dev/sda1 ntfs (not mounted) E09836ED9836C238
/dev/sda2 swap (not mounted) 9d705cc3-4eb0-4e22-9327-a54dba02d05b
/dev/sda5 ext3 / dc4796d0-af35-4ec2-93b1-2f410ce1dbbd
/dev/sda6 ntfs (not mounted) 626ACD9B106699F8
/dev/sda7 ext3 (not mounted) 3becdcc1-81bd-4d67-a9cf-95e0126cf91d
/dev/ramzswap0 swap <swap>
...
Eu queria que /dev/sda6 fosse montada automaticamente no boot. Portanto:
Criei um local para que a mesma fosse montada:
sudo mkdir /media/sda6
Editei o arquivo /etc/fstab para permitir a montagem automática:
sudo gedit /etc/fstab
Adicionei as seguintes linhas:
# /dev/sda6
UUID=626ACD9B106699F8 /media/sda6 ntfs user,exec,rw,utf8,uid=1000 0 1
A primeira linha é para dizer o que estou montando e, na segunda linha:
UUID=626ACD9B106699F8 é como o sistema reconhece minha partição /dev/sda6
/media/sda6 é o local onde a partição será montada
ntfs é o tipo de arquivo da partição
user,exec,rw,utf8,uid=1000 0 1 diz que a partição pode ser montada por usuário (automaticamente), nela pode-se executar arquivos, aceita leitura e escrita, o mapa de caracteres é UTF-8 (não mais aquelas coisas tipo "cora??o" quando você quer "coração"), o usuário sou eu (uid=1000) e a partição será verificada por fsck durante o boot.
Salvei e fechei. Ao fechar, o sistema já me informou que havia uma partição a ser montada. Não aceitei, porque havia algo a ser feito antes.
Por serem sda1 e sda6 to tipo ntfs, digitei:
sudo ntfslabel /dev/sda1 WindowsXP (sem espaço, por favor)
sudo ntfslabel /dev/sda6 Deposito (sem acento, por favor)
E já que sda7 é ext3, digitei:
sudo e2label /dev/sda7 Fedora11 (sem espaço, por favor)
Rebootei, para o fstab ser lido e, para confirmar o que foi feito:
blkid -L
A saída agora foi:
...
device fs_type label mount point UUID
-------------------------------------------------------------------------------
/dev/sda1 ntfs WindowsXP (not mounted) E09836ED9836C238
/dev/sda2 swap (not mounted) 9d705cc3-4eb0-4e22-9327-a54dba02d05b
/dev/sda5 ext3 / dc4796d0-af35-4ec2-93b1-2f410ce1dbbd
/dev/sda6 ntfs Deposito /media/sda6 626ACD9B106699F8
/dev/sda7 ext3 Fedora11 (not mounted) 3becdcc1-81bd-4d67-a9cf-95e0126cf91d
/dev/ramzswap0 swap <swap>
...
o que me diz que /dev/sda6 está montada, como eu queria, e que quando eu clico em Locais na barra de menu do Gnome, o que vejo agora é "Deposito", como também eu queria. "WindowsXP" e "Fedora11" permanecem desmontados. Como são usados eventualmente, preferi que a montagem dessas partições permanecessem no modo manual.
=======================================================================
That's all, folks! Se estas mal traçadas linhas servirem de ajuda para alguém, nem que seja UM único usuário, estarei satisfeito. A informação somente tem valor se circular.