Démarrer Linux depuis Google Drive
Mais comment ?
- L’objectif était de s’en sortir de manière autonome, sans périphérique auxiliaire
- Utilisation de FUSE pour fonctionner comme un pilote de système de fichiers en espace utilisateur
- Il a fallu installer le programme FUSE dans l’initramfs du noyau Linux et configurer le réseau
Processus de démarrage de Linux
- Le firmware (BIOS/UEFI) lance et charge le chargeur de démarrage
- Le chargeur de démarrage charge le noyau
- Le noyau décompresse un système de fichiers temporaire en RAM afin de fournir les outils nécessaires pour monter le véritable système de fichiers
- Le noyau monte le véritable système de fichiers et transfère les processus vers le système init exécuté sur ce nouveau système de fichiers
Preuve de concept
- Un initramfs avec prise en charge du réseau et le bon binaire FUSE était nécessaire
- Dracut a permis de construire facilement un initramfs personnalisé
- Le choix s’est porté sur une construction basée sur Arch Linux
Google entre en jeu
- Utilisation du projet
google-drive-ocamlfuse pour monter Google Drive avec FUSE
- Plusieurs problèmes sont apparus : liens symboliques, liens physiques, vitesse, permissions, etc.
- Pour les résoudre, des liens symboliques ont été créés manuellement et d’autres réglages ont été ajustés
Exécution sur du matériel réel
- Utilisation du bon pilote Ethernet et modification de la configuration réseau
- Construction d’un fichier EFI unifié sur une clé USB pour tester sur du matériel réel
Conclusion
- Ce projet montre les possibilités du cloud-native computing
- Il existe diverses applications possibles, comme démarrer Linux depuis SSH ou depuis un dépôt Git
L’avis de GN⁺
- Ce projet est une tentative intéressante d’explorer les possibilités du cloud-native computing
- On peut y apprendre comment résoudre les différents problèmes qui surviennent lorsqu’on démarre Linux depuis Google Drive avec FUSE
- Il faut tenir compte des problèmes de performances et de fiabilité des systèmes de fichiers basés sur le cloud
- Parmi les autres projets offrant des fonctions similaires, on peut citer
gitfs
- Lors de l’adoption de nouvelles technologies, il faut examiner avec soin les aspects liés aux performances, à la fiabilité et à la sécurité
1 commentaires
Commentaire Hacker News
Il est difficile d'appeler cette technique un « boot » alors que le noyau est déjà démarré
Par le passé, il était possible de démarrer Sun Solaris via HTTP
Et si on démarrait Linux avec bittorrent ?
Peut-on vraiment parler de démarrage à distance quand on démarre quelques mégaoctets de rootfs depuis un initramfs local ?
Ce que les gens veulent vraiment, c'est un démarrage en quelques secondes, surtout sur les systèmes embarqués
Il est fait mention d'un démarrage depuis S3
Quand j'ai installé mon premier modem câble à la maison, on pouvait utiliser une disquette de démarrage pour installer BSD via le réseau
J'ai déjà fait quelque chose de similaire : démarrer depuis le dépôt RPM du DVD d'installation de Tumbleweed
Sous Windows, on fait souvent cela avec Citrix
« L'esprit vacille, et au milieu de milliers d'années de temps de programmeur et de cris de folie, je découvre mon chef-d'œuvre »