Instalando grub no Debian GNU/Linux com raid 1

Precisei instalar o Debian em um sistema com raid 1 e descobri que simplesmente o grub dava falha.

Depois de muito googlear, descobri que é necessário instalar o Debian, optar por não instalar o iniciador de boot. Reiniciar o instalador e entrar no modo rescuse, depois escolher o mapeamento correto para instalar o grub no /

procedimentos podem ser encontrados aqui:

https://wiki.debian.org/DebianInstaller/SataRaid

Use the following method only if you want to have a dual-boot system with Debian and the other operating system on the same Serial ATA RAID:

  1. Set up your fake RAID in the BIOS (see owners manual).
  2. Boot from a Debian installation media.
  3. Move the cursor to the Install boot menu entry (do not hit Enter yet):
    1. Press Tab to edit the kernel boot line.
    2. Add dmraid=true to the end of the line.
    3. Press Enter.
  4. Install Debian as usual, until you get to the disk partitioner. You will see your fake RAID as one disk with a confusing long name. Use it as if it were a single disk and configure your partitions any way you want, including LVM and friends.
  5. Complete the installation. The installation of GRUB may fail, but that is OK; GRUB needs to be reinstalled either way. If GRUB installation fails, select “continue without bootloader” to complete the Debian installation.
  6. Reboot as instructed by Debian Installer.
  7. Boot using the Debian installation media again.
  8. In the boot menu, go to Advanced Options, and move the cursor to “Rescue system” (do not hit Enter yet):
    1. Press Tab to edit the kernel boot line.
    2. Add “dmraid=true” without quotes to the end of the line.
    3. Press Enter.
  9. You will be presented with screens similar to the installation screens. Go through with them until you are asked to choose a root filesystem to mount and use.
  10. Choose the first /dev/dm-? (? is a number). You will get a command prompt.
  11. (Optional) Type bash into the prompt, for easier command line editing and command history.
  12. Modify /etc/default/grub (e.g. nano /etc/default/grub) and uncomment GRUB_DISABLE_LINUX_UUID=true (699437). Save the file and exit the editor.
  13. Type update-grub and press enter. This is very important, because otherwise the GRUB boot menu later wont be able to display your freshly installed kernel!
  14. Type grub-install /dev/mapper/ and press tab and tab again, you will get the names of the fake raid partitions.
    1. Complete grub-install /dev/mapper/ with the name of your whole fake disk.

      For example grub-install /dev/mapper/isw-jggdha7s-SYS (Note that there is no number at the end of the name). You may have something like /dev/mapper/isw-jggdha7s-SYS and /dev/mapper/isw-jggdha7s-SYS1, or /dev/mapper/isw-jggdha7s-Volume and /dev/mapper/isw-jggdha7s-Volume1. Choose the one without the partition number and press enter.

    2. Everything should install now without an error.
  15. Type exit (twice if you did step 11). Now you should be back in the rescue system menu. Choose the Reboot system option. Now boot off your fake RAID and see GRUB starting your new Debian installation.

 

Por fim precisei editar na hora do boot o local correto de boot, vc consegue isso com digitando “e” no menu de boot.

Depois de bootar entrei em /boot/grub/grub.cfg, e alterei ali o local de boot tbm para o mapeamento do Raid correto.

Ainda é necessário fazer o sistema sempre apontar para o mapeamento certo do raid, mas isso eu não fiz ainda 😀

Configurar IP fixo e IP via DHCP no Debian via terminal

# nano /etc/network/interfaces
ou
# vim /etc/network/interfaces

Agora vamos configurar. Lembrando que eth0 é o dispositivo correspondente à minha placa:

auto eth0
iface eth0 inet static
address 192.168.1.20
netmask 255.255.255.0
gateway 192.168.1.1

Broadcast não é necessário, pois ele é configurado automaticamente.

Obs.: Está é a minha configuração, provavelmente você terá que adaptar para a sua rede.

Se você utiliza uma placa de rede para acesso externo, como eth0, basta modificar “eth0” para “eth1”.

Agora vamos reiniciar a conexão de rede:

# /etc/init.d/networking restart

Pronto, configuração feita e é só aproveitar.

 

Fontes:

http://www.vivaolinux.com.br/topico/Iniciantes-no-Linux/Debian.Colocar-Ip-automatico

http://www.vivaolinux.com.br/dica/Configurando-placa-de-rede-para-IP-fixo-no-Debian

http://www.vivaolinux.com.br/topico/Debian/IP-FIXO

Clonezilla clonar HD ou partições

Clonezilla é um live cd/usb que possibilita a clonagem e recuperação de HDs inteiros e partições.

O interessante é que possibilita a restauração via HD externo ou rede via SSH, o que torna o serviço muito mais rápido quando temos varias máquinas para clonar.

Site oficial: http://clonezilla.org/

Instruções para bootar via USB: http://clonezilla.org/liveusb.php#linux-method-b

Mais:

http://www.hardware.com.br/artigos/clonezilla/

Criando partição maior que 2 TB no Linux

Descobri somente na pratica que o MBR está limitado para partições de até 2 TB, mas para maiores temos uma solução o GPT!

Para mais informações olhe as fontes!

Aqui vai como fazer:

Vendo dados do Disco

# fdisk -l /dev/sdb

Saida:

Disk /dev/sdb: 3000.6 GB, 3000592982016 bytes
255 heads, 63 sectors/track, 364801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/sdb doesn't contain a valid partition table

Criar um partição de 3 TB

# parted /dev/sdb

Saída:

GNU Parted 2.3
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted)

Criando um novo rotulo do tipo GPT:

(parted) mklabel gpt

saída:

Warning: The existing disk label on /dev/sdb will be destroyed and all data on this disk will be lost. Do you want to continue?
Yes/No? yes
(parted)

Setar para TB a unidade de medida:

(parted) unit TB

Criando a partição com 3TB:

(parted) mkpart primary 0.00TB 3.00TB

Imprimindo o resultado:

(parted) print

Sample outputs:

Model: ATA ST33000651AS (scsi)
Disk /dev/sdb: 3.00TB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number  Start   End     Size    File system  Name     Flags
 1      0.00TB  3.00TB  3.00TB  ext4         primary

Saindo e salvando as mudanças:

(parted) quit

Agora utilize o mkfs.ext4 para formatar a partição criada!

# mkfs.ext4 /dev/sdb1

 

Pronto! Linux é foda né?

Fontes:

http://www.ibm.com/developerworks/br/linux/library/l-gpt/

http://www.cyberciti.biz/tips/fdisk-unable-to-create-partition-greater-2tb.html

http://www.vivaolinux.com.br/artigo/Exemplos-praticos-de-comandos-com-Parted?pagina=1

Criando senha aleatórias e seguras no linux

A utilização de senhas seguras é uma obrigação a todo profissional de TI. Suas senhas devem ter um bom comprimento e alternar entre letras, números e caracteres especiais, diminuindo drasticamente a possibilidade de descoberta das senhas por outras pessoas ou mecanismos automáticos. Para facilitar a nossa vida existem dois utilitários no linux que geram senhas aleatórias sem que precisemos queimar neurônios para criá-las sozinhos: mkpasswd e makepasswd

O comando mkpasswd já vem no linux e utiliza a função crypt para gerar senhas. Já o makepasswd é mais completo: utiliza o /dev/random para gerar as senhas, pode gerar várias senhas de uma só vez e criptografá-las com o algoritmo md5.

Gerando senhas com o mkpasswd:

Apenas digite no terminal o comando:

Código:
$ mkpasswd


saída:

Código:
senha: digite-a-senha-aqui
/o76/Dpgmv/5rX2

 

Instalando o makepasswd(eu recomendo esse)

Em distribuições Debian-like, digite o seguinte comando no terminal:

Código:
$ sudo apt-get install makepasswd

 

Gerando senhas com o makepasswd:

Digite no terminal:

Código:
$ makepasswd


Saída:

Código:
1mnU8L1LVF


Para alterar o comprimento da senha gerada, utilize a opção –char

Código:
$ makepasswd –char 12


saída:

Código:
9HaifQW4q923


para gerar várias senhas de uma só vez utilize –count

Código:
$ makepasswd –count 5


Saída:

Código:
LzSoH0
K2QXW5L
AisGn0vn
ETVj0W74
NpBp1TeA


Para gerar uma senha criptografada, utilize –crypt-md5 (Ele exibirá a senha em texto plano e criptografada)

Código:
$ makepasswd –crypt-md5


Saída:

Código:
YM2WYIry  $1$mn8MFbyM$Suk986UgD/kOuNBJsBzoD/


Um pequeno script para alterar senhas de usuários com o makepasswd:

Código:
#!/bin/bash
#changepass
#Script para alterar a senha de um usuario
#escrito por Luiz Guanabara www.guanabara.eti.br
#if [ $UID != 0 ]
then
echo -e “ntVoce precisa ser root para executar este script!n”
exit
fi

echo “Informe o nome do usuario”
read name
echo “Informe o comprimento da senha”
read lenght

pass=$(makepasswd –char $lenght)

echo “$name:$pass” | chpasswd

echo “A senha do usuario $name foi alterada para $pass ”

 

———————

Pwgen: utilitário para criar senhas seguras no Linux

por Helbert Rocha no dia 13/ago/2010 em Aplicativos

Pwgen é um gerador de senhas projetado de modo que as senhas sejam facilmente memorizadas pelas pessoas. As senhas que podem ser lembradas pelas pessoas nunca foram tão seguras quanto aquelas geradas aleatoriamente. Em particular, as senhas geradas por este aplicativo sem a opção “-s” não devem ser usadas onde elas podem ser atacadas pela força bruta.

Instalação

Ubuntu

No Ubuntu, para instalar o Pwgen, basta executar o comando abaixo no terminal.

$ sudo apt-get install pwgen

Fedora

No Fedora, para instalar o Pwgen, basta executar o comando abaixo no terminal.

$ su -c 'yum install pwgen'

Uso

Para utilizar o Pwgen, temos algumas opções. Vide abaixo quais são elas.

  • -0, para não incluir números nas senhas geradas.
  • -A, para não incluir letras maiúsculas.
  • -B, para excluir caracteres que possam causar confusões, como 1 e l, por exemplo.
  • -y, para inserir ao menos um caractere especial (*$=!?% …).
  • -n, para inserir ao menos um número na senha gerada.
  • -s, para gerar uma senha aleatória e difícil de ser memorizada.

Exemplo

$ pwgen -0AByns 5 3
OYQS9 5z4O1 gRjR9

Portanto, vemos que foram geradas 3 senhas de 5 caracteres de acordo com as opções pedidas. Para mais informações sobre o Pwgen, clique aqui.

Fontes:

http://networkteam.forumbrasil.net/t30-linux-gerando-senhas-seguras-e-aleatorias

http://meupinguim.com/pwgen-utilitario-criar-senhas-seguras-linux/

Cron agendando tarefas

O cron é um serviço disponível no Linux e outros sistemas UNIX (HP-UX, AIX, Solaris, Linux, etc). Com ele é possível agendarmos rotinas ou tarefas, de modo que o sistema execute-as periodicamente.

Como usar o cron

O primeiro passo é abrir o crontab. Para isso, você pode usar editores de textos como vi, emacs ou nano. Também é possível digitar o comando crontab -e para editar o arquivo exclusivo de seu usuário. Neste caso, a edição é feita como se você estivesse usando o vi.

O crontab tem o seguinte formato:

[minutos] [horas] [dias do mês] [mês] [dias da semana] [usuário] [comando]

O preenchimento de cada campo é feito da seguinte maneira:

– Minutos: informe números de 0 a 59;

– Horas: informe números de 0 a 23;

– Dias do mês: informe números de 0 a 31;

– Mês: informe números de 1 a 12;

– Dias da semana: informe números de 0 a 7;

– Usuário: é o usuário que vai executar o comando (não é necessário especificá-lo se o arquivo do próprio usuário for usado);

– Comando: a tarefa que deve ser executada.

Repare que a ordem desses valores indica o nome correspondente do campo. Por exemplo, no campo mês, 1 a 12 quer dizer de “janeiro a dezembro”. No caso de dias da semana, 0 a 6 quer dizer de “domingo a sábado”. Note que o número 7 também pode ser usado. Neste caso, assim como o número 0, o 7 equivale ao dia de “domingo”.

No lugar desses valores, você pode informar * (asterisco) para especificar uma execução constante. Por exemplo, se o campo dias do mês conter *, o comando relacionado será executado todos os dias.

Você também pode informar intervalos no preenchimento, separando os números de início e fim através de – (hífen). Por exemplo, se no campo horas for informando 2-5, o comando relacionado será executado às 2, 3, 4 e 5 horas. E se o comando tiver que ser executado às 2 horas, entre 15 e 18 horas e às 22 horas? Basta informar 2,15-18,22. Nestes casos, você separa os parâmetros por vírgula.

Vamos a um exemplo:

#tarefa infowester
30 22 3,14 * * echo “Não entre em pânico” > /home/alecrim/infowester.txt

Neste exemplo, a frase “Não entre em pânico” é inserida no arquivo infowester.txt, dentro do diretório /home/alecrim/, às 22 horas e 30 minutos, nos dias 3 e 14, em todos os meses e em todos os dias da semana. Repare na linha “#tarefa infowester”. Trata-se de um comentário. Digite # e tudo o que for digitado na linha não será considerado pelo cron. É um recurso útil para inserir descrições quando se tem várias tarefas a serem executadas.

Alguns exemplos:

Todo dia de hora em hora (hora cheia)
00 * * * * /bin/script
De cinco em cinco minutos todos os dias (note a divisão por 5 do intervalo 00-59)
00-59/5 * * * * /bin/script
Nas seguintes horas: 10, 12, 16, 18, 22 aos 15 minutos da hora
15 10,12,16,18,22 * * * /bin/script
Nos primeiros cinco dias do mês às 19:25
25 19 01-05 * * /bin/script
De segunda a sexta ao meio-dia e a meia-noite
00 00,12 * * 1-5 /bin/script
Script rodar Segunda,Quarta,Sexta às 2 horas
0 2 * * mon,wed,fri /bin/script
Script para rodar Terça,Quinta às 3 horas
0 3 * * tue,thu /bin/script
Script para ser executado minuto a minuto
*/1 * * * * /bin/script

Comandos do crontab

Para acessar o crontab, basta digitar esse nome em um terminal seguido de um parâmetro. Eis a lista de parâmetros disponíveis:

crontab -e: conforme já informado, serve para editar o arquivo atual do crontab e criar um, caso não exista;

crontab -l: este comando mostra o conteúdo atual do crontab;

crontab -r: remove o arquivo atual do crontab.

Fontes:

http://blogdonerd.com.br/2010/09/realizando-backup-de-arquivos-em-servidores-linux/

http://www.infowester.com/linuxcron.php

http://www.hardware.com.br/dicas/agendando-tarefas-rotinas-cron.html

http://pt.wikipedia.org/wiki/Crontab

Recuperando o Grub

1º Método

Este é um dos método mais simples e fácil de se recuperar o GRUB. Insira o LiveCD , e inicialize o sistema.

Feito isso abra um terminal. Como estamos em um LiveCD precisamos definir a senha do root.

# passwd su

Logue-se como root.

Agora iremos criar o diretório para montarmos nossa partição:

# mkdir /mnt/linux

Monte a partição onde nosso sistema está instalado:

# mount /dev/hda2 /mnt/linux

(lembrando que este exemplo deve ser substituído pela partição onde seus sistema esta instalado)

Depois de montar a partição, utilizaremos o utilitário grub:

# grub

grub> root (hd0,1)

(lembre-se aqui de como o GRUB faz a analogia das partições, então o hda2 deve ser especificado como 0,1 o hda3 0,2 e assim por diante)

grub> setup (hd0)
grub> quit

Reinicie o sistema e veja o resultado…

2º Método

Com o sistema iniciado pelo LiveCD defina a senha do root:

# passwd su

Feito isso logue-se como root.

Agora iremos criar o diretório onde montaremos nossa partição:

# mkdir /mnt/linux

Monte a partição onde o sistema está instalado:

# mount /dev/hda2 /mnt/linux

Agora emitiremos o comando para que a instalação do GRUB seja feita no MBR da primeira partição:

# grub-install –root-directory=/mnt/linux /dev/hda

Espere a instalação ser feita, reinicie o computador e veja o GRUB , funcionando belezinha ^^

3º Método

Este é o meu favorito. Com o sistema iniciado pelo LiveCD, defina a senha de root:

# passwd su

Depois logue-se como root.

Agora iremos criar o diretório para montarmos a partição:

# mkdir /mnt/linux

Agora montamos a partição:

# mount /dev/hda2 /mnt/linux

Agora iremos deixar o diretório alvo como raiz do sistema:

# chroot /dev/hda2

Instalamos o GRUB no MBR:

# grub-install /dev/hda

######################################

Caso você tenha um amigo que tenha instalado também o win7 (pq ew nao acredito que vc tenha ele em seu pc) e ao fazer um desses procedimentos e a porcaria do win7 não foi reconhecido entao você pode usar:

# update-grub

isso atualiza a tabela de sistemas operacionais do grub.


fontes:

http://www.vivaolinux.com.br/dica/Recuperando-o-GRUB

http://www.dihitt.com.br/barra/ativando-dual-boot-no-ubuntu-1104-natty-narwhal

Comando scp, copiando arquivos – recursivo

Secure Copy ou SCP é um meio seguro para transferir arquivos entre um host local e um remoto ou entre dois hosts remotos, usando o protocolo SSH.

Ex.:
scp /home/usuario/teste.txt usuario@host_destino:/home/usuario/teste.txt

Para transferir diretórios e subpastas, basta colocar a opção scp -r.

scp -r /home/usuario/pasta usuario@host_destino:/home/usuario

Para transferir arquivos preservando as permissões e datas dos mesmos, basta colocar a opção scp -p.

scp -p /home/usuario/pasta usuario@host_destino:/home/usuario/pasta

e ainda juntar os dois:

scp -rp /home/usuario/pasta usuario@host_destino:/home/usuario/pasta

Fontes:

http://amath.colorado.edu/computing/software/man/scp.html

http://fabriciojca.blogspot.com/2009/07/scp-recursivo.html

Instalando Lamp Apache, MySQL, PHP

Para qualquer programador Web o eixo Apache, PHP, MySQL no Linux é essencial para  o bom desenvolvimento.

Essa instalação é focada em sistemas como Debian e Ubuntu.

Sugiro também que utilizem Netbeans com os plugins php+html para desenvolvimento.

Instalando no Debian e derivados:

Apache2:

# apt-get install apache2

PHP5 + Módulo Apache:

# apt-get install libapache2-mod-php5 php5-cli php5-common php5-cgi

MySQL5:

# apt-get install mysql-server

PhpMyAdmin:

# apt-get -y install phpmyadmin

Caso algum dia queira trocar senha do MySQL:

# mysqladmin -u root -p password UmaBoaSenha

Fontes:

http://www.vivaolinux.com.br/artigo/Apache2-PHP5-MySQL5-e-PhpMyAdmin-com-certificacao-SSL-no-Debian-Etch/?pagina=1

Migrando conta de usuários

Ao reinstalar o sistema ou mudar de sistema linux, no caso de um servidor voce pode querer manter as contas de usuarios. Para isso você deve olhar os seguintes arquivos:

/etc/passwd -> onde fica as configuracoes basicas dos usuarios

/etc/shadow -> aqui fica armazenada as senhas de usuarios, criptografadas logico!

/etc/group -> este arquivo guarda os grupos e os integrantes deles

Minha recomendação é:

* Fazer backup desses arquivos e pastas dos usuários  ao reinstalar o sistema.

* Depois você pega cada linha de usuário que deseja migrar e coloca nos mesmos arquivos do novo sistema.

* Copiar com as mesmas permissões as pastas de usuários para o novo servidor.

* Tomando cuidado para não colocar nomes ou identificações já existentes.

Abraços!