Hướng dẫn reset mật khẩu Root ESXi an toàn khi bị quên hoặc mất bàn giao

VMware tutorial - IT technology blog
VMware tutorial - IT technology blog

Tình huống thực tế: Mất quyền kiểm soát máy chủ ESXi đang chạy

Tình huống này xảy ra khá thường xuyên trong thực tế: bạn vừa tiếp nhận bàn giao hệ thống từ một đồng nghiệp cũ, hoặc bật lại con server Dell R740 hay HPE DL380 sau nửa năm đắp chiếu trong phòng server, rồi nhận ra không ai nhớ mật khẩu root.

Giao diện ESXi Host Client và màn hình DCUI (màn hình vàng xám trực tiếp) đều từ chối đăng nhập. Lúc này, khoảng 10–15 máy ảo chứa database, web nội bộ hay ERP vẫn đang hoạt động bình thường bên dưới. Nếu cài trắng lại máy chủ, bạn sẽ mất đứt nửa ngày để cấu hình lại toàn bộ vSwitch, VLAN tag và storage mount. Nguy cơ gián đoạn dịch vụ rất cao.

Vì sao ESXi không có tính năng “Quên mật khẩu”?

Khác với các hệ điều hành Linux thông thường, VMware ESXi là một bare-metal hypervisor đóng kín. VMware thiết kế hệ thống này chạy hoàn toàn trên RAM sau khi khởi động nhằm tối đa hóa độ an toàn và ổn định.

Mỗi lần boot, ESXi sẽ giải nén gói state.tgz từ phân vùng bootbank (định dạng FAT16/vfat) vào RAM để vận hành. File etc/shadow chứa hash mật khẩu của user root nằm sâu trong cấu trúc gói nén này (state.tgz > local.tgz > etc/shadow). Khi bạn đổi mật khẩu qua giao diện, hệ thống mới nén ngược lại thành file lưu xuống ổ cứng.

VMware chính thức khuyến cáo người dùng nên cài đặt lại ESXi khi mất mật khẩu. Tuy nhiên, trong thực tế vận hành, chúng ta hoàn toàn có thể can thiệp an toàn vào file nén bootbank để xóa trắng mật khẩu mà không làm ảnh hưởng đến dữ liệu máy ảo bên dưới.

3 cách xử lý khi quên mật khẩu Root ESXi

Cách 1: Xóa mật khẩu bằng Ubuntu Live USB (Khuyên dùng cho máy chủ Standalone)

Phương pháp này áp dụng khi ESXi chạy độc lập, không kết nối vCenter. Thời gian bảo trì chỉ tốn khoảng 5–10 phút.

Bước 1: Chuẩn bị một USB boot Ubuntu Desktop (bản 20.04 hoặc 22.04 LTS). Cắm vào server và khởi động vào chế độ Try Ubuntu without installing.

Bước 2: Mở Terminal trong Ubuntu và tìm phân vùng boot của ESXi:

sudo blkid

Tìm phân vùng có định dạng vfat mang nhãn BOOTBANK1 hoặc dung lượng khoảng 250MB – 4GB (tùy ESXi 6.7, 7.0 hay 8.0). Giả sử phân vùng này là /dev/sdb5 (hoặc /dev/nvme0n1p5 trên ổ NVMe).

Bước 3: Mount phân vùng bootbank vào hệ thống Ubuntu:

sudo mkdir -p /mnt/esxi_boot
sudo mount /dev/sdb5 /mnt/esxi_boot
ls -lh /mnt/esxi_boot/state.tgz

Nếu màn hình hiển thị file state.tgz, bạn đã mount đúng phân vùng chứa cấu hình.

Bước 4: Giải nén gói cấu hình để lấy file shadow:

# Tạo thư mục làm việc tạm
mkdir -p /tmp/esxi_config && cd /tmp/esxi_config

# Giải nén state.tgz -> local.tgz -> etc/shadow
tar -xzf /mnt/esxi_boot/state.tgz
tar -xzf local.tgz
rm local.tgz

Bước 5: Mở file etc/shadow bằng trình soạn thảo nano:

nano etc/shadow

Dòng đầu tiên thường có dạng:

root:$6$xyz123...chuoi_hash_mat_khau...:13358:0:99999:7:::

Xóa toàn bộ chuỗi ký tự băm nằm giữa dấu hai chấm thứ nhất và thứ hai, đưa về dạng:

root::13358:0:99999:7:::

Bấm Ctrl + O rồi Enter để lưu file, sau đó bấm Ctrl + X để thoát. Thao tác này đưa mật khẩu của tài khoản root về trạng thái rỗng.

Bước 6: Đóng gói lại cấu hình và ghi đè vào phân vùng boot:

# Nén ngược lại thành local.tgz rồi state.tgz
tar -czf local.tgz etc
tar -czf /mnt/esxi_boot/state.tgz local.tgz

# Unmount an toàn
cd ~
sudo umount /mnt/esxi_boot
sudo reboot

Bước 7: Rút USB ra và để máy chủ khởi động lại vào ESXi. Đăng nhập vào DCUI hoặc Web UI với user root và để trống phần mật khẩu. Sau khi vào được hệ thống, bạn cần đặt lại mật khẩu mới ngay lập tức.

Cách 2: Đồng bộ mật khẩu mới qua vCenter Host Profile (Downtime 0 giây)

Nếu host ESXi đang nằm trong cụm cluster do VMware vCenter quản lý (yêu cầu giấy phép vSphere Enterprise Plus), bạn không cần tắt máy chủ hay cắm USB cứu hộ.

  1. Đăng nhập vào vSphere Client bằng tài khoản có quyền Administrator.
  2. Vào Policies and Profiles > Host Profiles.
  3. Chọn trích xuất (Extract) profile từ một host đang hoạt động bình thường, hoặc tạo một profile mới.
  4. Chỉnh sửa Host Profile: Điều hướng tới mục Security and Services > Security > User Configuration > root.
  5. Nhập mật khẩu mới muốn thiết lập cho tài khoản root.
  6. Gán (Attach) Host Profile này vào host ESXi đang mất mật khẩu và nhấn Remediate. vCenter sẽ tự động áp mật khẩu mới xuống máy chủ chỉ sau 1–2 phút.

Cách 3: Cài đè ESXi và chọn tùy chọn Preserve VMFS Datastore

Phương án này phù hợp khi chính sách công ty cấm boot Live CD bên ngoài, hoặc hệ điều hành ESXi trên máy chủ bị lỗi file bootbank không thể cứu bằng USB.

Bạn cắm USB cài đặt ESXi (hoặc gắn ISO qua iLO/iDRAC/KVM) đúng phiên bản đang chạy và tiến hành cài đặt.

Khi tới màn hình chọn ổ cứng cài đặt, bộ cài sẽ phát hiện bản cài ESXi cũ và đưa ra 3 tùy chọn:

  • Upgrade ESXi, preserve VMFS datastore: Nâng cấp ESXi và giữ nguyên cấu hình cũ (không đổi được mật khẩu root).
  • Install ESXi, preserve VMFS datastore: Cài mới hệ điều hành, đặt lại mật khẩu root và mạng về mặc định, đồng thời giữ nguyên 100% dữ liệu máy ảo trên Datastore.
  • Install ESXi, overwrite VMFS datastore: Xóa sạch toàn bộ ổ cứng và mất hết máy ảo (tuyệt đối không chọn).

Hãy chọn dòng thứ 2 (Install ESXi, preserve VMFS datastore). Sau khi cài xong trong khoảng 10–15 phút, bạn cấu hình lại địa chỉ IP, vSwitch rồi vào Datastore chọn Register VM (đăng ký lại máy ảo từ file .vmx) để đưa dịch vụ hoạt động trở lại bình thường.

Nên chọn giải pháp nào cho hệ thống của bạn?

Tùy theo mô hình hạ tầng, bạn có thể chọn phương án xử lý phù hợp:

  • Máy chủ vật lý độc lập (Standalone Host): Dùng Ubuntu Live USB (Cách 1). Đây là cách nhanh nhất, giữ nguyên 100% cấu hình mạng, IP tĩnh, vSwitch và chỉ mất tầm 5–10 phút bảo trì.
  • Môi trường doanh nghiệp có vCenter: Dùng Host Profile (Cách 2). Phương án này không tốn một giây downtime nào, an toàn và đúng chuẩn vận hành của VMware.
  • Hệ điều hành ESXi bị lỗi boot hoặc mất cấu hình: Dùng Cài đè giữ Datastore (Cách 3) để làm sạch hệ điều hành gốc trong khi dữ liệu máy ảo bên dưới vẫn an toàn nguyên vẹn.
Share: