1 पॉइंट द्वारा GN⁺ 2024-07-03 | 1 टिप्पणियां | WhatsApp पर शेयर करें

Google Drive से Linux बूट करना

लेकिन कैसे?

  • बिना किसी सहायक डिवाइस के इसे अपने आप हल करना चाहते थे
  • FUSE का उपयोग करके इसे user space में file system driver की तरह काम करने के लिए सेट किया
  • FUSE प्रोग्राम को Linux kernel initramfs में इंस्टॉल करना और networking कॉन्फ़िगर करनी पड़ी

Linux बूट प्रक्रिया

  1. firmware (BIOS/UEFI) boot loader को शुरू और लोड करता है
  2. boot loader kernel को लोड करता है
  3. kernel RAM में एक अस्थायी file system को decompress करता है ताकि वास्तविक file system को mount करने के टूल उपलब्ध कराए जा सकें
  4. kernel वास्तविक file system को mount करता है और process को नए file system पर चल रहे init system में स्विच करता है

concept proof

  • network support और उपयुक्त FUSE binary शामिल करने वाला initramfs आवश्यक था
  • Dracut का उपयोग करके custom initramfs को आसानी से build किया जा सका
  • Arch Linux के आधार पर build करने का निर्णय लिया गया

Google ने हस्तक्षेप किया

  • Google Drive को FUSE के रूप में mount करने के लिए google-drive-ocamlfuse project का उपयोग किया
  • कई समस्याएँ आईं: symbolic link, hard link, speed, permission समस्याएँ आदि
  • समस्याओं को हल करने के लिए symbolic link हाथ से बनाए गए और अन्य settings समायोजित की गईं

वास्तविक hardware पर चलाना

  • सही Ethernet driver का उपयोग और network settings में बदलाव
  • वास्तविक hardware पर परीक्षण के लिए USB drive में integrated EFI file build की गई

निष्कर्ष

  • यह project cloud-native computing की संभावनाएँ दिखाता है
  • SSH या Git repository से Linux बूट करने जैसे विभिन्न application संभव हैं

GN⁺ की राय

  • यह project cloud-native computing की संभावनाओं का पता लगाने की एक दिलचस्प कोशिश है
  • FUSE का उपयोग करके Google Drive से Linux बूट करने की प्रक्रिया में आने वाली विभिन्न समस्याओं को हल करना कैसे है, यह सीखा जा सकता है
  • cloud-आधारित file system की performance और reliability समस्याओं पर विचार करना चाहिए
  • समान सुविधा देने वाले अन्य projects में gitfs आदि शामिल हैं
  • नई तकनीक अपनाते समय performance, reliability, security जैसे पहलुओं पर सावधानी से विचार करना चाहिए

1 टिप्पणियां

 
GN⁺ 2024-07-03
Hacker News टिप्पणियाँ
  • इस तकनीक को "boot" कहना ठीक नहीं होगा क्योंकि kernel पहले से ही boot हो चुका है

    • जब google-drive "mounting" support grub में जोड़ दिया जाएगा, तब मानूँगा
    • यह बस rootfs को किसी अजीब जगह पर रखना है
    • संदर्भ के लिए, मेरा प्रोजेक्ट NixOS के rootfs को IPFS पर रखना है
  • पहले Sun Solaris को HTTP के ज़रिए boot किया जा सकता था

    • इसे wanboot कहा जाता था
    • यह SPARC मशीनों के OpenBoot PROM firmware का एक विकल्प था
    • network boot configuration का उदाहरण:
      ok setenv network-boot-arguments dhcp,hostname=myclient,file=https://192.168.1.1/cgi-bin/wanboot-cgi
      ok boot net
      
    • यह (inter)network के ज़रिए initramfs और kernel को load करता है
    • संबंधित दस्तावेज़ लिंक:
  • Linux को bittorrent से boot करने का क्या?

    • nbdkit-torrent-plugin उदाहरण
    • समस्या यह है कि high-latency डिवाइस से Linux boot करते समय kernel I/O requests को बहुत जल्दी timeout कर देता है (लगभग 60 सेकंड)
    • timeout बढ़ाना होगा
  • अगर local initramfs से कुछ megabytes का rootfs boot हो रहा हो, तो क्या उसे remote boot कहना चाहिए?

  • लोग वास्तव में जो चाहते हैं, वह है खासकर embedded systems में seconds के भीतर boot

    • यह एक कठिन समस्या है, लेकिन लगता नहीं कि इसे हल करने के लिए CS research में ज़्यादा रुचि है
  • S3 से boot करने का ज़िक्र किया गया

    • इसे Google Drive में बदलने पर latency और बढ़ जाती है
    • फिर भी, अच्छा काम है
  • जब मैंने घर पर पहली बार cable modem install किया था, तब boot floppy का इस्तेमाल करके network के ज़रिए BSD install किया जा सकता था

    • उस समय यह कमाल की चीज़ थी
    • आज भी यह संभव है या नहीं, पक्का नहीं
    • शायद files FTP या TFTP पर host की गई होंगी
    • आजकल ज़्यादातर ISO files होती हैं
  • मैंने भी कुछ ऐसा ही किया है: Tumbleweed install DVD के RPM repository से boot किया

    • शुरुआती लक्ष्य RPM packages को mount करने वाला एक fuse file system लिखना था
    • मैं देखना चाहता था कि इसे कितनी दूर तक ले जाया जा सकता है
    • नतीजे में, काफ़ी दूर तक जाया जा सका:
    • सिस्टम एक काम करने वाले desktop तक boot हो जाता है, और DVD पर मौजूद सभी packages ऐसे दिखते हैं जैसे वे install किए गए हों
  • Windows में Citrix का उपयोग करके यह अक्सर किया जाता है

    • इसे pvs कहा जाता है
    • एक छोटा pxe boot किया जाता है और Windows server image को stream किया जाता है
  • "मेरा दिमाग सुन्न हो जाता है, और मैं हज़ारों साल के programmer समय और पागलपन की चीखों के बीच अपनी masterpiece खोजता हूँ"

    • Pulitzer पुरस्कार के लिए नामांकन लायक