1 poin oleh GN⁺ 2024-07-03 | 1 komentar | Bagikan ke WhatsApp

Boot Linux dari Google Drive

Tapi bagaimana caranya?

  • Ingin menyelesaikannya secara mandiri tanpa perangkat tambahan
  • Menggunakan FUSE agar berfungsi sebagai driver sistem berkas di ruang pengguna
  • Perlu memasang program FUSE ke initramfs kernel Linux dan mengonfigurasi jaringan

Proses boot Linux

  1. Firmware (BIOS/UEFI) memulai dan memuat boot loader
  2. Boot loader memuat kernel
  3. Kernel mengekstrak sistem berkas sementara ke RAM untuk menyediakan alat guna me-mount sistem berkas yang sebenarnya
  4. Kernel me-mount sistem berkas yang sebenarnya dan mengalihkan proses ke sistem init yang berjalan pada sistem berkas baru

Proof of concept

  • Membutuhkan initramfs yang menyertakan dukungan jaringan dan biner FUSE yang sesuai
  • Dengan Dracut, initramfs kustom dapat dibangun dengan mudah
  • Diputuskan untuk membangun berdasarkan Arch Linux

Google ikut campur

  • Menggunakan proyek google-drive-ocamlfuse untuk me-mount Google Drive dengan FUSE
  • Muncul berbagai masalah: symbolic link, hard link, kecepatan, masalah izin, dan lain-lain
  • Untuk mengatasinya, symbolic link dibuat secara manual dan berbagai pengaturan lain disesuaikan

Menjalankannya di perangkat keras nyata

  • Menggunakan driver Ethernet yang benar dan mengubah pengaturan jaringan
  • Menguji di perangkat keras nyata dengan membangun file EFI terpadu ke USB drive

Kesimpulan

  • Proyek ini menunjukkan kemungkinan komputasi cloud-native
  • Ada berbagai kemungkinan penerapan, seperti boot Linux dari SSH atau repositori Git

Opini GN⁺

  • Proyek ini adalah upaya menarik untuk mengeksplorasi kemungkinan komputasi cloud-native
  • Kita bisa mempelajari cara mengatasi berbagai masalah yang muncul saat melakukan boot Linux dari Google Drive menggunakan FUSE
  • Masalah performa dan keandalan sistem berkas berbasis cloud perlu dipertimbangkan
  • Proyek lain dengan fungsi serupa antara lain gitfs
  • Saat mengadopsi teknologi baru, aspek seperti performa, keandalan, dan keamanan perlu dipertimbangkan dengan cermat

1 komentar

 
GN⁺ 2024-07-03
Komentar Hacker News
  • Menyebut teknik ini sebagai "booting" agak kurang tepat karena kernel sebenarnya sudah lebih dulu diboot

    • Saya akan mengakuinya kalau dukungan mounting google-drive ditambahkan ke grub
    • Ini sebenarnya menempatkan rootfs di lokasi yang aneh
    • Sebagai referensi, proyek saya menempatkan rootfs NixOS di IPFS
  • Dulu, Sun Solaris bisa diboot melalui HTTP

    • Itu disebut wanboot
    • Ini merupakan opsi firmware OpenBoot PROM pada mesin SPARC
    • Contoh konfigurasi network boot:
      ok setenv network-boot-arguments dhcp,hostname=myclient,file=https://192.168.1.1/cgi-bin/wanboot-cgi
      ok boot net
      
    • Ini memuat initramfs dan kernel melalui (inter)network
    • Tautan dokumentasi terkait:
  • Bagaimana kalau Linux diboot lewat bittorrent?

    • Contoh nbdkit-torrent-plugin
    • Masalahnya, saat Linux diboot dari perangkat dengan latensi tinggi, kernel terlalu cepat melakukan timeout pada permintaan I/O (sekitar 60 detik)
    • Waktu timeout perlu diperpanjang
  • Jika memboot rootfs beberapa megabyte dari initramfs lokal, apakah itu masih bisa disebut boot dari jarak jauh?

  • Yang benar-benar diinginkan orang adalah boot dalam hitungan detik, terutama pada sistem embedded

    • Ini masalah yang sulit, tetapi tampaknya tidak banyak minat pada riset CS untuk menyelesaikannya
  • Disebut juga soal boot dari S3

    • Jika diganti ke Google Drive, latensinya bertambah
    • Meski begitu, tetap keren
  • Saat pertama kali memasang cable modem di rumah, saya bisa menginstal BSD lewat network menggunakan boot floppy

    • Pada saat itu, itu terasa luar biasa
    • Saya tidak yakin apakah itu masih bisa dilakukan sekarang
    • Mungkin file-file-nya dihosting lewat FTP atau TFTP
    • Sekarang kebanyakan memakai file ISO
  • Pernah melakukan hal yang mirip: boot dari repositori RPM pada DVD instalasi Tumbleweed

    • Tujuan awalnya adalah menulis file system fuse yang me-mount paket RPM
    • Saya ingin melihat sejauh apa ini bisa dibawa
    • Ternyata bisa berjalan cukup jauh:
    • Sistem berhasil boot menjadi desktop yang berfungsi, dan tampak seolah semua paket di DVD sudah terpasang
  • Di Windows, ini sering dilakukan dengan Citrix

    • Disebut pvs
    • Melakukan pxe boot kecil lalu melakukan streaming image server Windows
  • "Pikiran menjadi kabur, dan di tengah ribuan tahun waktu para programmer serta jeritan kegilaan, aku menemukan mahakaryaku"

    • Layak jadi nominasi Pulitzer