Chuyển đến nội dung chính (Skip to content)
Mục lục bài viết
Linux Essentials

Chuẩn bị lab Linux: máy ảo, snapshot và kiểm chứng môi trường

Chuẩn bị lab Linux: máy ảo, snapshot và kiểm chứng môi trường

Chuẩn bị lab Linux bằng máy ảo: chọn kiến trúc, xác minh bộ cài, giới hạn chia sẻ, tạo dữ liệu riêng và phân biệt snapshot với sao lưu độc lập.

Một môi trường có thể làm lại quan trọng hơn cài thật nhanh

Bạn cần một nơi để thử lệnh mà không đưa tài liệu công việc, cấu hình mạng hoặc tài khoản thật vào bài học. Với Linux Essentials, lựa chọn chính của bộ bài là một máy ảo Ubuntu 26.04 LTS và tài khoản thường. Bạn có thể quan sát quá trình khởi động, dịch vụ và đĩa của guest mà không thay thế hệ điều hành đang dùng trên máy host.

Đây là cấu hình học tập đề xuất, không phải bản ghi một lần cài VM đã được thực hiện trên máy của bạn. Những ví dụ shell và đường dẫn trong bộ mẫu đã được kiểm tra riêng trong container Ubuntu 26.04.1 LTS ARM64, Bash 5.3.9; kiểm thử đó không chứng minh giao diện trình cài đặt, snapshot hoặc systemd trên một VM cụ thể đã đạt. Bài này hướng dẫn bạn tự tạo và lưu bằng chứng kiểm tra đúng môi trường của mình.

Đầu ra cần đạt: biết host và guest là máy nào, xác định phiên bản Linux, tạo được vùng dữ liệu lab và có cách phục hồi. Không dùng máy chủ đang chạy dịch vụ thật làm môi trường thử. Nếu máy tính thuộc tổ chức, kiểm tra quyền cài phần mềm ảo hóa với IT trước khi tiếp tục.

Chọn đúng kiến trúc và công cụ ảo hóa

Host là máy chạy công cụ ảo hóa; guest là hệ điều hành trong máy ảo. Đĩa ảo thường được lưu thành một hoặc nhiều tệp trên host. Trình cài đặt guest nhìn thấy đĩa ảo như một thiết bị lưu trữ riêng, nhưng các tính năng chia sẻ thư mục, USB passthrough và chuyển tiếp cổng có thể nối hai môi trường với nhau. Vì vậy, “đang trong VM” chưa đồng nghĩa với cô lập tuyệt đối.

Trên máy Intel hoặc AMD, chọn ảnh amd64/x86-64 tương ứng. Trên Apple Silicon hoặc host ARM khác, dùng ảnh arm64 và công cụ hỗ trợ guest ARM. Giả lập kiến trúc khác có thể chạy chậm hoặc có giới hạn; nó không phải yêu cầu của lộ trình. Kiểm tra tài liệu của công cụ ảo hóa bạn đã chọn thay vì áp dụng một menu cài đặt cho mọi nền tảng.

Đối với bài dòng lệnh, Ubuntu Server là đủ và nhẹ hơn môi trường desktop đầy đủ. Để quan sát ứng dụng đồ họa, dùng Desktop nếu host còn tài nguyên. Có thể bắt đầu Server với 2 vCPU, 4 GB RAM và 25 GB đĩa động như cấu hình lab tham khảo; đây không phải tuyên bố cấu hình tối thiểu chính thức. Chừa RAM và dung lượng cho host, kể cả khi đĩa động chưa chiếm hết kích thước khai báo.

Tải bộ cài và xác minh trước khi khởi động

Lấy ISO hoặc ảnh cài đặt từ trang phát hành Ubuntu, chọn đúng dòng 26.04 LTS và kiến trúc được cung cấp. Nếu biến thể hoặc kiến trúc bạn cần nằm ở kho khác của Canonical, đi theo liên kết chính thức của sản phẩm. Không dùng tệp ISO từ một liên kết quảng cáo hoặc nguồn không rõ chỉ vì tên tệp giống nhau.

So sánh checksum SHA-256 của tệp tải về với bản công bố chính thức. Checksum giúp phát hiện nội dung khác nhau; nó không tự chứng minh nguồn đáng tin nếu cả ISO và checksum đều lấy từ một nơi giả mạo. Khi cần xác minh nguồn phát hành, làm theo hướng dẫn xác minh ISO của Ubuntu. Ghi tên tệp và checksum vào ghi chú lab.

Trong VM mới, chỉ gắn đĩa ảo dành cho học tập. Khi trình cài đặt đề nghị xóa đĩa, kiểm tra dung lượng và tên thiết bị trong guest. Lựa chọn xóa đĩa làm mất dữ liệu trên thiết bị được chọn; nếu công cụ đang chuyển tiếp ổ vật lý, hậu quả có thể vượt khỏi lab. Dừng nếu bạn không xác định được đĩa đích. Không dùng bài này để cài dual boot trên máy làm việc.

Kiểm tra kiến trúc, bộ cài, đĩa và cách phục hồi trước khi dùng VM.
Hình 1. Kiểm tra kiến trúc, bộ cài, đĩa và cách phục hồi trước khi dùng VM. Mở hình để xem chi tiết.

Giới hạn kết nối và chia sẻ dữ liệu

Đặt mạng VM ở NAT cho chặng đầu. Guest thường có thể ra mạng qua host, nhưng khả năng host hoặc máy khác đi vào guest còn tùy triển khai NAT và chuyển tiếp cổng. NAT không thay thế firewall và không làm nội dung tải từ Internet trở nên an toàn. Chưa bật port forwarding vì các bài đầu chưa cần dịch vụ từ ngoài truy cập vào.

Để shared folders, clipboard hai chiều và USB passthrough ở trạng thái tắt nếu chưa cần. Điều đó giảm khả năng thao tác nhầm lên dữ liệu host. Khi phải sao chép tệp bài tập, dùng thư mục chỉ chứa dữ liệu giả lập và hiểu quyền ghi của guest. Không gắn thư mục chứa tài liệu khách hàng, khóa SSH hoặc kho mã công việc vào VM học tập.

Tạo một tài khoản thường trong guest. Mật khẩu dùng cho lab phải khác mật khẩu công việc. Với lệnh chỉ đọc hoặc tạo dữ liệu trong home, không cần sudo. Chỉ nâng quyền tại bước được giải thích rõ. Nếu một hướng dẫn khiến bạn phải thêm sudo trước mọi dòng, hãy kiểm tra đường dẫn và quyền sở hữu trước khi tiếp tục.

Ghi nhận môi trường từ bên trong guest

Mở terminal trong guest và chạy các lệnh chỉ đọc sau. Không sao chép dấu nhắc $ hoặc # nếu tài liệu có hiển thị chúng. Các khối lệnh trong bộ bài không chứa dấu nhắc để bạn dễ sao chép.

cat /etc/os-release
uname -m
uname -r
id
pwd

/etc/os-release cho biết bản phân phối và phiên bản phát hành. uname -m cho biết kiến trúc kernel đang thấy; uname -r cho biết phiên bản kernel. id chỉ ra danh tính và nhóm; pwd in thư mục làm việc. Những giá trị này có thể thay đổi theo image, cập nhật và tài khoản. Không cần ép đầu ra của bạn giống từng ký tự một ví dụ trên Internet.

Kiểm tra Bash bằng cách mở một phiên bash nếu nó có sẵn, rồi dùng printf để xem phiên bản shell. Biến SHELL thường mô tả login shell, không bảo đảm đó là shell đang thực thi ở thời điểm hiện tại. Nếu đang dùng zsh trên host, hãy xác nhận đã chuyển sang guest trước khi làm bài Bash.

bash
printf '%s\n' "$BASH_VERSION"

Nếu bash không được tìm thấy trong image tối giản, đó là khác biệt môi trường cần ghi lại. Đừng giả định /bin/sh là Bash vì nhiều bản phân phối dùng shell khác cho đường dẫn đó. Các khái niệm portable sẽ được phân biệt với tính năng riêng của Bash trong bài tương ứng.

Tạo vùng dữ liệu học tập riêng

Chọn một đường dẫn chưa tồn tại để tránh trộn dữ liệu bài cũ. Những lệnh sau chỉ tạo thư mục và một tệp ghi chú dưới home của tài khoản hiện tại. Nếu lệnh kiểm tra báo thư mục đã có, hãy chọn tên khác thay vì ghi đè nội dung cũ.

lab_root="$HOME/lpi-lab-20261023"
if [ -e "$lab_root" ]; then
  printf '%s\n' 'Đường dẫn đã tồn tại; chọn tên lab khác.'
else
  mkdir -p -- "$lab_root/notes" "$lab_root/data"
  printf '%s\n' 'Dữ liệu học tập tự tạo, không chứa bí mật.' > "$lab_root/notes/README.txt"
fi
ls -ld -- "$lab_root" "$lab_root/notes" "$lab_root/data"

Lệnh printf với dấu > ghi nội dung vào tệp mới trong nhánh else. Trong cách dùng nói chung, > có thể cắt ngắn tệp đang tồn tại; kiểm tra đường dẫn trước khi tái sử dụng mẫu đó. Bài không yêu cầu xóa lab sau khi tạo. Giữ dữ liệu để có thể đối chiếu các buổi học sau.

Host, guest, snapshot và bản sao lưu riêng có các ranh giới khác nhau.
Hình 2. Host, guest, snapshot và bản sao lưu riêng có các ranh giới khác nhau. Mở hình để xem chi tiết.

Snapshot, sao lưu và cách quay lại

Sau khi cài đặt, cập nhật hệ thống theo quy trình của bản phân phối và khởi động lại nếu được yêu cầu. Việc cập nhật sẽ tải gói, dùng dung lượng và có thể đổi kernel hoặc dịch vụ. Thực hiện trong VM mới, không dùng hướng dẫn này để nâng cấp máy chủ đang phục vụ người dùng. Tài liệu quản lý gói Ubuntu giải thích sự khác nhau giữa cập nhật danh sách gói và cài các bản nâng cấp.

Khi guest đã ổn định, tắt guest theo quy trình của hệ điều hành rồi tạo snapshot mang tên dễ nhận biết. Khả năng snapshot và nội dung được lưu phụ thuộc công cụ: đĩa, bộ nhớ và thiết bị chia sẻ không nhất thiết được phục hồi cùng nhau. Kiểm tra tài liệu sản phẩm và ghi lại trạng thái guest tại thời điểm tạo.

Khôi phục snapshot có thể loại bỏ thay đổi và tệp được tạo sau snapshot. Xuất ghi chú cần giữ ra nơi sao lưu riêng trước khi revert. Snapshot nằm trên cùng ổ host không phải bản sao lưu độc lập trước hỏng ổ hoặc mất máy. Nếu lưu bài tập quan trọng, giữ thêm một bản ngoài VM và kiểm tra đọc lại được.

Nghiệm thu và xử lý khi môi trường khác dự kiến

Bạn đạt bài khi có năm bằng chứng: tên/kiến trúc bộ cài; phiên bản guest; tài khoản thường; hai thư mục notes và data; phương án phục hồi đã được ghi rõ. Nếu công cụ hỗ trợ, thử tạo một tệp đánh dấu vô hại, phục hồi snapshot và quan sát tệp đó có còn không. Chỉ thử sau khi đã sao lưu phần cần giữ; không suy ra mọi dữ liệu ngoài đĩa guest cũng đã quay lại.

Nếu không có mạng, kiểm tra adapter VM và cấu hình NAT trước khi thay DNS hoặc tắt firewall. Nếu terminal báo thiếu lệnh, xác định image đang dùng. Nếu guest không khởi động, kiểm tra kiến trúc, bộ cài và tài nguyên; không xóa VM đang chứa ghi chú trước khi xuất dữ liệu cần thiết.

Tự kiểm tra: Snapshot có cứu được khi ổ host hỏng không? Không thể coi đó là bảo đảm. uname -r có xác định phiên bản Ubuntu không? Không, nó cho biết kernel. Vì sao dùng tài khoản thường? Để lỗi trong bài tập không dễ trở thành thay đổi hệ thống có quyền cao. Bước tiếp theo là đọc bài về bản phân phối Linux trước khi thực hành shell.

Bài liên quan trong bộ LPI

Tìm hiểu thêm