quinta-feira, 14 de junho de 2012

Como mudar o /home para uma nova partição

Uma amiga instalou o ubuntu com duas partições, mapeou uma delas pro / e outra pro /home. Até ai tudo bem. O problema é que ela teve que re-instalar tudo preservando o /home, e durante a nova instalação esqueceu de mapear o /home para a antiga partição. O que fazer agora? Como fazer a antiga partição ser o /home novamente?

Mapeando o /home em uma partição

Descobrir a partição que queremos mapear para /home:

Com a partição montada, rode o comando:

$ df -h

Sist. Arq. Tamanho de uso avaliado% Montado em
/dev/sda1 6,5G 4,1G 2,0G 68% /
none 369M 248K 369M 1% /dev
none 374M 292K 374M 1% /dev/shm
none 374M 88K 374M 1% /var/run
none 374M 0 374M 0% /var/lock
/dev/sda6 460M 46M 391M 11% /boot
/dev/sda5 19G 894M 17G 5% /media/839e6642-84b0-4724-b00a-3196a5b83544


Neste caso é a partição /dev/sda5, e aparentemente o UUID é 839e6642-84b0-4724-b00a-3196a5b83544

Descobrir o UUID da partição:

Para isso rode o comando:

$ sudo tune2fs -l /dev/sda5

tune2fs 1.41.12 (17-May-2010)
Filesystem volume name:
Last mounted on: /media/839e6642-84b0-4724-b00a-3196a5b83544
Filesystem UUID: 839e6642-84b0-4724-b00a-3196a5b83544
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super
large_file huge_file uninit_bg dir_nlink extra_isize
Filesystem flags: signed_directory_hash
Default mount options: (none)
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 1253376
Block count: 5005824
Reserved block count: 250291
Free blocks: 4698349
Free inodes: 1252867
First block: 0
Block size: 4096
Fragment size: 4096
Reserved GDT blocks: 1022
Blocks per group: 32768
Fragments per group: 32768
Inodes per group: 8192
Inode blocks per group: 512
Flex block group size: 16
Filesystem created: Sat Apr 30 14:12:18 2011
Last mount time: Tue May 10 11:13:45 2011
Last write time: Tue May 10 11:13:45 2011
Mount count: 14
Maximum mount count: 27
Last checked: Sat Apr 30 14:12:18 2011
Check interval: 15552000 (6 months)
Next check after: Thu Oct 27 14:12:18 2011
Lifetime writes: 1293 MB
Reserved blocks uid: 0 (user root)
Reserved blocks gid: 0 (group root)
First inode: 11
Inode size: 256
Required extra isize: 28
Desired extra isize: 28
Journal inode: 8
Default directory hash: half_md4
Directory Hash Seed: d3b2919b-1428-4b42-a9d0-a8d42b999b0b
Journal backup: inode blocks


Confirmando, o UUID da partição /dev/sda5 é: 839e6642-84b0-4724-b00a-3196a5b83544.

De posse das informações, vamos ao que interessa:

Edite o arquivo /etc/fstab, com o editor de sua preferência (gedit, vim, etc), como root (ou usando sudo) e acrescente as linhas abaixo:

# /home em /dev/sda5 após a instalação
UUID=839e6642-84b0-4724-b00a-3196a5b83544 /home ext4 defaults 0 2


Atenção: Use o UUID da sua partição e não o do exemplo.

PARTICIONAMENTO DO HD PARA INSTALAÇÃO DO UBUNTU



Depois de observar o crescimento na quantidade de tópicos sobre problemas na instalação do ubuntu, o que evidencia a migração de usuários windows para o GNU/Linux, percebi que muitos dos problemas apontados poderiam ser evitados com o particionamento correto do disco.

Esse procedimento nada mais é que a delimitação do espaço do HD para que abrigue sistemas de arquivos diferentes, o que é essencial para a instalação do Sistema Operacional. Para saber mais é recomendável a leitura das páginas:
http://pt.wikipedia.org/wiki/Disco_r%C3%ADgido
http://pt.wikipedia.org/wiki/Parti%C3%A7%C3%A3o#Geometria_de_disco


Nos Computadores PCs o sistema mais utilizado é o MBR - Master Boot Record (os Computadores Apple usam um sistema diferente, chamado GUID), que consiste na divisão dos discos do HD em setores delimitados pelo raio da circunferência, de fora para dentro, sendo o setor mais externo reservado para a gravação das especificações técnicas do disco e para o gerenciador de arranque do sistema (gerenciadores de boot, como Grub, Lilo, Chameleon, Boot.ini).

Na figura é possível observar um HD desmontado, com o disco, o atuador e o braço do leitor de dados. Com o HD desligado, o braço do leitor fica do lado de fora do disco e durante o desligamento, esse braço é movido do centro para fora (o que explica a necessidade de aguardar o desligamento com segurança...). Como são vários discos sobrepostos, o conjunto de setores dentro do mesmo raio de circunferência nos discos é entendido como um cilindro e pode ser delimitado em até quatro partições, chamadas primárias.

Além desses número é possível transformar uma partição primária em uma partição estendida, que pode ser dividia em partições lógicas, delimitadas por setores mapeados a partir da quantidade de bytes contados de fora para dentro, possibilitando uma divisão de até 255 partições.

E daí?

Como as partições primárias são delimitadas pela circunferência e as lógicas pelos setores de bytes mapeados no disco, a segurança das informações nas partições primárias tende a ser mais confiável que nas partições lógicas, o que significa dizer que as lógicas devem ser evitadas quando possível.

Depois de entender essa diferença é preciso planejar a instalação, considerando a intenção e a necessidade do usuário. Numa sessão live-CD teste o funcionamento do sistema no hardware escolhido e se decidir pela instalação do ubuntu considere:
a) que o sistema sofre atualizações e a cada atualização existe a possibilidade de ter que reinstalar;
b) se precisa ou não manter uma instalação windows no PC
c) se pretende instalar outra distribuição GNU/Linux para teste ou mesmo estudo.

Feitas essas considerações, faça o backup dos dados e informações anteriores e inicie a instalação do sistema, fazendo o particionamento do HD. O aplicativo Gparted presente no Ubuntu é bastante intuitivo:


Na figura observamos um HD de 4GB dividido em uma única partição no sistema de arquivos EXT3. Vale lembrar que desses 4GB, apenas 3,90GB podem ser usados e essa diferença decorre do fato de que arredondamos 1 byte para 10, quando na verdade são 8 bits. Assim, 1MB=1024B (multiplicando a capacidade do HD por 1000 e dividindo por 1024 o resultado é a capacidade real). No canto superior direito da figura vemos a referência do HD /dev/sdb, o que significa que esse é o segundo HD do sistema (se fosse o primeiro seria /dev/sda). Essa referência é especialmente importante quando se tem outros sistemas instalados e é preciso especificar o local onde o gerenciador de boot será instalado.

O Gparted é um aplicativo muito eficiente e prático, que permite analisar, redimensionar, criar e excluir partições do sistema, de forma que as alterações no disco só serão aplicadas no momento em que o usuário clicar no botão apply e confirmar.

Considerando as necessidades do usuário e a questão da limitação de quatro partições primárias é importante ressaltar que:

1) O particionamento deve considerar o hardware da instalação. Se é desktop, a partição swap não é necessária e pode ser deixada com algo como 256MB ou substituída por um arquivo swap criado posteriormente (o que economiza uma partição primária, que pode ser usada se a intenção for instalar outros sistemas). Se é notebook, recomenda-se algo próximo de 2GB, pois o sistema usa o swap no modo hibernação;
2) É uma ótima ideia criar uma partição separada para /home. Isso facilita a atualização futura do sistema de amplia a segurança, no caso de defeito no hardware. Para tanto, deve-se considerar a capacidade do HD. Sistemas operacionais como Windows XP rodam bem em partições com até 20GB, o que para o Seven é pouco. Já o ubuntu, até o 10.04LTS, até roda com menos de 15GB, mas esse valor é pequeno para realizar operações de conversão de vídeo;
3) O Windows XP até o SP2 possui a limitação de permitir que sua instalação seja feita apenas na primeira partição do primeiro HD. A partir do SP3 existe uma flexibilidade para isso, mas para evitar erros futuros é altamente recomendável que numa instalação dual-boot com XP, Vista ou Seven o windows seja instalado na primeira partição do primeiro HD;

O vídeo apresenta um tutorial em português sobre o particionamento do disco, o que ajuda muito na hora de colocar a mão na massa.
1ª parte do vídeo = http://www.youtube.com/watch?v=cweyDqlRsHk
2ª parte do vídeo = http://www.youtube.com/watch?v=PSfqwTOoMtE&feature=endscreen&NR=1

Particularmente, considerando um HD de 500GB (488GB reais) sugiro:

Instalação em notebook só com ubuntu - partições primárias:
/dev/sda1 = 50GB = EXT4 = ponto de montagem /
/dev/sda2 = 2GB = swap
/dev/sda3 = 436GB = EXT4 = ponto de montagem /home

Instalação em notebook com dual-boot com windows - partições primárias
/dev/sda1 = 100GB = NTFS = Windows
/dev/sda2 = 2GB = swap
/dev/sda3 = 50GB = EXT4 = ponto de montagem /
/dev/sda4 = 336GB = EXT4 = ponto de montagem /home

Instalação em notebook com multi-boot - partições primárias
/dev/sda1 = 100GB = NTFS = Windows
/dev/sda2 = 2GB = swap
/dev/sda3 =193GB = EXT4 = Ubuntu - ponto de montagem /
/dev/sda4 = 193GB = EXT4 = Fedora, OpenSUSE, debian - ponto de mongatem /

A área de troca swap pode ser compartilhada por diferentes distribuições GNU/Linux e teoricamente tem uma eficiência maior se estiver localizada na região do meio para a extremidade do disco, pela maior velocidade angular. Por isso, /dev/sda2 é uma boa opção (Em alguns tutoriais o swap é colocado em /dev/sda1, mas para o windows isso poderia se um problema).

Além da área de troca swap, a partição reservada para /home também pode ser compartilhada por diferentes instalações GNU/Linux, desde que se tenha o cuidado de usar nomes de usuário diferentes em cada instalação, pois na pasta de usuário são gravadas as configurações de aplicativos em pastas ocultas e isso traria uma confusão muito grande, já que as configurações apresentam diferenças entre distribuições e até mesmo entre versões da mesma distribuição.

Outra ideia viável, para quem usa a instalação em dual-boot com windows, é particionar a /home com o sistema de arquivos NTFS. Com isso, a pessoa terá uma partição que pode ser acessada pelo windows e usada para backup, enquanto que para o sistema não faz diferença se a /home está formatada como EXT2, EXT3, EXT4 ou NTFS.

Nesse caso, ficaria assim:

Instalação em notebook só com duas distribuições GNU/Linux em mesma /home - partições primárias:
/dev/sda1 = 50GB = EXT4 = ponto de montagem / do ubuntu
/dev/sda2 = 2GB = swap
/dev/sda3 = 50GB = EXT4 = ponto de montagem / do debian
/dev/sda3 =386GB = EXT4 = ponto de montagem /home

Instalação em notebook com dual-boot com windows - partições primárias
/dev/sda1 = 100GB = NTFS = Windows
/dev/sda2 = 2GB = swap
/dev/sda3 = 50GB = EXT4 = ponto de montagem /
/dev/sda4 = 336GB = NTFS = ponto de montagem /home


Lembrando que essa dica é uma orientação básica. Maiores informações sobre a instalação do sistema podem ser obtidas em:
http://ubuntuforum-br.org/index.php/topic,19226.0.html
http://www.hardware.com.br/livros/entendendo-linux/particionando-com-gparted.html
http://ubuntuforum-br.org/index.php?topic=58947.0

Quem é Almir JR