Como criar um sistema de arquivos ISO a partir de um diretório no Linux

Em um de meus scripts de backup, inclui uma linha de comando para criar um arquivo (ou sistema de arquivos) .ISO a partir de um diretório compactado em um arquivo .tar.gz
Você pode incluir vários diretórios e arquivos à sua livre escolha. Basta pegar um dos exemplos, abaixo, e editar para atender ás suas necessidades.

Um arquivo .ISO contém um sistema de arquivos completo e pronto para ser gravado em um CD ou DVD. Se preferir, você pode gravar vários destes arquivos em um flash drive (ou pendrive).
É possível usar ferramentas gráficas (GUI) para gravar em mídias óticas, claro. Mas, se deseja incluir o procedimento em um script, para ser executado automaticamente (ideal, em caso de backups), talvez seja melhor saber como se virar na linha de comando (CLI).

São basicamente 2 ferramentas a ser usadas, aqui:

  1. o genisoimage, para criar o sistema de arquivos .ISO e
  2. o growisofs, para gravar o arquivo em mídia.

O uso do mkisofs é superfácil. Basta informar o nome/caminho do diretório que você deseja incluir em uma .ISO:


genisoimage -o temporario.iso temp/

ls -la *.iso

-rw-r--r-- 1 justincase justincase 421M out 30 10:04 temporario.iso

O genisoimage vai criar um arquivo com o nome ‘temporario.iso’ com o conteúdo da pasta temp/.
Você também pode invocar o aplicativo Brasero, a partir da CLI, com o seguinte comando:


brasero --image-file temp/

O Brasero irá gerar um arquivo com nome automático (brasero.iso), caso ele não seja alterado na interface do programa, a partir da pasta temp/.

Como gravar uma imagem ISO em um DVD

Na CLI, você pode usar o utilitário growisofs para queimar um DVD a partir de uma imagem ISO pronta.
É necessário indicar adequadamente o endereço do drive o nome da imagem ISO:


growisofs -dvd-compat -Z /dev/dvdrw=temporario.iso 

WARNING: /dev/dvdrw already carries isofs!
About to execute 'builtin_dd if=temporario.iso of=/dev/dvdrw obs=32k seek=0'
/dev/dvdrw: "Current Write Speed" is 4.1x1352KBps.
   12353536/440578048 ( 2.8%) @2.5x, remaining 2:18 RBU 100.0% UBU   0.3%
   26214400/440578048 ( 6.0%) @3.0x, remaining 1:50 RBU 100.0% UBU  99.4%
   40108032/440578048 ( 9.1%) @3.0x, remaining 1:39 RBU 100.0% UBU  99.4%

...

builtin_dd: 215136*2KB out @ average 3.2x1352KBps
/dev/dvdrw: flushing cache
/dev/dvdrw: reloading tray

A mensagem, acima, “WARNING: /dev/dvdrw already carries isofs!“, é um aviso de que já há conteúdo dentro do DVD-RW.
Fique atento, o comando irá sobrescrever (eliminar) o conteúdo preexistente, sem pedir confirmação.
Com o Brasero, é possível usar uma linha de comando mais enxuta — embora o aplicativo tenha várias outras opções de uso, tal como o growisofs.
Se quiser, basta informar o nome do arquivo .ISO a ser gravado.
Se a mídia não estiver vazia (estou usando um DVD-RW nos meus exemplos), desta vez, você será avisado:


brasero --image=temporario.iso

gravar DVD com BRASERO no Linux

Para usar dentro de um script, cuja execução está projetada para ser automática e sem intervenção humana, esta solução pode ser muito ruim.
Neste caso, tente adicionar a opção ‘–immediately’:


brasero --immediately --image=temporario.iso

Rode a ajuda do Brasero, para descobrir mais opções:


brasero --help-all | more

Como trabalhar com vários arquivos ou partições de swap no Linux

Algumas pessoas precisam dividir seu espaço de troca ou memória virtual em diversos dispositivos físicos ou arquivos.
O recurso do swap, no Linux, é bastante maleável e flexível neste ponto.
É comum adquirir um computador e separar uma partição para o swap baseado na quantidade de memória presente no sistema.

Acrescentar um disco rígido ou um outro pente de memória, podem motivar a alteração na sua configuração de swap.

Por outro lado, fazer upgrade de hardware também é comum para muitos usuários.
Ao acrescentar memória RAM, suas necessidades para swapping mudam.
Instalar um SSD no sistema, ao lado do HDD, torna possíve aproveitar o recurso de hardware novo para obter melhor desempenho em tarefas pesadas.
Por estes e outros motivos você pode se ver forçado ou tentado a querer alterar a configuração do seu sistema de memória virtual.


Por favor, leia o artigo Perguntas e respostas sobre o swap, caso ainda restem dúvidas sobre o assunto.
Naquele artigo, há uma tabela com a relação entre quantidade de memória e tamanho de swap adequado — caso você tenha dúvidas sobre este quesito também.

Como configurar o fstab para as suas partições de swap

Não há segredo para configurar o swap no fstab.
Trata-se de um tipo especial de sistema de arquivos e geralmente segue a mesma configuração em todos os sistemas.
Esta é uma configuração modelo do swap, no fstab:

/dev/hda6   swap     swap   defaults        0   0

É seguro adotar este modelo para todas as partições e arquivos swap presentes no seu sistema. Faça apenas as alterações necessárias para refletir a sua situação.
Para fazer com que o fstab tenha efeito, você precisa reiniciar o sistema ou usar o comando mount:


sudo mount -va

Você também pode usar o comando swapon para ativar imediatamente um arquivo ou partição swap:


sudo swapon /dev/sdb2 /dev/sda2

Indique, para o swapon, todas as partições/arquivos swap presentes, que você queira usar.
No exemplo, acima, relacionei as minhas duas partições em ordem, começando pela mais prioritária.
Mas lembre-se que os ajustes feitos com o mount e swapon se perdem após reiniciar o sistema.
É necessário editar o fstab, para ter uma configuração persistente.
Sempre é possível usar o swapon, também para verificar a sua configuração de espaço de troca atual:


sudo swapon -v

[sudo] senha para justincase: 
NAME      TYPE      SIZE USED PRIO
/dev/sdb2 partition   3G   0B   -1
/dev/sda2 partition 8,8G   0B   -2

Leia mais sobre como criar um arquivo de swap.

Como dar mais prioridade a uma partição ou arquivo de swap

Se uma partição swap estiver em um drive mais rápido que os outros (um SSD, por exemplo), pode ser interessante configurar o sistema para começar a fazer o swapping por este dispositivo, que vai oferecer tempo de resposta muito menor.
Veja como especificar as prioridades de swap, no fstab:

/dev/sdb2   none    swap    sw,pri=2    0   0
/dev/hda2   none    swap    sw,pri=1    0   0

Com esta configuração (acima), o kernel irá priorizar a partição /dev/sdb2 (pri=2) — com o maior valor de prioridade da lista.
Assim que sua capacidade se esgotar, o kernel passará a usar a partição /dev/hda2 (pri=1), com valor de prioridade menor.
O valor da prioridade pode variar entre 0 e 32767.
0 é a menor prioridade possível e 32767 é a máxima.

Dê prioridade máxima ao arquivo ou partição swap que se encontrar no dispositivo de armazenamento mais rápido.
Esta configuração irá minimizar a perda de desempenho causada pelo uso do swap.

Configuração de RAID no swap

É possível fazer uso simultâneo de todas as partições swap disponíveis no seu sistema.
Para obter esta configuração, basta dar o mesmo nível de prioridade a todas elas.
Veja um exemplo:

/dev/hdb3   none   swap   sw,pri=1   0   0
/dev/hdd3   none   swap   sw,pri=1   0   0
/dev/hdc3   none   swap   sw,pri=1   0   0

Para obter um desempenho melhor, o ideal é que cada partição esteja em um drive físico diferente.

Conclusão

Na imagem, abaixo, você pode ver como configurei o meu swap
configuração do swap no linux fstab
Com 8 GiB de memória RAM e um SSD de 24 GiB, julguei interessante distribuir o espaço de troca recomendado, de 11 GiB entre o SSD e o HDD.
Assim, deixei 3 GiB de swap na unidade de estado sólido e o restante no disco rígido — dando maior prioridade à primeira.
Houve ganho de performance no sistema, toda vez em que foi necessário fazer uso da memória virtual.
Infelizmente, a unidade SSD já tem mais de 5 anos e eu espero que esta configuração tenha algum impacto negativo na sua durabilidade.
Tudo tem um preço, não é?

Assinar blog por e-mail

Digite seu endereço de e-mail para assinar este blog e receber notificações de novas publicações por e-mail.

Referências

http://www.tldp.org/HOWTO/Partition/setting_up_swap.html.

Qual o melhor sistema de arquivos para usar dentro de uma máquina virtual

Dentro de uma máquina virtual, você provavelmente terá um ou mais discos virtuais. Cada qual, com uma ou mais partições.
Quanto mais for otimizado uso dos recursos de hardware/software, melhor será o desempenho do trabalho e das tarefas executadas dentro das VMs, lógico.
Este assunto pode suscitar várias dúvidas — por isto sugiro, dar uma olhada na tag #sistema-de-arquivos, deste blog — onde você poderá encontrar artigos complementares.

É um tema muito vasto e eu não sou o dono da verdade — por isso, sinta-se à vontade para comentar sobre a sua experiência no assunto.

Neste post, vou discutir especificamente qual o mais recomendado para formatar os discos rígidos (ou SSD) virtuais usados em máquinas virtuais (ou VMs).
No contexto deste artigo, uso algumas máquinas virtuais Debian 9 “Stretch” testing. O drive físico, em que se encontram instaladas, é um HDD (disco rígido).


Se você está com pressa e usa Linux, a resposta rápida (e mais segura), para a pergunta do título, é: formate com o ext4! 😉
Caso você tenha 2 ou 3 minutos (a depender da velocidade com que você consegue ler), posso explicar melhor as vantagens e desvantagens do ext4 e de outros sistemas de arquivos — e isto pode levar a outras respostas…

Em que casos o ext4 é perfeito para formatar um HD dentro de uma máquina virtual

O ext4 está para ser substituído, no universo GNU/Linux, há um bom tempo.
Este processo está em curso há mais ou menos uma década e pode levar outra para ser concluído. Sistema de arquivos é uma coisa séria e precisa de muitos testes para se provar confiável, seguro, eficiente.
O ext4 ou fourth extended filesystem (quarto sistema de arquivos extendido) teve sua primeira versão estável lançada em Outubro de 2008 — o que lhe dá, aproximadamente, 10 anos de estrada.

É o mais jovem (e, possivelmente, último) de uma linhagem, iniciada em 1992, com o ext — criado pelo desenvolvedor Francês, Rémy Card.

Este fato eleva o tempo de experiência do sistema, como um todo, para aproximadamente 25 anos.
Por isto é que o ext4 satisfaz as condições de segurança e eficiência.
Ele incorpora, inclusive, recursos modernos e avançados para manipular dados eficientemente em unidades SSD.

Se você tem dúvidas e precisa decidir rapidamente, opte pelo ext4.

virtualbox snapshot list
A falta de suporte nativo a snapshots no ext4, dentro do contexto de uma máquina virtual, pode ser um ponto a favor: por que o torna mais leve.
Para quem pretende rodar máquinas virtuais dentro do Virtual Box ou qemu, por exemplo, o suporte já está incluído no programa — o que o torna dispensável dentro do sistema de arquivos hóspede.

Outro argumento a favor do ext4: se o host (máquina hospedeira), já usa um sistema de arquivos com suporte a snapshots (como o BTRFS ou o ZFS), não há necessidade para a redundância.

O que os outros sistemas de arquivos oferecem a mais

Testar outras opções é sempre o melhor caminho para descobrir o que se adequa às suas necessidades.
Se as VMs estão em um host com SSDs, certamente é mais benéfico usar um sistema de arquivos construído do zero para este tipo de tecnologia.
Os sistemas de arquivo BTRFS e ZFS podem oferecer melhor performance dentro das seguintes situações, entre outras:

  • As VMs estão em um host equipado exclusivamente com SSDs.
  • Por alguma razão, você necessita do suporte a snapshots dentro do sistema de arquivos hóspede.
  • Os sistemas de armazenamento dos hóspedes são realmente grandes, você pretende usar RAID, pools etc.

Referências

Opções avançadas de conversão FLAC ou OGG para MP3 sob demanda com mp3fs

Quando comecei a usar o mp3fs, não imaginava que iria fazer tanto uso deste sistema de arquivos virtual.
O fato é que ele me permite manter backup de todos as minhas músicas apenas em FLAC ou OGG.
Quando eu preciso transferir músicas para algum outro dispositivo que só tem suporte a MP3, o mp3fs resolve o problema com a criação de um sistema de arquivos virtual e a conversão on the fly.

Isto me livra do peso da redundância — ou algo próximo de 50% de todo o espaço ocupado por músicas em meu computador.

Se você quiser saber sobre os recursos básicos do funcionamento do mp3fs e sobre como instalá-lo no seu sistema, leia o artigo como converter arquivos FLAC para MP3, sob demanda, com mp3fs.

Ajustes sobre a qualidade da mídia

Você pode especificar a qualidade da conversão sob demanda para todos os arquivos.
Veja as opções de codificação possíveis:

  • --quality — determina a qualidade geral das conversões.
    Os valores podem ir de 0 (qualidade máx.) a 9 (velocidade máx.).
    O padrão é 5 (caso você não especifique nada neste quesito).
    Quanto maior a qualidade, maior o impacto sobre a performance do sistema — em outras palavras, os arquivos .mp3 resultantes ficarão maiores e o processo de conversão é mais demorado.

    Se o seu hardware for razoavelmente atual, não vejo motivo para não usar a qualidade máxima.
    Por outro lado, o manual do LAME recomenda usar o valor 2.
    A decisão é sua.

  • -b — determina o bitrate dos seus arquivos MP3. Os valores possíveis são 96, 112, 128 (padrão), 160, 192, 224, 256 e 320
  • --gainmode — determina o modo de ganho para todos os arquivos.
    Escolha 0, para ignorar; 1, para preferir o ganho predeterminado do álbum ou 2 (padrão), para manter e uniformizar o ganho por cada trilha.
  • --gainref — determina o ganho em decibéis. Se nenhum valor for fornecido, o sistema usará 89 dB.

No exemplo que segue, montei um dispositivo de armazenamento externo WD Elements, com uma coleção de músicas em FLAC, fazendo uso de algumas das opções acima
O drive está montado em “/media/justincase/wdelements/music/”. A segunda pasta (vazia, por enquanto) é a do sistema de arquivos virtual, criado e usado pelo mp3fs:

sudo mp3fs -b 320 --gainmode=0 --quality=0 /media/justincase/wdelements/music/ /mnt/music/mp3/ -o allow_other,ro

No final da linha as opções de montagem, “-o allow_other,ro”, que serão abordadas no próximo tópico.

Opções de montagem

As opções de montagem podem ser obtidas através do comando

mp3fs --help

Você pode combinar várias delas, após o parâmetro “-o”, separadas por vírgulas. Segue algumas das mais comumente usadas:

  • -o allow_other — tal como usado no exemplo acima, permite a outros usuários, além do que montou o sistema de arquivos, terem acesso para executar as músicas.
  • -o ro — indica que o sistema de arquivos é apenas-para-leitura (read-only). É redundante, pois o mp3fs só tem a opção de montar o sistema de arquivos desta forma.
  • -o nonempty — monta também arquivos e/ou diretórios vazios.
  • -o fsname=NOME — nomeia o sistema de arquivos para NOME.
  • -o direct_io — usa entrada/saída direta.
  • -o kernel_cache — faz o caching através do kernel.
  • -o from_code=CHARSET — determina a codificação de caracteres original, caso você esteja tendo dificuldade para ver os nomes corretos dos arquivos.
  • -o to_code=CHARSET — determina a codificação de caracteres do sistema de arquivos destino. Nesta e na opção anterior, o padrão é UTF-8.

Leia mais sobre as vantagens do FLAC sobre o MP3.

Veja como fazer conversão sob demanda de arquivos de áudio FLAC e OGG para MP3.

Mesmo gostando de ouvir suas músicas com a máxima qualidade possível, às vezes é preciso fazer concessões à compatibilidade.
O fato é que muitos players de áudio não suportam uma grande variedade de padrões, além do velho MP3.
Já falei antes sobre a superioridade do FLAC em relação ao MP3, mas o segundo ainda é o mais suportado.
Em casa, fiz o backup de todos os meus CDs em FLAC, mas o som padrão do carro não suporta nada além de MP3, WMA ou WAV — todos proprietários.

Isto quer dizer que, ou ouço os FLAC do celular via Bluetooth ou os converto para um dos 3 formatos suportados para reproduzir a partir de um pendrive ou CD.
É chato… mas é o jeito.

Há inúmeras ferramentas para fazer este tipo de conversão — aplicativos GUI (ambiente gráfico) ou CLI (linha de comando), web apps etc.
Já mostrei como fazer o trabalho, com o ffmpeg ou o lame.
Neste post vou abordar o uso de uma ferramenta CLI — pensando nas pessoas que têm um número imenso de arquivos para converter.
Com este método, vamos consumir menos memória e realizar o trabalho bem mais rápido.
Depois que você der o comando de ativação do mp3fs, todo o restante do procedimento pode ser feito com suas ferramentas GUI (gerenciador de arquivos, player de áudio etc).
Se você estiver interessado em ripar CDs, leia meus artigos específicos sobre ripagem.

O que o mp3fs faz e por que você deveria usá-lo

O mp3fs é uma ferramenta que monta um sistema de arquivos virtual e transcodifica arquivos FLAC para MP3, on the fly.

Em outras palavras, o mp3fs permite montar um diretório virtual, com todos os seus arquivos de áudio prontamente renomeados com a extensão .mp3.
A partir daí, basta começar a tocar ou copiar para outro lugar
À medida em que os arquivos são acessados, o mp3fs faz a conversão.
Parece fácil, não é?
E é!

A ferramenta cria um sistema de arquivos FUSE, protegido contra alterações, que transcodifica arquivos de áudio no momento em que são abertos ou lidos.
Ela permite usar sua coleção de músicas FLAC — mesmo que seu hardware/software não tenha suporte a este formato.

Se você quiser transferir os MP3 para um pendrive, pode fazer isto como se fossem arquivos normais — o sistema se encarrega de convertê-los durante a transferência.
Outra vantagem da conversão “sob demanda” é que este método não te obriga a ter mais espaço em disco.


Se, por outro lado, você optasse por converter seus arquivos FLAC para MP3, teria que reservar um enorme espaço adicional para abrigar os arquivos duplicados, resultantes das conversões.
Em outras palavras, para cada arquivo.flac, seria criado outro arquivo.mp3 — imagine o espaço extra que você teria que ter para converter milhares de arquivos!

O mp3fs permite selecionar e copiar todos arquivos FLAC da origem e colar direto na pasta de destino. Eles serão individualmente convertidos para MP3 durante a transmissão.

Como instalar o mp3fs

Nas distribuições Linux que usam o gerenciador de pacotes APT (Debian, Ubuntu, Mint etc.), é possível encontrar o pacote de instalação nos repositórios oficiais.
Neste caso, use o APT:


sudo apt install mp3fs

Pra constar, instalei e usei com sucesso o mp3fs no Debian 9 “Stretch” e no KDE NEON (baseado no Ubuntu 16.04 LTS “Xenial Xerus”).

Como usar o mp3fs

A sintaxe do comando é bem simples.
Todas as minhas músicas, FLAC, OGG ou MP3, estão dentro do diretório “/home/justincase/music”.
Para facilitar, criei mais um diretório com o seguinte nome/caminho: “/mnt/music/mp3”
No exemplo, abaixo, vou montar o meu segundo diretório, com o mp3fs:


sudo mp3fs -b 192 /home/justincase/music/ /mnt/music/mp3 -o allow_other,ro

Se tudo der certo, já será possível visualizar os seus arquivos em /mnt/music/mp3 — todos já renomeados para mp3:


ls /mnt/music/mp3/

Experimente tocar um deles!
tribo de jah mp3 files
Na imagem, acima, todos os meus arquivos .flac estão com a extensão .mp3.

Referências

https://github.com/khenriks/mp3fs/blob/master/mp3fs.1.txt