Khởi động Linux từ Google Drive
Nhưng bằng cách nào?
- Muốn tự giải quyết mà không cần thiết bị phụ trợ
- Sử dụng FUSE để thiết lập hoạt động như một trình điều khiển hệ thống tệp trong không gian người dùng
- Cần cài đặt chương trình FUSE vào initramfs của nhân Linux và cấu hình mạng
Quy trình khởi động Linux
- Firmware (BIOS/UEFI) khởi động và tải boot loader
- Boot loader tải kernel
- Kernel giải nén hệ thống tệp tạm thời vào RAM để cung cấp công cụ gắn kết hệ thống tệp thực
- Kernel gắn kết hệ thống tệp thực và chuyển tiến trình sang hệ thống init chạy trên hệ thống tệp mới
Bản chứng minh khái niệm
- Cần initramfs có hỗ trợ mạng và chứa binary FUSE phù hợp
- Có thể dễ dàng build initramfs tùy chỉnh bằng Dracut
- Quyết định build dựa trên Arch Linux
Google can thiệp
- Sử dụng dự án google-drive-ocamlfuse để mount Google Drive bằng FUSE
- Phát sinh nhiều vấn đề: symbolic link, hard link, tốc độ, quyền truy cập, v.v.
- Tự tạo symbolic link thủ công và điều chỉnh thêm các thiết lập khác để giải quyết vấn đề
Chạy trên phần cứng thực tế
- Sử dụng đúng driver Ethernet và thay đổi cấu hình mạng
- Build tệp EFI tích hợp trên USB drive để thử nghiệm trên phần cứng thực tế
Kết luận
- Dự án này cho thấy tiềm năng của điện toán cloud-native
- Có nhiều ứng dụng khả thi như khởi động Linux từ SSH hoặc từ kho Git
Ý kiến của GN⁺
- Đây là một thử nghiệm thú vị nhằm khám phá khả năng của điện toán cloud-native
- Có thể học được cách giải quyết nhiều vấn đề phát sinh trong quá trình khởi động Linux từ Google Drive bằng FUSE
- Cần cân nhắc các vấn đề về hiệu năng và độ ổn định của hệ thống tệp dựa trên đám mây
- Các dự án khác cung cấp chức năng tương tự có thể kể đến như gitfs
- Khi áp dụng công nghệ mới, cần thận trọng xem xét các khía cạnh như hiệu năng, độ ổn định và bảo mật
1 bình luận
Ý kiến trên Hacker News
Gọi kỹ thuật này là "khởi động" thì chưa chính xác, vì kernel thực ra đã được khởi động sẵn
Trước đây từng có thể khởi động Sun Solaris qua HTTP
Khởi động Linux bằng bittorrent thì sao?
Nếu khởi động một rootfs vài megabyte từ initramfs cục bộ, thì có thể gọi là khởi động từ xa không?
Điều mọi người thực sự muốn, đặc biệt trong các hệ thống nhúng, là thời gian khởi động tính bằng giây
Có nhắc đến việc khởi động từ S3
Khi lần đầu lắp cable modem ở nhà, tôi từng có thể dùng đĩa mềm khởi động để cài BSD qua mạng
Tôi từng làm điều tương tự: khởi động từ kho RPM trên DVD cài đặt Tumbleweed
Trên Windows, người ta thường làm việc này bằng Citrix
"Tôi chìm trong cơn mê loạn, và giữa hàng nghìn năm công sức lập trình cùng những tiếng thét điên cuồng, tôi tìm thấy kiệt tác của mình"