O
Linux é muito flexível no que se refere à sistema de arquivos. Minha idéia foi a seguinte, vou criar um HD virtual no Windows, montá-lo no
Linux e instalar o KDE nele. Procedimento:
1. Mapeando o compartilhamento do Windows no meu Linux
Isso é fácil: é só usar o
Samba!
# smbmount //pcwindows/teste /mnt/windows
Não vou explicar como configurar o Samba pra isso porque não é nosso objetivo né?
2. Criar a imagem de HD virtual. Usaremos o comando
dd pra montar um grande arquivo de 3 gigas e depois vamos formatá-lo.
# dd if=/dev/zero of=/mnt/windows/biglinux.img bs=1M count=5000
Leva um tempinho, mas fica pronto! Aproveita a espera pra ler um gibi da turma da Mônica.
3. Formatar o arquivo usando seu filesystem preferido. Sim, eu disse formatar o arquivo e não o HD.
Usando reiserfs:
# mkreiserfs /mnt/windows/biglinux.img -f
Ele vai avisar que biglinux.img não é um dispositivo de bloco (lógico que não né? sabemos que estamos formatando um arquivo). Responde "y" pra ele continuar.
Após alguns instantes ele deve mostrar algo assim:
Initializing journal - 0%....20%....40%....60%....80%....100%
Syncing..ok
Beleza! Funcionou direitinho. Mas se você não curte reiserfs, pode fazer usando ext3.
Usando ext3 (pule essa parte se você optou pelo reiser):
# mkfs.ext3 /mnt/windows/biglinux.img
Ele vai te dar um aviso e você responde "y".
Optei por usar o ext3 por uma simples questão. O reiser ocupa mais espaço em disco. Num teste que fiz em imagens de 100 megas, pude ver que formatando com reiserfs o sistema de arquivos ocupava 33% da imagem e com ext3 o uso era de apenas 5%.
Bem, não cabe aqui uma discussão sobre qual o melhor filesystem, deixo isso por conta de vocês, usei o ext3 por questão de espaço, que na verdade era meu problema desde o início.
4. Definindo o ponto de montagem da imagem
Aqui entra o pulo do gato! O KDE, no
Slackware, normalmente é instalado no diretório /opt, por isso temos de montar a imagem nesse diretório ou as coisas não funcionarão direito.
# mount /mnt/windows/biglinux.img /opt -o loop
Atenção ao parâmetro "-o loop", pois trata-se de um dispositivo loopback e não de um dispositivo de blocos. Outro detalhe é que seu kernel tenha suporte para dispositivos de loopback. Começou a complicar? :P