GNU/Linux >> Belajar Linux >  >> Cent OS

Bagaimana cara menggunakan alat libguestfs untuk Mengedit Gambar Disk mesin virtual (VM) di CentOS/RHEL/Fedora?

Pertanyaan: Secara tidak sengaja saya telah menonaktifkan akun 'root' di mesin Virtual CentOS yang berjalan di VMWare. Setelah itu, saya mencoba semua cara yang mungkin untuk memulihkan akun 'root' dan akhirnya memutuskan untuk me-reboot VM dalam mode pengguna tunggal. Sayangnya, VM gagal melakukan booting dalam mode pengguna tunggal dan pesan error menunjukkan bahwa proses booting mengharapkan root akun dan prosesnya terhenti tanpa batas. Di bawah ini adalah tangkapan layar yang menjelaskan skenarionya:

Untuk memperbaiki masalah ini, saya harus mengedit /etc/passwd file dan aktifkan akun root. Untuk itu, saya memerlukan gambar disk Mesin Virtual – dalam kasus saya, VM berjalan di VMWare, jadi saya memerlukan vmdk berkas.

Solusi:

Dalam tutorial ini, saya akan menunjukkan cara menggunakan alat libguestfs untuk mengakses dan mengedit file Disk Image Virtual Machine (VM). Libguestfs adalah library C dengan seperangkat alat untuk melihat dan mengedit file di dalam guest, membuat perubahan pada VM, memantau penggunaan disk, mengkloning VM, memformat disk, mengubah ukuran disk, dan banyak lagi. Alat ini mampu membaca image disk VM dari CD, disk USB, dan juga dari jarak jauh melalui SSH.

Sebelum menggunakan libguestfs alat, bersiaplah dengan file gambar disk mesin virtual Anda. Libguestfs juga mendukung sistem berpemilik seperti VMware dan Hyper-V.

Instal alat libguestfs:

Di CentOS/Fedora/RHEL:

sudo yum install libguestfs-tools

Di Debian/Ubuntu:

sudo apt-get install libguestfs-tools

Seperti yang saya katakan sebelumnya, alat libguestfs dilengkapi dengan banyak perintah seperti guestfish, guestmount, guestunmount, virt-alignment-scan, virt-builder, virt-cat, virt-copy, virt-edit, virt-diff, virt-customize, virt -filesystem, virt-format, virt-get-kernel, virt-inspector, virt-list-filesystems, virt-list-partitions, virt-log, virt-ls, virt-make-fs, virt-p2v, virt-p2v -make-disk, virt-rescue, virt-tar dan banyak lagi. Namun kami akan menggunakan perintah guestfish – yang memungkinkan Anda mengakses dan memodifikasi image mesin virtual.

ikan tamu:

ikan tamu command dapat digunakan sebagai alat shell interaktif dan command-line. Perintah tersebut memungkinkan Anda untuk membuka citra disk dalam mode baca-saja (opsi –ro) dan baca-tulis (opsi –rw).

Caution: Make sure to shutdown the VM before using guesfish to access/modify the image.

Menggunakan guestfish sebagai cangkang interaktif:

# guestfish
Welcome to guestfish, the libguestfs filesystem interactive shell for
editing virtual machine filesystems.
Type: 'help' for help on commands
'man' to read the manual
'quit' to quit the shell

Sekarang mari kita mengakses file gambar vmdk (misalnya test-flat.vmdk ).

><fs> add-ro test-flat.vmdk

Catatan: Cari perintah add-ro yang berarti, menambahkan atau mengakses gambar dalam mode read-only. Jika Anda ingin membuat perubahan pada gambar, maka Anda perlu membuka gambar dengan hak istimewa baca-tulis (kita akan melihatnya nanti).

Selalu jalankan jalankan perintah sebelum mendaftar sistem file dalam gambar disk seperti yang ditunjukkan di bawah ini:

><fs> run
â 25% â¦âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ⧠--:-â 50% â¦âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ⧠00:3â 75% â¦âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ⧠00:1 100% â¦âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ⧠00:00

Perintah di atas akan memakan waktu cukup lama untuk membaca gambar. Setelah selesai, Anda dapat membuat daftar sistem file yang tersedia di disk seperti yang ditunjukkan di bawah ini:

><fs> list-filesystems
/dev/vda1: ext4
/dev/VolGroup/lv_home: ext4
/dev/VolGroup/lv_root: ext4
/dev/VolGroup/lv_swap: swap

Sekarang, saya perlu me-mount /dev/VolGroup/lv_root untuk mengakses /etc/passwd .

><fs> mount /dev/VolGroup/lv_root /

Karena saya telah membuka gambar dalam mode hanya-baca, saya hanya dapat melihat /etc/passwd .

> cat /etc/passwd
::::::::::::::::::::::

Berikut cuplikan lengkapnya:

# guestfish
Welcome to guestfish, the libguestfs filesystem interactive shell for
editing virtual machine filesystems.
Type: 'help' for help on commands
'man' to read the manual
'quit' to quit the shell
><fs> add-ro test-flat.vmdk
><fs> run
â 50% â¦âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ⧠--:-â 75% â¦âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ⧠00:0 100% â¦âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ⧠00:00
><fs> mount /dev/VolGroup/lv_root /
><fs> cat /etc/passwd
::::::::::::::::::::::::::::::
><fs> exit

Menggunakan guestfish sebagai perintah dan mengedit file:

# guestfish --rw --add test-flat.vmdk -i edit /etc/passwd

Cari opsi

  • –rw – untuk membuka image disk VM dalam mode baca-tulis
  • –tambahkan – menambahkan gambar 'test-flat.vmdk'
  • -i – secara otomatis memasang disk dari citra mesin virtual
  • edit – perintah untuk mengedit file

Perintah di atas akan memungkinkan Anda untuk mengedit file langsung dari gambar dan menyimpannya juga.

Beberapa contoh lainnya:

Asumsikan, Anda ingin memperbarui /etc/resolv.conf di tamu, lalu begini cara melakukannya.

# guestfish \
   add disk.vmdk : run : mount /dev/VolGroup/lv_root / : \
   write /etc/resolv.conf "nameserver 8.8.8.8"

Menggunakan guestfish untuk mengakses citra diska jarak jauh menggunakan ssh:

# guestfish -a ssh://somedomain.com/path/to/disk.vmdk

guestfish dapat membantu Anda melakukan keajaiban, jadi sebaiknya lihat halaman bantuannya.

# guestfish -N help

Itu dia. Lihat libguestfs.org untuk informasi lebih lanjut.


Cent OS
  1. Cara Memasang Google Chrome 17 di Fedora 16, CentOS 6 / RHEL 6

  2. CentOS / RHEL 7 :Cara mengekstrak gambar initramfs dan mengedit/melihatnya

  3. Cara Memasang Gambar disk Virtual Qcow2 Tamu yang berisi LVM di Mesin Host KVM

  1. Cara Menginstal Python 3.5 di CentOS/RHEL dan Fedora

  2. [Linux] :Cara mengkonfigurasi yum untuk menggunakan repositori CentOS di mesin RHEL

  3. Bagaimana cara mengekstrak paket 7z di CentOS/RHEL/Fedora?

  1. Cara Mengonfigurasi Antarmuka Jaringan Virtual di RHEL 8 / CentOS 8

  2. CentOS / RHEL :Cara menginstal Open Virtual Machine Tools untuk mesin Virtual yang Di-host di VMWare

  3. Cara Mengonfigurasi Proksi di CentOS/RHEL/Fedora