Submount, a solução para montagem de volumes em kernel 2.6
Um ponto fraco do linux em aplicações rotineiras é a montagem de volumes, principalmente quando se trata de lugares com uso constante de disquetes.Daí, há um tempo o pessoal da conectiva(sim, na época do conectiva) implementou o supermount no seu kernel.
Supermount? Que bicho é esse?
Trata-se de um patch compatível com o kernel 2.4.x, utilizado na época. Como todo patch, ele é aplciado ao código-fonte do kernel e habilitado na hora da compilação.
Sua função é fazer com que o volume indicado funcione como no sistema operacional proprietário que conhecemos bem: Um clique no ícone do drive e ele é acessado sem necessidade de montagem manual.
Essa característica tem seus prós e contras:
No linux ao montar um CD(por exemplo), o drive fica travado e enquanto estiver sendo usado, por mais que o uauário aperte o botão ejetar o cd não sai; Quando o cd é desmontado o drive é liberado.
No SO proprietário, mesmo que o cd esteja em uso(exemplo: cópia de arquivos), ao apertar o botão ejetar o cd sai, interrompendo o processod e cópia.
No entanto, no caso de disquetes essa “montagem automática” seria muito útil.
Aí entraria o supermount.
Até aí parece ser bem simples, mas aos poucos os problemas vem…
Imagine que temos um hardware muito novo para o kernel 2.4, ou que precisamos de implantações muito recentes, encontradas somente no kernel 2.6… como proceder???
No site oficial do supermount encontramos uma versão do supermount portada para o kernel 2.6, mas tive tentativas falhas ao usá-lo devido à particularidades no patch com a distribuição Gentoo, daí numa necessidade absurda de utilizar essa funcionalidade de montagem fui buscando, foi aí que conheci o submount, em suma ele faz a mesma coisa que o supermount, mas é algo mais atual, compatível específicamente com o Kernel 2.6.
Download
a versão 0.9 do submount pode ser obtida em:
http://ufpr.dl.sourceforge.net/sourceforge/submount/submount-0.9.tar.gz
Instalação num Debian Etch
Como root:
Precisaremos de alguns pacotes:
apt-get install make gcc build-essentials automake autoconf
cd /usr/src
mkdir submount
cd submount
wget http://ufpr.dl.sourceforge.net/sourceforge/submount/submount-0.9.tar.gz
tar -xzvf submount-0.9.tar.gz
cd submount-0.9
Dentro da pasta temos 2 subpastas:
subfs-0.9 submountd-0.9
subfs-0.9: É o subfilesystem, sistema de arquivos que identificará a mídia e mostrará-ao kernel.
submountd-0.9: Um programa que se encarregará de montar automaticamente a mídia.
Instalando o subfs
cd subfs-0.9
make
make install
instalando o submountd
cd ../submountd-0.9
./configure
make
make install
Instalação e configuração do módulo
*agora vamos entrar na pasta onde ficam os módulos do seu kernel:
/lib/modules/<versão do seu kernel>/build
dentro da pastacompile o módulo com
make modules_install
make
make install
pronto, estamos com o módulo compilado, agora vaos carregá-lo
cd /lib/modules/<versão do seu kernel>/kernel/fs/subfs
modprobe subfs
*(o kernel que você pretende instalar o módulo deve estar rodando, caso queira instalar em outro kernel faça um reboot e entre pelo kernel que deseja instalar o submount)
Utilização
Agora vem a parte mais fácil, para usar basta configurar seu fstab, vamos lá:
fazendo um backup do seu fstab original:
cp /etc/fstab /etc/fstab.original
agora edite o fstab
vi /etc/fstab
e substitua as informaços do floppy, deixando assim:
/dev/fd0 /mnt/floppy subfs fs=floppyfss,iocharset=iso8859-1,sync,umask=0 0 0
*no lugar de /mnt/floppy você pode colcoar m pondo de montagem preferido.
Pronto! Agora é reiniciar o pc e ver a coisa funcionando!
Basta acessar a pasta escolhida como ponto de montagem e o disquete será montado automáticamente e desmontado após a leitura ou gravação! Perfeito!
O mesmo pode ser feito com cdrom. No fstab ficaria algo como:
/dev/cdrom /mnt/cdrom subfs fs=cdfss,ro,iocharset=iso8859-1,umask=0 0 0
Espero ter ajudado!
Até a próxima!