Cách reset lại mật khẩu quản trị VMware Sphere ESXi

Tóm tắt nội dung

Chào các bạn, ở bài viết này chúng ta cùng tìm hiểu cách thức để reset mật khẩu root trên vSphere ESXi trong trường hợp bạn quên mật khẩu nhé. Hãy tưởng tượng, một ngày nọ bạn cần đăng nhập ESXi để quản lý dưới quyền user root, thì hỡi ôi bạn đã quên mất cái thông tin mật khẩu chính xác để đăng nhập vào rồi. Đau đầu dễ sợ và cần tìm cách để khôi phục (reset) lại mật khẩu root trên ESXi Server.

Bạn cần biết rằng, VMware vSphere ESXi OS chứa thông tin về tài khoản user, mật khẩu đã hash,… ở file có tên /etc/shadow giống như các OS Linux/UNIX khác. Các thông tin hệ thống, cấu hình hệ thống,.. được lưu giữ trong một file nén lưu trữ cấu hình có tên ‘state.tgz‘ nằm ở phân vùng boot image ESXi. Và đây cũng là file nén chứa cả thông tin mật khẩu user root đấy.

Tuy nhiên bản thân VMware cũng cảnh báo rằng, nếu ta quên mật khẩu thì chỉ có nước cài đặt mới một ESXi Host mà thôi.

Vậy vì sao phương pháp ở bài viết này dùng để reset pass root ESXi không được VMware khuyến khích thực hiện ? Đơn giản là bạn thao tác trực tiếp với các file hệ thống cấu hình ESXi , nên nếu có bất kì thao tác nhầm lẫn nào sẽ gây ảnh hưởng hoạt động của hệ thống ESXi. Chính vì vậy bạn cần thao tác cẩn thận trong hoạt động reset pass root ESXi với các thao tác mình chỉ dẫn.

  • Cấu trúc thứ tự partition của ESXi
  • Các bước để reset mật khẩu root trên vSphere ESXi
    • Bước 1: boot LiveCD
    • Bước 2: mount phân vùng boot image hypervisor ESXi
    • Bước 3: xoá mật khẩu trong file shadow của state.tgz
    • Bước 4: nén nội dung thông tin mới thành file ‘state.tgz’
    • Bước 5: login user root / set lại mật khẩu mới

Cấu trúc thứ tự partition của ESXi

Partition 1: systemPartition 4MB Partition 5: linuxNative 250MB -> /bootbank Partition 6: linuxNative 250MB -> /altbootbank Partition 7: vmkDiagnostic 110MB Partition 8: linuxNative 286MB -> /store Partition 2: linuxNative 4GB -> /scratch Partition 3: VMFS datastore

Bạn cần lưu ý 2 partition 5 và 6 trong cấu trúc partition layout của OS ESXi. Vì phân vùng 5 /bootbank chứa file ‘state.tgz‘ đã được nén, trong file này chứa thông tin hệ thống kể cả file ‘state.tgz‘. Phân vùng partition 6/altbootbank‘, chứa bản copy của file boot image và file state.tgz ở phân vùng partition 5 nhằm backup/recovery. Nên khi thực hiện các thao tác reset pass root trên ESXi ta cần thao tác trên cả 2 file ‘state.tgz’ của 2 partition 5 và 6.

Các bước để reset mật khẩu root trên vSphere ESXi

Bước 1: boot LiveCD

Bạn hãy boot ESXi Server của bạn với đĩa cứu hộ Linux có thể là Ubuntu hoặc CentOS đều được. Mình chọn CentOS 7 LiveCD cứu hộ để boot. Lúc này OS LiveCD sẽ được load lên bộ nhớ RAM để chạy như dưới.

reset-pass-root-esxi-1Sau đó hãy mở terminal của OS LiveCD ra nhằm thực hiện các thao tác cứu hộ nhé. Nhảy lên quyền user root luôn để thực thi các câu lệnh khác.

# sudo -s

Bước 2: mount phân vùng boot image hypervisor ESXi

Bạn sử dụng lệnh ‘parted‘ để coi thông tin về partition layout của ổ cứng đang cài đặt ESXi. Trong trường hợp của mình đó là phân vùng logical tên ‘/dev/sdb‘. Sau đó bạn nhìn tiếp tục sẽ thấy boot image của OS ESXi được nằm ở 250MB partition /dev/sdb5 (partition thứ 5) có chứa file nén tên ‘state.tgz‘.

# parted -l
Model: DELL PERC H730P Mini (scsi)
Disk /dev/sdb: 960GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number Start End Size File system Name Flags
1 32.8kB 4194kB 4162kB fat16 boot
5 4211kB 266MB 262MB fat16
6 266MB 528MB 262MB fat16
7 528MB 644MB 115MB
8 644MB 944MB 300MB fat16
9 944MB 3628MB 2684MB
2 3628MB 7922MB 4294MB fat16
3 7922MB 960GB 952GB
reset-pass-root-esxi-2

Giờ ta sẽ thực hiện mount phân vùng /dev/sdb5 để lấy file ‘state.tgz‘ ra chỉnh sửa. Thực hiện các câu lệnh Linux sau để mount.

# mkdir /mnt/esxi/
# mount /dev/sdb5 /mnt/esxi/
# cd /mnt/esxi/

Liệt kê thử các nội dung file nằm trong thư phân vùng /dev/sdb5 đang được mount . Bạn sẽ tìm thấy file ‘state.tgz‘.

# ls -A
a.b00 b.b00 emulex_e.v00 ipmi_ipm.v01 lsu_lsi_.v00 net_bnx2.v01 net_mlx4.v00 nmlx4_rd.v00 sata_ahc.v00 scsi_adp.v00 scsi_meg.v01 tboot.b00 weaselin.t00
ata_pata.v00 block_cc.v00 esx_dvfi.v00 ipmi_ipm.v02 lsu_lsi_.v01 net_cnic.v00 net_mlx4.v01 nmlx5_co.v00 sata_ata.v00 scsi_aic.v00 scsi_meg.v02 uc_amd.b00 xhci_xhc.v00
ata_pata.v01 bnxtnet.v00 esx_ui.v00 ixgben.v00 lsu_lsi_.v02 net_e100.v00 net_nx_n.v00 nvme.v00 sata_sat.v00 scsi_be2.v00 scsi_mpt.v00 uc_intel.b00 xorg.v00
ata_pata.v02 boot.cfg i40en.v00 jumpstrt.gz lsu_lsi_.v03 net_e100.v01 net_qlcn.v00 ohci_usb.v00 sata_sat.v01 scsi_bnx.v00 scsi_mpt.v01 uhci_usb.v00
ata_pata.v03 brcmfcoe.v00 igbn.v00 k.b00 lsu_lsi_.v04 net_enic.v00 net_qlge.v00 onetime.tgz sata_sat.v02 scsi_bnx.v01 scsi_mpt.v02 user.b00
ata_pata.v04 chardevs.b00 ima_be2i.v00 lpfc.v00 misc_cni.v00 net_forc.v00 net_tg3.v00 qedentv.v00 sata_sat.v03 scsi_fni.v00 scsi_qed.v00 useropts.gz
ata_pata.v05 dell_con.v00 ima_qla4.v00 lsi_mr3.v00 misc_dri.v00 net_i40e.v00 net_vmxn.v00 qedf.v00 sata_sat.v04 scsi_hps.v00 scsi_qla.v00 vsanheal.v00
ata_pata.v06 ehci_ehc.v00 imgdb.tgz lsi_msgp.v00 mtip32xx.v00 net_igb.v00 nmlx4_co.v00 qlnative.v00 sb.v00 scsi_ips.v00 state.tgz vsanmgmt.v00
ata_pata.v07 elxnet.v00 ipmi_ipm.v00 lsu_hp_h.v00 net_bnx2.v00 net_ixgb.v00 nmlx4_en.v00 rste.v00 scsi_aac.v00 scsi_meg.v00 s.v00 vsan.v00
reset-pass-root-esxi-3

Bước 3: xoá mật khẩu trong file shadow của state.tgz

Giờ ta cần thao tác với file hệ thống ESXi đang nằm trong file nén ‘state.tgz‘. Hãy copy file ‘state.tgz‘ ra thư mục tạm ‘/tmp‘, sau đó giải nén liên tục file state.tgzlocal.tgz .

# cp state.tgz /tmp/
# cd /tmp/
# tar xzvf state.tgz
local.tgz
# tar xzvf local.tgz
etc/security/access.conf
etc/vmware/ssl/rui.key
etc/vmware/ssl/rui.crt
etc/vmware/hostd/vmAutoStart.xml
etc/vmware/hostd/pools.xml
etc/vmware/hostd/hostsvc.xml
etc/vmware/configrules
etc/vmware/locker.conf
etc/vmware/lunTimestamps.log
etc/vmware/license.cfg
etc/vmware/vpxa/vpxa.cfg
etc/vmware/rhttpproxy/config.xml
etc/vmware/esx.conf
etc/vmware/.backup.counter
etc/vmware/dvsdata.db
etc/vmsyslog.conf.d/hostd.conf
etc/vmsyslog.conf.d/vpxa.conf
etc/vmsyslog.conf.d/fdm.conf
etc/ssh/ssh_host_dsa_key.pub
etc/ssh/sshd_config
etc/ssh/ssh_host_rsa_key
etc/ssh/ssh_host_rsa_key.pub
etc/ssh/ssh_host_dsa_key
etc/chkconfig.db
etc/keymap
etc/sfcb/repository/root/interop/cim_indicationfilter.idx
etc/sfcb/repository/root/interop/cim_listenerdestinationcimxml.idx
etc/sfcb/repository/root/interop/cim_indicationhandlercimxml.idx
etc/sfcb/repository/root/interop/cim_indicationsubscription.idx
etc/sfcb/repository/root/interop/sfcb_registeredprofile.idx
etc/sfcb/repository/root/interop/sfcb_registeredprofile
etc/sfcb/repository/root/config/omc_config.idx
etc/sfcb/repository/root/config/omc_config
etc/sfcb/repository/root/config/omc_namespaceconfig.idx
etc/sfcb/repository/root/config/omc_namespaceconfig
etc/sfcb/sfcb.cfg
etc/sfcb/uuid
etc/hosts
etc/dhclient-vmk0.leases
etc/random-seed
etc/resolv.conf
etc/vmsyslog.conf
etc/shadow

Di chuyển đến thư mục ‘etc/’ vừa được giải nén ra . Lúc này bạn sẽ tìm thấy file ‘shadow‘ như trên các hệ thống Unix, file này chứa thông tin mật khẩu đã được hash của user trên hệ thống Linux/UNIX có user ‘root‘.

# cd etc
# vi shadow
root:$6$Yr02W8dJ$x0leg7YpspFgywlOUL0Axc47tB6iaYsL2nm5ZgvFcSVCQT8ZBCvvAEAZLFHqUzTPRRt8VSfSOfiGfrwvR7ZTG/:13358:0:99999:7:::
nobody:*:13358:0:99999:7:::
nfsnobody:!!:13358:0:99999:7:::
dcui:*:13358:0:99999:7:::
daemon:*:13358:0:99999:7:::
vpxuser:*:14875:0:99999:7:::

reset-pass-root-esxi-4

Hãy xoá nội dung cột thứ 2 của dòng user root, ngăn cách bởi kí tự ‘:‘ . Lúc này user root mặc định sẽ không có thông tin mật khẩu để login. Nên xem như là login bằng user root không cần mật khẩu.

root::13358:0:99999:7:::
nobody:*:13358:0:99999:7:::
nfsnobody:!!:13358:0:99999:7:::
dcui:*:13358:0:99999:7:::
daemon:*:13358:0:99999:7:::
vpxuser:*:14875:0:99999:7:::
reset-pass-root-esxi-5

Bước 4: nén nội dung thông tin mới thành file ‘state.tgz’

Giờ ta chỉ cần nén lại thư mục chứa file shadow thành local.tgz mới, rồi nén lại thành file state.tgz mới. Thay thế file state.tgz hiện có trên phân vùng /dev/sdb5 đang được mount.

# pwd
/tmp/etc
# cd ..
# pwd
/tmp
# tar czvf local.tgz etc
# tar czvf state.tgz local.tgz
# cp state.tgz /mnt/esxi/
cp: overwrite ‘/mnt/esxi/state.tgz’? y

Sau đó umount phân vùng /dev/sdb5.

# cd /root
# umount /mnt/esxi

Rồi xử lý tiếp file ‘state.tgz‘ recovery/backup ở phân vùng /dev/sdb6/altbootbank‘. Lặp lại xử lý y như từ bước 1 đến bước 4 như ở phân vùng /dev/sdb5 đã làm trên. Sau khi xử lý xong thì hãy reboot lại hệ thống ESXi.

# reboot

Bước 5: login user root / set lại mật khẩu mới

Tới những bước vô cùng dễ dàng rồi. Bạn chỉ cần bỏ boot LiveCD đi, boot vào OS ESXi vào menu DCUI của ESXi. Ấn F2 để đăng nhập user root với ô mật khẩu để rỗng.reset-pass-root-esxi-6

Sau đó vào phần “Configure Password” để set mật khẩu mới.

reset-pass-root-esxi-7

Ở ô “Old Password” bạn để rỗng, còn lại thì điền thông tin mật khẩu mới nhé.

reset-pass-root-esxi-8

Cực kì đơn giản để có thể thực hiện việc reset mật khẩu root trên vSphere ESXi phải không nào. Hãy đảm bảo các thao tác của bạn là cẩn thận, không xoá nhầm, ghi sai nội dung file cấu hình,… để hệ thống ESXi hoạt động ổn định nhé. Nếu có bất kì vấn đề gì thì đừng ngại comment trao đổi cùng ‘Cloudviet.com.vn‘ về các bài viết VMware hoặc ảo hoá nhé.

Logo Cloud Việt

Thông Tin Và Hoạt Động Của Chúng Tôi

Cloud Việt là đơn vị cung cấp dịch vụ TTDL uy tín tại Việt Nam. Với tiêu chí là đặt quyền lợi và trải nghiệm của khách hàng lên hàng đầu để  đem đến dịch vụ tốt nhất.

Trụ sở chính

110/20/41 đường số 30, phường 6, quận Gò Vấp, TPHCM

Ngày làm việc

Thứ 2 - Thứ 6, Hàng tuần

Giờ làm việc

08 : 00 AM - 18 : 00 PM

Email

Support@cloudviet.com.vn

Hotline

0972 710 812