Inicializando o Linux a partir do Google Drive
Mas como?
- Queria resolver isso por conta própria, sem dispositivos auxiliares
- Configurou o sistema para funcionar como um driver de sistema de arquivos em espaço de usuário usando FUSE
- Foi necessário instalar o programa FUSE no
initramfs do kernel Linux e configurar a rede
Processo de inicialização do Linux
- O firmware (BIOS/UEFI) inicia e carrega o bootloader
- O bootloader carrega o kernel
- O kernel descompacta um sistema de arquivos temporário na RAM para fornecer as ferramentas para montar o sistema de arquivos real
- O kernel monta o sistema de arquivos real e transfere os processos para o sistema
init, que passa a ser executado no novo sistema de arquivos
Prova de conceito
- Era necessário um
initramfs com suporte a rede e os binários FUSE apropriados
- Foi possível usar o Dracut para construir facilmente um
initramfs personalizado
- Decidiu-se fazer a compilação com base no Arch Linux
O Google entra em cena
- O projeto
google-drive-ocamlfuse foi usado para montar o Google Drive com FUSE
- Surgiram vários problemas: links simbólicos, hard links, velocidade, permissões etc.
- Para resolver os problemas, foram criados links simbólicos manualmente e ajustadas outras configurações
Executando em hardware real
- Uso do driver Ethernet correto e alteração das configurações de rede
- Foi criado um arquivo EFI unificado em um drive USB para testar em hardware real
Conclusão
- Este projeto mostra as possibilidades da computação cloud-native
- Há várias aplicações possíveis, como inicializar o Linux via SSH ou a partir de um repositório Git
Opinião do GN⁺
- Este projeto é uma tentativa interessante de explorar as possibilidades da computação cloud-native
- É possível aprender a resolver diversos problemas que surgem ao inicializar o Linux a partir do Google Drive usando FUSE
- É preciso considerar os problemas de desempenho e confiabilidade de sistemas de arquivos baseados em nuvem
- Outros projetos com funcionalidade semelhante incluem o
gitfs
- Ao adotar novas tecnologias, é importante considerar cuidadosamente aspectos como desempenho, confiabilidade e segurança
1 comentários
Comentários no Hacker News
Chamar isso de "boot" é forçar a barra, já que o kernel já está carregado
Antigamente era possível inicializar o Sun Solaris via HTTP
E inicializar o Linux via bittorrent?
Dá para chamar de boot remoto quando você inicializa alguns megabytes de rootfs a partir de um initramfs local?
O que as pessoas realmente querem é boot em segundos, especialmente em sistemas embarcados
Mencionam inicializar a partir do S3
Quando instalei um modem a cabo em casa pela primeira vez, dava para instalar BSD pela rede usando um disquete de boot
Já fiz algo parecido: inicializar a partir do repositório RPM do DVD de instalação do Tumbleweed
No Windows, isso é feito com frequência usando Citrix
"Minha mente se desfaz, e encontro minha obra-prima entre milhares de anos de tempo de programadores e gritos de insanidade"