sábado, 7 de março de 2015

Iniciando Ubuntu para a RAM
Mokafoo10:12 0 comentários


Versão

Desnecessário em 11,04 LiveCD. Casper agora inclui uma opção de funcionamento toram, que ainda trabalha com a opção filename = / iso-scan.
Última atualização para 9.10 compability.
Última atualização para 2.6.31-16 atualização

Prefácio

Este artigo tem como objetivo documentar o processo de criação de um Ubuntu personalizado que carrega uma imagem do disco rígido para a memória RAM, em seguida, inicia uma sessão Ubuntu inteiro fora de RAM. Ele é destinado a intermediária para usuários avançados do Ubuntu que estão familiarizados com o shell, e pode ter pouca experiência personalizando o LiveCD ( LiveCDCustomization ) e shell script. Vamos personalizar um LiveCD e copiá-lo para o disco rígido, e fazer algumas modificações para bootup scripts para que ele copia para a RAM através de nossos bons tmpfs amigo.
AVISO: O autor afirma que este procedimento funciona para ele, mas não pode garantir que esse procedimento funciona para qualquer outra pessoa. Embora este procedimento está concebido para ser 100% seguro, é possível que possa haver erros, ou uma possibilidade de mal-entendidos as instruções de uma maneira que faz com que a perda de dados. Por favor, faça um backup e não tente em sistemas de missão crítica. Leia este artigo até ao fim e não tente se você não compreender ou se sentir confortável sobre qualquer uma das instruções!
CUIDADO: Espero que este é intuitivamente óbvio, mas eu vou humor você e indicá-lo sem rodeios: As alterações feitas sob a sessão ao vivo não são guardadas e serão perdidas quando você reiniciar ou desligar. Não guarde nada de importante para o diretório "home" e esperar que ele ainda estar por perto! Se você deseja salvar os dados de forma permanente, montar um meio permanente (como o seu disco rígido), conectar um pendrive, ou usar alguma funcionalidade de rede embutida no Ubuntu para salvar seus dados para um destino não-volátil.

Casos de Uso

Há muitos casos em que a gente gostaria de arrancar Ubuntu para RAM:
  • Desempenho: O desempenho de desktop é melhorado dramaticamente. A 400MB esmagado sistema de arquivos na memória RAM, que mantém 1200MB de dados, é lido de volta em um 1.6GHz Core Duo em cerca de 3 segundos, incluindo o tempo de descompressão.
  • Energia, o ruído, durabilidade: Apesar de discos rígidos modernos não usam muita energia em comparação com outros componentes do sistema, isso ainda pode ser importante para alguns. Em laptops, discos rígidos são muitas vezes os componentes mais ruidosos, assim que esta configuração pode reduzir o ruído do sistema. Com o disco rígido girou para baixo, um laptop pode potencialmente suportar maiores choques sem danos.
  • O encerramento abrupto: Desde que o disco rígido é apenas momentaneamente usado em modo de somente leitura durante a inicialização, então nunca tocou novamente, há poucas ou nenhumas consequências negativas de um poweroff abrupta. Se um sistema é utilizado em que o poder é inconsistente, ou o sistema é usado regularmente em um contexto em que são necessárias shutoffs rápidos, isso é muito útil.
  • Privacidade: Qualquer coisa que você faz nesta sessão são perdidas quando você reiniciar ou desligar. Isso é ótimo para quiosques ou outros sistemas onde modificação permanente não são desejados. (Note-se que, por padrão, o usuário tem acesso livecd sudo completo, portanto, potencialmente, um usuário mal-intencionado ainda pode fazer alterações permanentes através da montagem do disco rígido e seguindo este HOWTO)

Requisitos

O aumento da exigência de mais óbvia é RAM. Para um melhor desempenho, eu recomendo ter 256MB RAM + RAM o suficiente para manter uma imagem personalizada. Decapagem Openoffice e algumas fontes e documentação de um estoque Ubuntu LiveCD resultados em uma imagem 400MB compactado, que se encaixa confortavelmente na RAM em um sistema com 1GB de RAM.
TMPFS pode voltar a cair swap (os scripts de LiveCD do Ubuntu vai montar qualquer troca que encontra), o que é excelente para um pouco de excesso, mas se você precisa regularmente para voltar a cair swap, o desempenho vai naturalmente sofrer.
Eu não investigou os requisitos de CPU, mas squashfs é comprimido e descompressão leva algum poder de CPU, então isso provavelmente não é uma grande idéia em sistemas mais antigos do que a era Pentium III.
Na medida em que a criação deste sistema up, os requisitos seriam:
  1. Ter um Ubuntu LiveCD ISO ou CD calhar. Eu usei um LiveCD Ubuntu, mas não vejo nenhuma razão para que Xubuntu, Kubuntu, etc não iria funcionar (eles não têm diferentes scripts de inicialização casper, tanto quanto eu sei). Este procedimento deve funcionar em todos Dapper do LiveCD e depois, com pequenas adaptações adequadas.
  2. Sobre 2-4GB de espaço livre
  3. A 1GB combinado ou mais de RAM e swap disponível.

O Processo

Descompacte LiveCD

Em primeiro lugar, precisamos descompactar o LiveCD para personalização. Para este artigo, eu vou fazer as seguintes premissas sobre caminhos. Pode, claro, rejeitar as minhas escolhas e substituir o seu próprio.
  • A imagem raiz comprimido está em /casper/filesystem.squashfs
  • O kernel é em / casper / vmlinuz
  • O initramfs está em /casper/initrd.gz
  • Nós vamos fazer um diretório / casper / chroot temporária onde nós editar este sistema de arquivos raiz.
Durante os primeiros 3 arquivos estão localizados em / casper no LiveCD. Por favor, copie esses arquivos a partir do LiveCD para / casper no seu disco rígido. Você pode usar o gerenciador de arquivos do GNOME (file-roller) como root, vincular-montagem, ou um CD físico. Vou assumir que você sabe como fazer isso.

Personalize Ambiente Vivo

Este processo é quase idêntico ao personalizar um LiveCd (até a geração da imagem .squashfs). Por favor, veja LiveCDCustomization para obter instruções detalhadas sobre como personalizar o LiveCD. Eu só estará fornecendo um resumo básico sobre o processo.

Extraia /casper/filesystem.squashfs to / casper / chroot /

  sudo mount -o loop -t squashfs /casper/filesystem.squashfs / mnt
  sudo mkdir / casper / chroot
  sudo rsync -ax / mnt /.  / Casper / chroot /.
  sudo umount / mnt 

Scripts de inicialização do remendo

A funcionalidade estoque casper "toram" está quebrado em Feisty. Além disso, mesmo quando ele trabalhou, seria completamente descomprimir o sistema de arquivos na memória RAM, o que exige 3-4x mais RAM, e é, portanto, indesejável. Como resultado, nós estaremos fornecendo alguns hacks desagradáveis ​​sobre Casper para torná-lo copiar para a memória RAM do jeito que queremos. Desenvolvedores Casper, por favor, olhar para longe.
  gksu gedit / casper / chroot / usr / share / initramfs-tools / scripts / casper 
Perto da linha 35, encontramos:
  SHOWMOUNTS exportação = 'Sim' ;;
  persistente) 
Entre eles adicionar duas linhas extras, de modo que parece:
  SHOWMOUNTS exportação = 'Sim' ;;
  toram)
  exportação toram = 'Sim' ;;
  persistente) 
Perto da linha 573, encontrar:
  if ["$ {} toram"];  em seguida
  live_dest = "ram"
  elif ["$ {} TODISK"];  em seguida 
Entre eles adicionar algumas linhas extras, como este:
  if ["$ {} toram"];  em seguida
  # Live_dest = "ram"
  echo "o conteúdo da cópia de CD para a RAM"
  mkdir / loja
  #TODO: Adicionar um teste para a quantidade de memória RAM aqui
  mount -t tmpfs -o size = 1G none / loja
  mkdir / store / casper
  cp /cdrom/casper/*.squashfs / store / casper /
  echo "CD-Rom foi desinstalado, é seguro para ejetar!"
  umount / cdrom
  mount -o bind / store / cdrom

  elif ["$ {} TODISK"];  em seguida 
Você precisa comentar ou excluir live_dest = "ram". Substitua o "tamanho -o = 1G" com um tamanho maior (ou menor) se a sua imagem personalizada não é de 1GB (por exemplo, 2G, 1500M, ou 350M). Olha o tamanho da sua imagem squashfs para determinar o tamanho necessário.
Salve este arquivo e saia do editor.

Regenerar initrd.gz

Desde que editou scripts de inicialização, é preciso gerar novamente o arquivo que conhecemos como /casper/initrd.gz para incorporar essas mudanças:
  sudo cp -L /etc/resolv.conf / casper / chroot / etc /
  sudo mount -t proc none / casper / chroot / proc
  sudo mount -o bind / dev / casper / chroot / dev
  sudo chroot / casper / chroot / bin / bash 
Neste ponto, você está "em" sistema de arquivos do ambiente vivo. Nós vamos estar fazendo isso mais algumas vezes antes que o dia termine. Lembre-se que nosso ambiente Live é em / casper / chroot, não em editar / (ajustar personalização comandos em conformidade).
Opcional: Customize Ambiente de Produção Mais
Seria uma ótima idéia para adicionar ou remover alguns pacotes, ou adicionar algumas configurações de usuário padrão, etc, para tornar o ambiente mais amigável ao vivo. O artigo personalização LiveCD anteriormente ligado fornece detalhes sobre como fazer uma ampla variedade de personalizações. Siga estas instruções, até: "Ao colocar o CD em conjunto" (não faça esse passo). Em vez disso, substituí-lo por
Idéias para customizações específicas para este howto incluem:
  • Removendo pacotes Behemoth como OpenOffice .
  • Adicionando drivers proprietários de vídeo 3D por padrão (TODO: expandir essa idéia)
  • Remoção de scripts de desligamento (TODO: expandir)
  • Personalizar configurações padrão do usuário em / etc / skel, incluindo a importação de um perfil do Firefox, etc. O howto LiveCD afirma aproximadamente como fazer isso. (TODO: expandir)
  • Suprimir o aviso de ejeção no desligamento.
  rm /etc/rc?.d/*casper* 
  • Instale algo como sshfs assim você pode facilmente usar sistemas SSH-able como armazenamento permanente (TODO: Expandir)
Atualize todo o sistema e regenerar initrd.gz
  apt-get update
  apt-get dist-upgrade
  apt-get autoclean
  apt-get autoremove
  apt-get clean
  mkinitramfs -o /new-initrd.gz 2.6.31-16-generic
  saída
  umount -l / casper / chroot / dev
  umount -l / casper / chroot / proc 
O comando mkinitramfs pode demorar 30 segundos a alguns minutos, dependendo da velocidade da CPU. O comando exit irá levá-lo de volta para o seu shell original, que não seja dentro com o ambiente ao vivo. Agora vamos passar este initrd para o local certo:
  sudo mv /casper/chroot/new-initrd.gz /casper/initrd.gz
  sudo mksquashfs / casper / /casper/filesystem.squashfs chroot -noappend -sempre de uso fragmentos 
O argumento de sempre usar fragmentos permite espaço para ser usado de forma mais eficiente, ao custo de mais seeking. Desde a nossa imagem é para ser carregado na RAM, a busca não tem custos e não uma preocupação em oposição a um meio mecânico.

Faça uma entrada GRUB

Ok, a última coisa que precisamos fazer é dizer GRUB como iniciar este sistema. Leia Fazendo um GRUB CD-ROM inicializável primeiro.
Edite /boot/grub/menu.lst para incluir uma entrada como esta na parte inferior:
  título Jaunty RAM Session
  kernel / casper / boot vmlinuz = casper toram respingo
  /casper/initrd.gz initrd 

Reinicie o computador e Desfrute

Agora, é a hora de reiniciar e selecione Jaunty RAM Session, e ver se ele funciona. Se o sistema não iniciar, em seguida, verifique novamente você seguiu todas as instruções corretamente. Levei cerca de 10 ou 11 ciclos de personalização para obter o meu sistema ao vivo do jeito que eu gosto, então seja paciente!
Lembre-se, as possibilidades são infinitas! Aproveite, e compartilhar quaisquer coisas legais que você faz com este COMO FAZER!

Comentários

Por que você não trabalhar em bug # 25496: toram ou copy2Ram (rodar o Ubuntu viver de carneiro), para fazer esse recurso no Ubuntu LiveCD padrão? https://bugs.edge.launchpad.net/ubuntu/+source/casper/+bug/25496
Qualquer idéia sobre como chegar a este trabalho com o "filename = iso-scan /" opção? Ele carrega tudo para a RAM bem, mas não vai me deixar desmontar / isodevice (provavelmente porque um dispositivo de auto-retorno precisa ser morto). Eu não consigo achar que script cria a auto-retorno, nem onde a destruí-lo e desmontar a pasta / isodevice.

Lucid Updates

Para tentar isso em Lucid, é mais fácil simplesmente entrar em modo de edição no grub2 ter arrancado com o ao vivo cd / usb e alterar as opções para
  kernel / casper / boot vmlinuz = casper toram respingo
  /casper/initrd.gz initrd 
Senão você vai precisar de pacotes de GRUB Legacy e usar isso para criar o grub instalar cd stage2_eltorito pode ser extraído de http://packages.ubuntu.com/lucid/i386/grub/download
Ao fazer a opção de uso -J iso para gerar Joliet informações do diretório para que você possa usar o usb-creator-gtk (Startup criador de disco) e não desperdiçar CDs!
  mkisofs -R -J -b boot / grub / stage2_eltorito -no-emul-boot \
  -boot-load-size 4 -boot-info-table -o grub.iso iso 
Armadilhas:
  • lembre-se de definir as permissões em todos os arquivos antes de criar o iso como estes irão ser honrado quando fotografada
  • Verifique se o seu chroot não acabar no iso
Variações:
  • carregar os squashfs de um stick USB barato ou cd pode ser lento, por isso, se você tem um uso do disco rígido que, ao invés, por exemplo
  if ["$ {} toram"];  em seguida
  # Live_dest = "ram"
  echo "Copiar conteúdo para a memória RAM .."
  mkdir / loja
  mount -t tmpfs -o size = 2G none / loja 
  mkdir / store / casper
  mkdir / mnt
  # A utilização para a minha partição de recuperação janelas velhas!
  mount / dev / sda3 / mnt /
  cp /mnt/casper/*.squashfs / store / casper /
  echo "Copiar feito .. seguro para ejetar o meio de inicialização"
  umount / cdrom
  umount / mnt
  mount -o bin / store / cdrom

  elif ["$ {} TODISK"];  em seguida 
BootToRAM (última edição 2011-07-18 07:35:36 por ubuntu-launchpad-bobpaul )
Categoria:
Sobre o autor Leandro Venâncio é autor e editor deste blog. Também é o mantenedor do CaminhosSOS. Facebook

0 comentários

Postar um comentário