Menginstall Cloud Image CentOS 7 di Virtual Machine Manager

Entahlah, istilah menginstall di sini apakah tepat untuk digunakan atau tidak. Yang jelas begini, saya mengunduh berkas CentOS-7-x86_64-GenericCloud.qcow2.xz dari https://cloud.centos.org/centos/7/images/. Kemudian mengimpor ke virt-manager, lalu saat dijalankan dia minta password. Sedangkan baca di berberapa web, termasuk forum dan milis, memang password rootnya ditiadakan. Dan untuk bisa login diharuskan melakukan sedikit modifikasi (inject ssh key) file qcow2.

Catatan: Pada dasarnya file Cloud Image semacam ini merupakan sistem operasi yang siap pakai. Kita tidak perlu menginstall sistem operasi dari file .iso misalnya untuk menjalankan sistem operasi tertentu. Kita tinggal mengunduh dan menjalankannya pada mesin virtual.

Sebentar, apa itu qcow2? dari Wikipedia1).

<WRAP center round info 80%> qcow is a file format for disk image files used by QEMU, a hosted virtual machine monitor. It stands for “QEMU Copy On Write” and uses a disk storage optimization strategy that delays allocation of storage until it is actually needed. Files in qcow format can contain a variety of disk images which are generally associated with specific guest operating systems. Two versions of the format exist: qcow, and qcow2, which use the .qcow and .qcow2 file extensions, respectively.

qcow2 is an updated version of the qcow format, intended to supersede it. difference with the original is that qcow2 supports multiple snapshots through a new, flexible model for storing snapshots. </WRAP>

Unduh file image CentOS 7 yang terkompress (ukuran lebih kecil).

  wget -c -t 0 https://cloud.centos.org/centos/7/images/CentOS-7-x86_64-GenericCloud.qcow2.xz

Ekstrak file tadi,

  sudo apt install xz-utils
  unxz CentOS-7-x86_64-GenericCloud.qcow2.xz

Perlu dicatat terlebih dahulu bahwa sistem operasi yang saya gunakan di laptop saya adalah Ubuntu Studio 16.04 64 bit. Oiya, karena saya pake virt-manager maka perlu diinstall dulu :

  sudo apt install virt-manager

Setelah terinstall, VMM (Virtual Machine Manager) dapat diakses dari application menu > System > Virtual Machine Manager.

  • Setelah terbuka, klik File > New Virtual Machine,
  • muncul dialog baru create new virtual machine,
  • pilih import exsisting disk image, klik maju/next.
  • Cari file CentOS-7-x86_64-GenericCloud.qcow2 dengan klik tombol browse, tentukan Os Type dan versinya, klik maju/next.
  • tentukan kapasitas RAM yang akan digunakan oleh mesin virtual, karena laptop saya memiliki RAM 3GB, maka mesin virtual saya beri 1GB alias 1024MB, dan core CPU-nya 1, klik maju/next.
  • beri nama dan tentukan jaringan yang akan digunakan. Klik Finish.
  • Selanjutnya, tambahkan interface pada VM yang baru dibuat, sehingga VM memiliki 2 interface, satu NAT dan satu bridge.

Sampai di sini, kita bisa langsung menjalankan VM centos 7. Namun karena password tidak kita miliki, maka langkah berikut perlu dilakukan untuk memberi password pada akun root VM. Caranya dengan melakukan inject pada file qcow. Install paket libguestfs-tools

  sudo apt install libguestfs-tools

Lalu jalankan perintah :

  sudo guestfish --rw -a CentOS-7-x86_64-GenericCloud.qcow2 

Seperti terlihat berikut ini :

sudo guestfish --rw -a CentOS-7-x86_64-GenericCloud.qcow2 
[sudo] password for samsul: 

Welcome to guestfish, the guest filesystem shell for
editing virtual machine filesystems and disk images.

Type: 'help' for help on commands
      'man' to read the manual
      'quit' to quit the shell

><fs> run
 100% ⟦▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒⟧ 00:00
><fs> list-filesystems
/dev/sda1: xfs
><fs> mount /dev/sda1 /
><fs> nano /etc/shadow
nano: unknown command
><fs> vi /etc/shadow

Catatan :

  • Perintah run untuk menjalankan VM,
  • Perintah list-filesystems untuk melihat disk yang digunakan,
  • Perintah mount untuk mount root filesystem
  • Dan perintah vi untuk mengedit file /etc/shadow

Isi file /etc/shadow

root:!!:17200:0:99999:7:::
bin:*:17110:0:99999:7:::
daemon:*:17110:0:99999:7:::
adm:*:17110:0:99999:7:::
lp:*:17110:0:99999:7:::
sync:*:17110:0:99999:7:::
shutdown:*:17110:0:99999:7:::
halt:*:17110:0:99999:7:::
mail:*:17110:0:99999:7:::
operator:*:17110:0:99999:7:::
games:*:17110:0:99999:7:::
ftp:*:17110:0:99999:7:::
nobody:*:17110:0:99999:7:::
systemd-bus-proxy:!!:17200::::::
systemd-network:!!:17200::::::
dbus:!!:17200::::::
polkitd:!!:17200::::::
rpc:!!:17200:0:99999:7:::
tss:!!:17200::::::
rpcuser:!!:17200::::::
nfsnobody:!!:17200::::::
postfix:!!:17200::::::
sshd:!!:17200::::::
chrony:!!:17200::::::
centos:!!:17217:0:99999:7:::

Terlihat bahwa password untuk akun root dinonaktifkan, ditandai dengan simbol !!. Buka terminal berbeda dan jalankan perintah berikut untuk membuat password yang terenkripsi :

  openssl passwd -1 passwordmu

Copy/salin kode yang terbuat dari perintah tersebut, lalu paste/tempel kode tersebut pada /etc/shadow sehingga terlihat seperti berikut :

root:$1$dheL7mfv$dGIrtc/vz0f4VLEX7xxx./:17200:0:99999:7:::
bin:*:17110:0:99999:7:::
daemon:*:17110:0:99999:7:::
................
Catatan : Password tersebut juga dapat kita masukkan/berikan ke user centos (atau user lain yang memiliki akses sudo) untuk alasan keamanan.

Jika ingin melihat tabel partisi saat menjalankan guestfish, gunakan perintah df :

><fs> df
Filesystem     1K-blocks   Used Available Use% Mounted on
/dev/root        4128448 424580   3494156  11% /
tmpfs              97536    280     97256   1% /run
/dev              240788      0    240788   0% /dev
/dev/sda1        8377344 963196   7414148  12% /sysroot

Ketikkan quit untuk keluar dari shell guestfish,

  ><fs> quit

Selanjutnya jalankan VM CentOS 7 yang baru kita modifikasi tersebut. Login dengan akun root atau akun yang telah diberi password tadi. Atur alamat IP dan jalankan service sshd agar dapat di remote dari komputer/laptop kita.

Sekian catatan kali ini, semoga bermanfaat.

Referensi


  • linux/Menginstall.Cloud.Image.Centos.7.di.VMM
  • Terakhir diubah: 9 bulan yang lalu
  • (Perubahan eksternal)