Posts de ‘Rafael Biriba’

[Rafael Biriba] Ubuntu 11.10 com Ruby on Rails + Nginx + Mysql de forma simples

Friday, February 3rd, 2012

Andei procurando na internet por algum script para fazer uma instalação mais “automatizada” de um ambiente Ruby on Rails numa máquina virtual (VPS) rodando Ubuntu 11.10

Depois de pesquisar muito, só encontrei referências detalhadas  para ubuntu 10.* ou então alguns blogs sugerindo algumas linhas de comando apenas.

Como eu já estava terminando um projeto de um site e precisava de um ambiente de produção, resolvi fazer um script (em bash), onde eu tivesse o controle de tudo que iria acontecer de forma segura e eficaz.

O script está disponível no meu github, use como quiser =)

Lembrando que só testei no Ubuntu 11.10, a instalação instala e configura o seguinte:
- Ruby 1.9.2-p290
-  Nginx Upload Module 2.2.0
- Nginx 1.1.12 
- iptables para as portas principais de ssh(22), http(80), https(443), dns(53)
- Mysql (versão estável do apt-get do ubuntu)
- Postfix (versão estável do apt-get do ubuntu)
- Gem Bundler (última versão pelo rubygems)

Com isso, basta configurar o domínio da sua aplicação corretamente na configuração do nginx, fazer o deploy e ser feliz! =)

Link do projeto: https://github.com/rafaelbiriba/Ubuntu-VPS-Builder 

Abaixo segue uma cópia do código que eu coloquei no git assim você pode tirar suas dúvidas pelos comentários… Caso decida usar o script, baixe ele pelo link do github. Não use o código abaixo pois o mesmo pode já estar desatualizado!

Modo de usar no servidor:
$ chmod +x vps_builder.sh
$ ./vps_builder.sh seudominio.com 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
#!/bin/bash
# "Automated VPS Setup for Ubuntu 11.10 - Rails with Nginx"
#
# Created by: Rafael Biriba - www.rafaelbiriba.com - biribarj@gmail.com
# https://github.com/rafaelbiriba/Ubuntu-VPS-Builder/
#
# USAGE:
#
# $ chmod +x vps_builder.sh
# $ ./vps_builder.sh yourdomain.com"
 
echo "Set Hostname"
 
echo $1 > /etc/hostname
echo "127.0.0.1 $1" >> /etc/hosts
hostname -F /etc/hostname
 
echo "Set Timezone"
 
ln -sf /usr/share/zoneinfo/America/Sao_Paulo /etc/localtime
 
echo "Install Essencials"
 
apt-get install build-essential zlib1g-dev libreadline6-dev libssl-dev wget git-core sudo -y
 
echo "Install Ruby 1.9.2"
 
mkdir ~/tmp && cd ~/tmp
wget http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.2-p290.tar.gz
tar xzvf ruby-1.9.2-p290.tar.gz
cd ruby-1.9.2-p290
./configure
make
make install
cd ~
rm -rf ~/tmp
 
echo "Install Passenger and Nginx"
 
mkdir ~/tmp && cd ~/tmp
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.21.tar.gz
tar xzvf pcre-8.21.tar.gz
cd pcre-8.21
./configure && make && make install
cd ~/tmp
 
wget http://nginx.org/download/nginx-1.1.12.tar.gz
wget http://www.grid.net.ru/nginx/download/nginx_upload_module-2.2.0.tar.gz
tar xzvf nginx-1.1.12.tar.gz
tar xzvf nginx_upload_module-2.2.0.tar.gz
 
gem install passenger
apt-get install libcurl4-openssl-dev -y
passenger-install-nginx-module --prefix=/opt/nginx --nginx-source-dir=/root/tmp/nginx-1.1.12 --extra-configure-flags=--add-module='/root/tmp/nginx_upload_module-2.2.0'
#passenger-install-nginx-module --auto --auto-download
cd ~
rm -rf ~/tmp
 
cd ~
wget https://raw.github.com/rafaelbiriba/Ubuntu-VPS-Builder/master/ubuntu_11-10_desktop/nginx-init.sh
cp nginx-init.sh /etc/init.d/nginx
rm nginx-init.sh
chmod +x /etc/init.d/nginx
/usr/sbin/update-rc.d -f nginx defaults
/etc/init.d/nginx start
 
echo "Configure iptables"
 
apt-get install iptables
 
tee /etc/init.d/firewall <<ENDOFFILE
#!/bin/bash
 
start(){
# Accepting all connections made on the special lo - loopback - 127.0.0.1 - interface
iptables -A INPUT -p tcp -i lo -j ACCEPT
 
# Rule which allows established tcp connections to stay up
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
 
# SSH:
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
 
# DNS:
iptables -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -p udp --dport 53 -j ACCEPT
 
# HTTP e HTTPS:
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
 
# Block others ports
iptables -A INPUT -p tcp --syn -j DROP
iptables -A INPUT -p udp --dport 0:1023 -j DROP
 
}
stop(){
iptables -F
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
}
 
case "\$1" in
"start") start ;;
"stop") stop ;;
"restart") stop; start ;;
*) echo "start or stop params"
esac
ENDOFFILE
 
chmod +x /etc/init.d/firewall
update-rc.d firewall defaults 99
/etc/init.d/firewall start
 
echo "Install MySQL"
 
apt-get install mysql-server mysql-client libmysqlclient-dev -y
 
echo "Install postfix"
 
# Install type: Internet Site
# Default email domain name: example.com
apt-get install postfix mailutils telnet -y
/usr/sbin/update-rc.d postfix defaults
/etc/init.d/postfix start
 
echo "Install gem bundler"
 
gem install bundler
 
echo "VPS Setup Complete"

Qualquer dúvida, estamos aí para trocar ideias ;)

<!–<!–TwitterFacebookShare

Leia também:


[Rafael Biriba] Globo.com: Inscrições para estágio vão até 11 de outubro/2011

Thursday, September 22nd, 2011
http://www.globo.com/estag

http://www.globo.com/estag

O programa de estágio do portal das Organizações Globo (Globo.com) está aberto e as inscrições poderão ser feitas até dia 11 de outubro (2011).

Não perca essa oportunidade de participar no desenvolvimento de um dos maiores portais da internet Brasileira… As inscrições podem ser feitas pelo site http://www.globo.com/estag

Etapas do processo seletivo: ( 2011 )
- Inscrições: até o dia 11 de outubro
- Prova On-line: ainda não informado
- Entrevista Coletiva: ainda não informado
Painel: ainda não informado
- Entrevista com o Gestor: ainda não informado
- Início do Estágio: Janeiro de 2012

Fique atento ao seu email, pois as convocações iniciais deverão ser feitas por meio dele
Visite também o site para mais detalhes: http://www.globo.com/estag

Informações adicionais:
Quem pode participar?
Estudantes matriculados em cursos de nível superior, com previsão de formatura para dezembro de 2012 ou  dezembro de 2013, compatíveis com as áreas/vagas existentes, disponíveis para a cidade do Rio de Janeiro e São Paulo.

Existem vagas para que áreas?
Vagas em diversas áreas para estudantes dos mais variados cursos: Administração, Psicologia, Comunicação Social, Comunicação Visual, Design, Desenho Industrial, Estatística, Engenharia de Produção, Cursos das áreas de Tecnologia (Ciência da Computação, Engenharia da Computação, Análise de Sistemas) entre outros

Aproveite e dê uma olhada no restante do blog. Dicas importantes podem ser obtidas nos comentários dos outros posts antigos sobre os processos seletivos, principalmente nos posts de processos seletivos antigos, pois muitas duvidas foram respondida pelos comentários… Fique atento para não haver repetição de dúvidas…

ATENÇÃO para esta dica adicional =) Se a sua previão de formatura não estiver entre a solicitada (dez/12 a dez/13), inscreva-se mesmo assim. Quem sabe você não consegue entrar… ;)

Boa sorte a todos e como sempre, estou a disposição para responder qualquer pergunta ;) (Dependendo da pergunta, posso pedir para que alguém do RH responder)

Google BookmarksTwitterYahoo MessengerOrkutHotmailGoogle GmailDeliciousShare

Leia também:


[Rafael Biriba] IST-Rio: Inscrições abertas – Vestibular 2011: 2º semestre

Wednesday, May 25th, 2011

 

http://www.faetec.rj.gov.br/ist-rio

http://www.faetec.rj.gov.br/ist-rio

Estão abertas as inscrições para o vestibular de acesso ao curso de Análise de Sistemas Informatizados do IST-Rio (Instituto Superior de Tecnologia em Ciência da Computação do Rio de Janeiro), para o segundo semestre de 2011.

São oferecidas 30 vagas para o turno da manhã e 30 vagas para o turno da noite. As inscrições podem ser feitas pelo site da FAETEC, ou pelo link: http://200.150.155.210/FAETEC_2011.2/ na opção Vestibular Faetec – IST.

O período para inscrições vai de 23/05/2011 até 17/06/2011, segundo as informações no site da organizadora do concurso.

De acordo com o INEP/MEC o curso (Análise de Sistemas Informatizados do IST-Rio) é o 2º melhor do Rio de Janeiro e o 8º melhor do Brasil…

Não perca essa oportunidade! Qualquer dúvida ligue para (21) 2332-4048. Boa Sorte a todos os candidatos… ;)

Links Úteis: ( vestibular 2º semestre / 2011 )
Site do instituto: http://www.faetec.rj.gov.br/ist-rio/
Link direto para inscrição no vestibular:
http://200.150.155.210/FAETEC_2011.2/Inscricao/Formulario.asp?opcao=4
Link direto para o edital:
http://200.150.155.210/FAETEC_2011.2/Divulgacao/Edital%20Vestibulas_2011_2_Final.doc
Link direto para o calendário: http://200.150.155.210/FAETEC_2011.2/Divulgacao/CALENDARIO_Vestibular_2011_2_Final.doc
Link direto para o anexo de vagas: http://200.150.155.210/FAETEC_2011.2/Divulgacao/Quadro%20de%20Vagas_Vestibular_2011_2_Final.doc
Link direto para referencia de estudo para a prova:
Não encontrei o link para a matriz de referência para base de estudo =/

Abaixo segue umas imagens do instituto:

istrio

Endereço:
Rua Clarimundo de Melo, 847, Quintino Bocaiúva, Rio de Janeiro, RJ – CEP: 21311-280

Leia também:


[Rafael Biriba] Raptcha: Um captcha simples para aplicações Rails

Friday, May 6th, 2011

 

Humor: Robôs lendo o captcha

Captcha é um teste de desafio cognitivo, utilizado como ferramenta anti-spam. O que acontece é que um script automatizado (um robô), não consegue ler o texto embaralhado nas imagens. Isso faz com que seja uma excelente ferramenta para combater o spam ou prevenir que scripts tenham acesso a determinadas áreas.

Recentemente tive que procurar uma gem (um pacote do rubygems) de captcha para minha aplicação rails, mas que fosse a mais simples possível e sem nenhuma dependência externa.

Vi que a mais utilizada é a gem recaptcha, que utiliza a estrutura da API do google de captcha (google.com/recaptcha). Para resolver o meu problema ela não serve, já que o meu projeto vai rodar em máquinas sem acesso a internet.

Então ao continuar a busca por uma boa gem de captcha, recebi a recomendação de usar o Raptcha.

O Raptcha é realmente muito simples de configurar e de usar. Ele usa o Image Magick para renderizar as imagens em tempo real.

Em alguns casos isso pode ser um problema, mas no caso da minha aplicação, não havia necessidade de cachear as imagens.

Ao lado temos um exemplo do uso do raptcha.

Você pode conferir a documentação de instalação pelo link: https://github.com/ahoward/raptcha

Quando estava fazendo os meus testes, tive dificuldade para fazer as letras do captcha aparecer. Se isso acontecer, tente instalar o pacote GhostScript. Se você estiver usando o ubuntu, o imagemagick e o ghostscript tem no synaptic. Se você usa macbook, ambos os pacotes podem ser instalados pelo repositório do brew (não sei se tem no ports).

Um outro problema que eu tive que resolver, foi implementar o botão de gerar outro captcha. Infelizmente o raptcha não da suporte nativo a isso. Mas pode ser facilmente resolvido usando Ajax. O que eu fiz foi colocar no controller um render partial como mostra o código a seguir:

1
2
3
4
5
6
7
8
9
10
11
class RaptchaController < ApplicationController
 
  def index
    Raptcha.render(controller=self, params)
  end
 
  def get_form
    render :partial => "form"
  end
 
end

E no partial “form” ficou assim:

1
<%= raw Raptcha.input %>

Dessa forma, a chamar a url: http://localhost:3000/raptcha/get_form obtemos o retorno de todo o form do raptcha:

1
2
3
4
5
6
7
8
<div class="raptcha">
   <img class="raptcha-image" src="/raptcha?e=DaROXGWrRTrLdYXmJ05iKg" alt="Imagem de validação" width="242" height="68" />
 
   <label><img id="captcha-reload" title="Recarregar imagem" src="/images/mini-reload.gif" alt="" />Digite as letras acima:</label>
 
   <input class="raptcha-input box" name="raptcha[t]" type="textarea" />
   <input class="raptcha-word" name="raptcha[w]" type="hidden" value="DaROXGWrRTrLdYXmJ05iKg" />
   <input class="raptcha-timebomb" name="raptcha[b]" type="hidden" value="nEZ-sQYpOFC2YIE2qhAjeQ" /></div>

Então basta você colocar uma ação no botão #captcha-reload e obter um novo form por ajax e substituir o form antigo na página de sua aplicação. Fazendo assim, você poderá recarregar o seu captcha quantas vezes precisar…

Então é isso… Se você precisa de uma solução simples para o captcha em seu projeto, experimente o Raptcha usando as dicas acima… ;)

Leia também:


[Rafael Biriba] The Wilderness Downtown: Experimento do Google usando HTML5

Wednesday, May 4th, 2011

Apesar de ser um experimento já antigo, resolvi blogar assim mesmo, pois algumas pessoas ainda não o conhecem…

The Wilderness Downtown foi um projeto experimental do google, lançado em 2010, usando HTML5 e o navegador Chrome.

O projeto é simplesmente fantástico, baseado essencialmente em JavaScript, HTML5, Canvas, SVG, Google Street View e na API do Google Maps.

Tudo começa ao informar um endereço real. A partir das imagens do Google Maps e Street View, o vídeo de um rapaz correndo abre em uma das abas, e na outra, a posição de onde o rapaz está correndo aparece na região que você informou.

Enquanto isso, alguns pássaros voam sobre os mapas e até pelo video, sendo que eles são animações feitas no canvas. Note que na tela inicial (onde você informa o endereço) os pássaros são sensíveis a posição do mouse. Então, se você tentar toca-los, eles irão mudar de direção… :)

Durante a exibição, você poderá fazer um desenho e inclusive podendo utilizar as letras do teclado para escrever algo. A cada tecla pressionada, uma animação de máquina de escrever é reproduzida  logo a baixo. O mais impressionante disso tudo, é que depois que passam alguns segundos, os pássaros voltam voando e pousam em todas as linhas que você fez no desenho.

Você pode acessar e conferir tudo em: http://www.thewildernessdowntown.com/ (recomenda-se o uso do navegador Chrome)

Leia também:


[Rafael Biriba] WordPress 3.1.1 corrige falhas de segurança

Wednesday, April 6th, 2011

http://www.wordpress.org/

Liberada ontem (dia 05/abril/11) a versão 3.1.1 do wordpress corrige algumas falhas de segurança.

Dentro das principais modificações, temos:

  • Foi melhorado a segurança para o upload de media
  • Prevenção de erros no php, referente a links complexos
  • Foi corrigido também outros 26 bugs conhecidos (veja a lista aqui)

A atualização já está disponível para todos os idiomas do wordpress, inclusive o pt_BR.

Manter o wordpress sempre atualizado é essencial para garantir a segurança do blog. Então, não deixe de atualizar.

Dica: Sempre faça o backup dos seus dados antes de fazer qualquer atualização…

Se você ainda não atualizou para a versão 3.1, sugiro a leitura deste post: http://www.rafaelbiriba.com/2011/02/23/wordpress-cuidados-e-dicas-para-atualizar-a-versao-para-3-1.html

Leia também:


[Rafael Biriba] VirtualBox 4.0.4: Nova funcionalidade permite expandir o tamanho do disco vdi

Sunday, April 3rd, 2011

Para facilitar a vida de quem precisa redimensionar o disco virtual de uma VM, foi lançado o serviço “modifyhd” que pode ser acessado pelo VBoxManage.

Infelizmente esse serviço está disponível apenas na versão 4. Se a versão do seu virtualbox for mais antiga, sugiro que faça essa atualização. Nessa nova versão, foram corrigidos vários bugs (são tantos que não dá para listar aqui. Veja a lista completa em: http://www.virtualbox.org/wiki/Changelog). Você pode fazer o download da versão nova versão em: http://www.virtualbox.org/wiki/Downloads

Mas se você ainda usa uma versão antiga do virtualbox, veja esse tutorial: VirtualBox 3: Aumentanto o tamanho do disco virtual da vm

Bom, para redimensionar o disco, você deve executar na linha de comando, em um terminal/console o seguinte comando:

VBoxManage modifyhd <caminho completo para o vdi> –resize <tamanho em mb>

Tentei fazer um teste. Então escolhi peguei o disco do meu WindowsXP de 20GB e rodei o comando:

VBoxManage modifyhd /Users/rafaelbiriba/Library/VirtualBox/HardDisks/WindowsXP.vdi –resize 15000

Resultado:

Progress state: VBOX_E_NOT_SUPPORTED VBoxManage: error: Resize hard disk operation for this format is not implemented yet!

Para minha surpresa, o modifyhd só funciona para aumentar o disco. Ainda não foi implementado a funcionalidade para diminuir o disco.

Então depois de um novo teste:

VBoxManage modifyhd /Users/rafaelbiriba/Library/VirtualBox/HardDisks/WindowsXP.vdi –resize 22000

O resultado foi exatamente o esperado (22000 MB = 21.48 GB):

Ao invés de usar o –resize passando o valor em MB, você também pode usar o –resizebyte e passar o valor em bytes.

Depois de redimencionar o disco, você precisa aumentar o tamanho da partição, para ocupar também o novo espaço disponibilizado. Para isso, você pode baixar o live cd do Gparted (http://gparted.sourceforge.net/download.php) e alterar o tamanho da partição.

Você também pode acessar o guia em: http://www.rafaelbiriba.com/2011/03/16/virtualbox-3-aumentando-o-tamanho-do-disco-virtual-da-vm.html e no 8º passo eu mostro como fazer para redimensionar a partição usando o GParted.

Então é isso… Qualquer dúvida, crítica, elogio ou sugestão, podem me deixar um comentário abaixo ;)

Leia também:


[Rafael Biriba] O blog está cara nova em comemoração ao centésimo post

Thursday, March 31st, 2011

É com grande alegria que eu escrevo o 100° post !

E para comemorar esse post histórico, nada melhor do que trocar o tema do blog.

Com esse novo tema, o consumo de informação na página inicial do blog ficou melhor, mas claro e objetivo.

O tema que eu escolhi veio com alguns defeitos e algumas coisas que não me agradaram, e por isso decidi customizar por conta própria. Se você achar algum defeito, algum texto quebrado ou excedendo algum espaço, por favor entre em contato comigo, se possível com uma screenshot do problema. Isso vai me ajudar a resolver todos os pequenos detalhes.

Meu próximo passo é testar alguns plugins de cache para wordpress, e esteja certo de que escreverei posts comentando sobre os plugins testados. O objetivo será otimizar o carregamento da página, tando para o usuário que vai ver a página carregar mais rapidamente, quanto o processamento no lado do servidor.

Ainda falando sobre o novo layout: Na página inicial podemos contar com a barra de comentários recentes, como mostra a imagem ao lado !

Para que a sua foto apareça naquele widget e também para que apareça nos comentários de qualquer blog wordpress, você precisa criar uma conta no gravatar e associar seu email a uma foto sua. Leia mais sobre isso em: http://www.rafaelbiriba.com/2009/08/04/gravatar-sua-foto-nos-comentarios-do-wordpress.html

Gostaria de fazer também aqui um outro pedido:

Não deixe de entrar em contato: http://www.rafaelbiriba.com/contatos caso você tenha alguma sugestão de assuntos para serem abordados aqui no blog…

Sua opnião é muito importante ;)

Um grande abraço a todos,

 

Leia também:


[Rafael Biriba] VirtualBox 3: Aumentando o tamanho do disco virtual da VM

Wednesday, March 16th, 2011

Sempre que preciso criar uma nova vm no virtualbox, eu perco algum tempo na tela de criação de disco.

São sempre as mesmas perguntas:

  • “Quanto de espaço vou precisar nessa vm ?”
  • “O que vai rodar nela ?”
  • “E se eu não criar um disco com espaço suficiente ?”

Depois de perder alguns minutos e finalmente decidir o tamanho do disco, eu prossigo com a criação e instalação da nova VM.

É bem comum se criar VM Windows por exemplo com apenas 10GB de disco. E se você precisar instalar alguns programas pesados ? Será mesmo um problema quando sua máquina virtual fica sem espaço em disco ? Bom, com esse tutorial a resposta é não.

Nos passos abaixo, explicarei com detalhes como aumentar o tamanho do seu disco virtual (.vdi):

[Post escrito e testado baseado no VirtualBox 3.2.6]

1º passo: Criar um novo disco com um espaço maior.

Para isso, abra o gerenciador de disco virtual ou o virtual disk manager e crie um novo disco.

Para os exemplos a seguir, eu criei o disco novoDisco30GB.vdi

2º passo: Escolher a máquina virtual com o disco a ser modificado

Ao decidir qual vm terá seu disco alterado, certifique-se que ela está desligada e entre nas configurações da VM. Vá até a categoria storage ou armazenamento:

O objetivo é fazer com que a vm fique com 2 discos. No meu exemplo utilizei a controladora SATA. Mas funciona da mesma forma para que utiliza controladora IDE. Basta colocar o segundo disco como IDE Primary Slave.

3º passo: Fazer o download da imagem .iso do Gparted live cd

Acesse a url: http://sourceforge.net/projects/gparted/ e baixe a ultima versão da imagem .iso

O Gparted é um editor de partição gratuito, que vamos usar para redimensionar as partições conforme desejarmos.

4º passo: Adicionar o liveCD Gparted na maquina virtual

Adicione o .iso na sua vm de forma que fique assim:

Para quem usa controlador IDE, basta adicionar na posição IDE Secondary Master.

Certifique-se também que a ordem de boot da sua VM está com o CD-Rom antes do HD:

5º passo: Iniciar a VM pelo LiveCD do GParted

Ligue a VM e inicie escolhendo a opção do GParted:

Ele irá oferecer alguma opções de formato do teclado e linguagem. Você pode ir pelas configuraões padrões apertando “ENTER” em todas as opções oferecidas até chegar na tela do sistema:

6º passo: Verificar os nomes dos discos

Assim que o GParted iniciar, o programa já deve vir aberto. Se não estiver em execução, você pode inicar o GParted pelo icone na área de trabalho.

Depois disso, você precisa anotar os nomes dos discos:

Então, no próximo passo nós iremos copiar todo o conteúdo do disco /dev/sda (20 GB) para o /dev/sdb (30 GB).

7º passo: Transferindo os dados de um disco para o outro

Antes de fazer a cópia, certifique-se de ter fechado o programa do GParted. Agora abra o terminal, clicando no icone na área de trabalho.

Agora, basta rodar o comando:
sudo dd if=/dev/sda of=/dev/sdb

Atenção: Tenha certeza que está fazendo a cópia certa. if é o caminho do disco de origem, neste caso o sda que é o de 20GB. E of é o caminho do disco de destino, neste caso o sdb que é o de 30GB.

Dependendo do tamanho do disco, esse processo pode demorar um pouco. Para testar o meu exemplo, levou cerca de 22 minutos para transferir todo o hd de 20GB para o de 30GB.

8º passo: Redimensionar a partição do novo disco

Feito o passo anterior, feche o terminal e reinicie a vm, abrindo pelo liveCD do GParted novamente. Essa reinicialização não é obrigatória, mas serve para evitar problemas no novo disco, já que por algum motivo o GParted fica reclamando de que nao consegue ler os dados da nova partição.

Bom, depois de reiniciar, vamos redimensionar o novo HD.

Se for uma VM windows, basta clicar com o botão direito sobre o /dev/sdb1 e clicar em redimensionar / resize e arrastar a partição até preencher todo o espaço disponível:

Depois disso basta apertar em aplicar e pular para o próximo passo…

No meu caso, estou redimensionando em um HD com linux, então entre a partição do sistema e o espaço disponível tem a partição do swap.

Para poder redimensionar o disco, você precisa remover o “swap” que está em nosso caminho.

Depois de deletar o swap, clique com o botão direito e depois em redimensionar / resize para chegar na tela abaixo:

Arraste o tamanho do disco até o limite desejado. Lembre-se de deixar um pouco de espaço para recriar o swap novamente. Geralmente o swap é criado com o dobro do tamanho da memória da máquina.

Depois de aumentar a partição primária, crie no espaço que sobrou uma partição estendida, onde iremos definir o novo swap.

Criado a partição estendida, crie dentro dela uma partição lógica com o file-system “linux swap”

Pronto. Terminamos de redimensionar o disco.

Agora basta aplicar as modificações e esperar um pouco.

Feito isso, já podemos desligar a vm.

9º passo: Ligar a VM com o novo disco

Remova o disco antigo da vm, remova o cd de boot e depois ligue a vm com o novo disco !

10º passo: Agora, basta aproveitar a sua VM com um disco maior

11º passo (Passo necessário no Ubuntu): Trocando o uuid do disco do swap.

Em alguns linux, com o ubuntu, ele grava em um arquivo o uuid (id do disco) que o sistema usa.

Como fizemos algumas modificaçoes nas partições, esses ids mudaram. Então precisamos editar o arquivo que fica em /etc/fstab como mostra a figura abaixo:

Com o comando: ls -la /dev/disk/by-uuid/ você pode listar os novos ids e a onde eles estão montados.

No caso da imagem acima, basta atualizar o arquivo fstab com o uuid do disco em sda1 e depois em sda5.

Reinicie a VM e estará tudo funcionando corretamente ;)

==========================================

IMPORTANTE: Em 22/12/2010 foi lançado a versão 4 do virtualbox. Umas das principais modificações foi o suporte ao redimensionamento do disco. Em breve escreverei um novo post falando sobre essa funcionalidade.
Eu só publiquei essa matéria pois estava como rascunho a muito, muito tempo. E além do mais, nem todo mundo atualiza a versão do virtualbox, então pode ser útil para alguém… ;)
==========================================
[Post escrito e testado baseado no VirtualBox 3.2.6]

Google Bookmarks Twitter Yahoo Messenger Orkut Hotmail Google Gmail Delicious Share

Leia também:


[Rafael Biriba] VirtualBox 3: Aumentando o tamanho do disco virtual da VM

Wednesday, March 16th, 2011

Sempre que preciso criar uma nova vm no virtualbox, eu perco algum tempo na tela de criação de disco.

São sempre as mesmas perguntas:

  • “Quanto de espaço vou precisar nessa vm ?”
  • “O que vai rodar nela ?”
  • “E se eu não criar um disco com espaço suficiente ?”

Depois de perder alguns minutos e finalmente decidir o tamanho do disco, eu prossigo com a criação e instalação da nova VM.

É bem comum se criar VM Windows por exemplo com apenas 10GB de disco. E se você precisar instalar alguns programas pesados ? Será mesmo um problema quando sua máquina virtual fica sem espaço em disco ? Bom, com esse tutorial a resposta é não.

Nos passos abaixo, explicarei com detalhes como aumentar o tamanho do seu disco virtual (.vdi):

[Post escrito e testado baseado no VirtualBox 3.2.6]

1º passo: Criar um novo disco com um espaço maior.

Para isso, abra o gerenciador de disco virtual ou o virtual disk manager e crie um novo disco.

Para os exemplos a seguir, eu criei o disco novoDisco30GB.vdi

2º passo: Escolher a máquina virtual com o disco a ser modificado

Ao decidir qual vm terá seu disco alterado, certifique-se que ela está desligada e entre nas configurações da VM. Vá até a categoria storage ou armazenamento:

O objetivo é fazer com que a vm fique com 2 discos. No meu exemplo utilizei a controladora SATA. Mas funciona da mesma forma para que utiliza controladora IDE. Basta colocar o segundo disco como IDE Primary Slave.

3º passo: Fazer o download da imagem .iso do Gparted live cd

Acesse a url: http://sourceforge.net/projects/gparted/ e baixe a ultima versão da imagem .iso

O Gparted é um editor de partição gratuito, que vamos usar para redimensionar as partições conforme desejarmos.

4º passo: Adicionar o liveCD Gparted na maquina virtual

Adicione o .iso na sua vm de forma que fique assim:

Para quem usa controlador IDE, basta adicionar na posição IDE Secondary Master.

Certifique-se também que a ordem de boot da sua VM está com o CD-Rom antes do HD:

5º passo: Iniciar a VM pelo LiveCD do GParted

Ligue a VM e inicie escolhendo a opção do GParted:

Ele irá oferecer alguma opções de formato do teclado e linguagem. Você pode ir pelas configuraões padrões apertando “ENTER” em todas as opções oferecidas até chegar na tela do sistema:

6º passo: Verificar os nomes dos discos

Assim que o GParted iniciar, o programa já deve vir aberto. Se não estiver em execução, você pode inicar o GParted pelo icone na área de trabalho.

Depois disso, você precisa anotar os nomes dos discos:

Então, no próximo passo nós iremos copiar todo o conteúdo do disco /dev/sda (20 GB) para o /dev/sdb (30 GB).

7º passo: Transferindo os dados de um disco para o outro

Antes de fazer a cópia, certifique-se de ter fechado o programa do GParted. Agora abra o terminal, clicando no icone na área de trabalho.

Agora, basta rodar o comando:
sudo dd if=/dev/sda of=/dev/sdb

Atenção: Tenha certeza que está fazendo a cópia certa. if é o caminho do disco de origem, neste caso o sda que é o de 20GB. E of é o caminho do disco de destino, neste caso o sdb que é o de 30GB.

Dependendo do tamanho do disco, esse processo pode demorar um pouco. Para testar o meu exemplo, levou cerca de 22 minutos para transferir todo o hd de 20GB para o de 30GB.

8º passo: Redimensionar a partição do novo disco

Feito o passo anterior, feche o terminal e reinicie a vm, abrindo pelo liveCD do GParted novamente. Essa reinicialização não é obrigatória, mas serve para evitar problemas no novo disco, já que por algum motivo o GParted fica reclamando de que nao consegue ler os dados da nova partição.

Bom, depois de reiniciar, vamos redimensionar o novo HD.

Se for uma VM windows, basta clicar com o botão direito sobre o /dev/sdb1 e clicar em redimensionar / resize e arrastar a partição até preencher todo o espaço disponível:

Depois disso basta apertar em aplicar e pular para o próximo passo…

No meu caso, estou redimensionando em um HD com linux, então entre a partição do sistema e o espaço disponível tem a partição do swap.

Para poder redimensionar o disco, você precisa remover o “swap” que está em nosso caminho.

Depois de deletar o swap, clique com o botão direito e depois em redimensionar / resize para chegar na tela abaixo:

Arraste o tamanho do disco até o limite desejado. Lembre-se de deixar um pouco de espaço para recriar o swap novamente. Geralmente o swap é criado com o dobro do tamanho da memória da máquina.

Depois de aumentar a partição primária, crie no espaço que sobrou uma partição estendida, onde iremos definir o novo swap.

Criado a partição estendida, crie dentro dela uma partição lógica com o file-system “linux swap”

Pronto. Terminamos de redimensionar o disco.

Agora basta aplicar as modificações e esperar um pouco.

Feito isso, já podemos desligar a vm.

9º passo: Ligar a VM com o novo disco

Remova o disco antigo da vm, remova o cd de boot e depois ligue a vm com o novo disco !

10º passo: Agora, basta aproveitar a sua VM com um disco maior

11º passo (Passo necessário no Ubuntu): Trocando o uuid do disco do swap.

Em alguns linux, com o ubuntu, ele grava em um arquivo o uuid (id do disco) que o sistema usa.

Como fizemos algumas modificaçoes nas partições, esses ids mudaram. Então precisamos editar o arquivo que fica em /etc/fstab como mostra a figura abaixo:

Com o comando: ls -la /dev/disk/by-uuid/ você pode listar os novos ids e a onde eles estão montados.

No caso da imagem acima, basta atualizar o arquivo fstab com o uuid do disco em sda1 e depois em sda5.

Reinicie a VM e estará tudo funcionando corretamente ;)

==========================================

IMPORTANTE: Em 22/12/2010 foi lançado a versão 4 do virtualbox. Umas das principais modificações foi o suporte ao redimensionamento do disco. Em breve escreverei um novo post falando sobre essa funcionalidade.
Eu só publiquei essa matéria pois estava como rascunho a muito, muito tempo. E além do mais, nem todo mundo atualiza a versão do virtualbox, então pode ser útil para alguém… ;)
==========================================
[Post escrito e testado baseado no VirtualBox 3.2.6]

Google Bookmarks Twitter Yahoo Messenger Orkut Hotmail Google Gmail Delicious Share

Leia também: