Nếu từng quản lý Ubuntu Server, chắc hẳn anh em đã nếm trải cảm giác hệ thống “oẳng” sau một lệnh apt upgrade lỗi. Đôi khi, chỉ một script vô tình ghi đè file hệ thống cũng đủ khiến OS sụp đổ. Với các thiết bị IoT đặt tại trạm xa, việc vượt hàng trăm cây số chỉ để flash lại thẻ nhớ là một thảm họa về chi phí.
Ubuntu Core ra đời để chấm dứt nỗi lo đó. Không giống bản Desktop hay Server, đây là hệ điều hành Immutable (bất biến) chạy hoàn toàn bằng Snap. Cùng mình mổ xẻ cách cấu hình Ubuntu Core để tạo ra những thiết bị IoT “nồi đồng cối đá” đúng nghĩa.
Tại sao IoT cần một OS không thể thay đổi?
Mình từng quản lý cụm 15 con Raspberry Pi đặt tại các trạm quan trắc thủy lợi. Ám ảnh nhất là cảnh mất điện đúng lúc đang update, khiến hệ điều hành bị “brick” hoàn toàn. Ubuntu Core giải quyết bài toán này bằng ba trụ cột kỹ thuật:
- File hệ thống Read-only: Toàn bộ OS được đóng gói trong các file squashfs chỉ đọc. Ngay cả quyền root cũng không thể vô tình sửa đổi hay xóa nhầm các file cốt lõi này.
- Cập nhật Transactional (A/B Update): Khi update, hệ thống tải phiên bản mới về một phân vùng riêng. Nếu quá trình lỗi hoặc boot thất bại, nó sẽ tự động rollback về bản cũ ổn định chỉ trong vài giây.
- Cô lập ứng dụng (Sandboxing): Mọi app chạy dưới dạng Snap đều bị nhốt trong môi trường riêng. Nhờ AppArmor và Seccomp, một app bị hack cũng không thể lây lan sang phần còn lại của hệ thống.
Chuẩn bị: Những thứ bắt buộc phải có
Để bắt đầu, anh em cần chuẩn bị kỹ vì Ubuntu Core có cách tiếp cận hơi khác truyền thống:
- Phần cứng: Raspberry Pi 3, 4, 5 hoặc Intel NUC.
- Tài khoản Ubuntu One: Bắt buộc phải có để liên kết SSH Key. Đăng ký nhanh tại login.ubuntu.com.
- SSH Key: Ubuntu Core khóa hoàn toàn đăng nhập bằng mật khẩu. Bạn phải upload Public Key lên tài khoản Ubuntu One trước khi cài đặt.
# Tạo nhanh SSH key nếu máy bạn chưa có
ssh-keygen -t ed25519 -C "[email protected]"
Hãy copy nội dung file ~/.ssh/id_ed25519.pub dán vào mục “SSH Keys” trong trang quản lý tài khoản Ubuntu. Đây là chìa khóa duy nhất để bạn vào máy sau này.
Các bước cài đặt thực tế
1. Flash Image và chuẩn bị thẻ nhớ
Tải bản Image (ví dụ Ubuntu Core 22) phù hợp với phần cứng. Sử dụng Raspberry Pi Imager để flash. Một lưu ý nhỏ: Hãy ưu tiên thẻ nhớ chuẩn Industrial hoặc ít nhất là Class 10. Các gói Snap có cường độ đọc ghi cao, thẻ nhớ kém chất lượng sẽ hỏng sau khoảng 6-12 tháng vận hành liên tục.
2. Cấu hình Console lần đầu
Cấp nguồn và nối mạng cho thiết bị. Ở lần boot đầu tiên, Ubuntu Core sẽ yêu cầu thiết lập cơ bản:
- Nhấn Enter để vào menu cấu hình.
- Thiết lập IP (nên dùng Ethernet để nhận IP tự động cho nhanh).
- Nhập Email tài khoản Ubuntu One.
Thiết bị sẽ kết nối với server Canonical để tải Public Key của bạn về. Khi màn hình hiện địa chỉ IP kèm dòng lệnh SSH, bạn đã có thể rút màn hình và bàn phím ra được rồi.
3. Truy cập từ xa
Mở terminal trên máy tính cá nhân và gõ:
ssh [email protected]
Quản trị hệ thống: Quên apt đi, Snap là duy nhất
Trên Ubuntu Core, mọi thứ từ Kernel đến Driver đều là Snap. Bạn sẽ không thể dùng sudo apt install. Thay vào đó, mọi thao tác đều xoay quanh lệnh snap.
Kiểm tra các thành phần đang chạy:
snap list
Muốn cài Docker để chạy container? Chỉ mất một dòng lệnh:
sudo snap install docker
Kinh nghiệm “xương máu” khi vận hành thực tế
Sau thời gian dài triển khai cho các Gateway công nghiệp, đây là 3 mẹo giúp anh em tối ưu hệ thống:
Tiết kiệm data 4G
Mặc định Snap tự động check update 4 lần mỗi ngày. Nếu dùng SIM 4G giới hạn dung lượng, hãy giới hạn việc cập nhật vào khung giờ thấp điểm (ví dụ 2h sáng Chủ Nhật):
sudo snap set system refresh.timer=sun,02:00
Tận dụng Snap Confinement
Khi tự phát triển app, hãy luôn đóng gói ở chế độ strict. Chế độ này ngăn app truy cập trái phép vào hardware nếu không được cấp quyền (interface). Điều này cực kỳ quan trọng nếu thiết bị của bạn xử lý dữ liệu nhạy cảm hoặc camera giám sát.
Giám sát sức khỏe thẻ nhớ
Dùng lệnh sudo snap logs -f để theo dõi log hệ thống. Nếu thấy xuất hiện các lỗi I/O liên tục, đó là dấu hiệu thẻ nhớ sắp “đi đời”. Việc phát hiện sớm giúp bạn chủ động thay thế trước khi thiết bị ngừng hoạt động hoàn toàn.
Kết luận
Ubuntu Core không dành cho những ai muốn một hệ điều hành để vọc vạch, cài cắm thư viện tùy tiện. Nó dành cho môi trường sản xuất (Production). Nếu bạn cần một hệ thống Gateway chạy bền bỉ 24/7 trong 3-5 năm mà không cần can thiệp thủ công, Ubuntu Core là lựa chọn hàng đầu. Tính bất biến giúp mình ngủ ngon hơn mỗi khi cần deploy cập nhật cho hàng loạt thiết bị từ xa.

