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:
- 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.
- Sobre 2-4GB de espaço livre
- 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 )
0 comentários
Postar um comentário