Menyelamatkan VM yang tidak dapat diakses


Jika VM Linux Anda tidak dapat diakses karena alasan apa pun, Anda dapat mencoba menyelamatkan VM menggunakan langkah-langkah berikut.

Peran yang diperlukan

Untuk mendapatkan izin yang Anda perlukan demi menyelamatkan VM, minta administrator untuk memberi Anda peran IAM berikut pada project:

Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses.

Peran yang telah ditetapkan ini berisi izin yang diperlukan untuk menyelamatkan VM. Untuk melihat izin pasti yang diperlukan, luaskan bagian Izin yang diperlukan:

Izin yang diperlukan

Izin berikut diperlukan untuk menyelamatkan VM:

  • compute.instances.create di project
  • compute.disks.create di project
  • compute.instances.get di project
  • compute.disks.createSnapshot pada disk
  • compute.instances.attachDisk pada VM baru
  • compute.disks.use pada disk
  • compute.instances.start pada VM baru dan yang tidak dapat diakses
  • compute.instances.stop pada VM baru dan yang tidak dapat diakses

Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran yang telah ditetapkan lainnya.

Menyelamatkan VM

Jika tidak dapat terhubung ke VM, atau boot disk penuh, Anda harus membuat VM sementara untuk menyelamatkan VM yang tidak dapat diakses.

  1. (Opsional) Hentikan VM yang tidak dapat diakses.
  2. Buat snapshot dari boot disk VM yang tidak dapat diakses.
  3. Buat VM sementara menggunakan image publik yang terdekat dengan OS VM yang tidak dapat diakses.
  4. Periksa apakah Anda dapat terhubung ke VM sementara menggunakan SSH.
  5. Tambahkan disk tambahan ke VM sementara dengan mengikuti langkah-langkah berikut:

    1. Di Konsol Google Cloud, buka halaman VM instances.

      Buka instance VM

    2. Klik nama VM sementara yang Anda buat.

    3. Klik Edit.

    4. Di bagian Additional disks, klik Add new disk, lalu lakukan hal berikut:

      1. Tambahkan nama disk, seperti my-recovery-disk
      2. Untuk Source type, pilih tab Snapshot.
      3. Di menu drop-down Source snapshot, pilih snapshot VM sumber yang Anda buat sebelumnya dalam langkah-langkah ini.
      4. Klik Done.
    5. Klik Simpan.

  6. Hubungkan ke VM sementara menggunakan SSH:

  7. Jalankan perintah berikut:

    ls -l /dev/disk/by-id/google-*

    Outputnya akan mirip dengan berikut ini:

      /dev/disk/by-id/google-my-vm -> ../../sda
      /dev/disk/by-id/google-my-vm-part1 -> ../../sda1
      /dev/disk/by-id/google-my-vm-part14 -> ../../sda14
      /dev/disk/by-id/google-my-vm-part15 -> ../../sda15
      /dev/disk/by-id/google-my-recovery-disk -> ../../sdb
      /dev/disk/by-id/google-my-recovery-disk-part1 -> ../../sdb1
      /dev/disk/by-id/google-my-recovery-disk-part2 -> ../../sdb2
      /dev/disk/by-id/google-my-recovery-disk-part5 -> ../../sdb5
    

    Gunakan symlink (/dev/disk/by-id/google-my-recovery-disk-partN) untuk menemukan perangkat dan partisi dasar untuk disk yang baru ditambahkan, misalnya /dev/sdb1.

    Symlink untuk disk adalah google-DISK_NAME atau, jika Anda menentukan nama perangkat khusus untuk disk, google-DEVICE_NAME. Catat nama perangkat yang diarahkan symlink disk baru.

  8. Buat direktori pemasangan di /mnt/newdisk:

    sudo mkdir /mnt/newdisk

  9. Instal partisi disk tambahan ke direktori pemasangan /mnt/newdisk:

     sudo mount -o discard,defaults DISK_NAME /mnt/newdisk

    Ganti DISK_NAME dengan nama perangkat yang Anda catat sebelumnya dalam langkah-langkah ini — misalnya /dev/sdb1.

    Jika Anda melihat error Filesystem has duplicate UUID XXXXXX - can't mount, mount: /mnt/newdisk: wrong fs type, bad option, atau bad superblock on /dev/sdb, gunakan perintah berikut:

     sudo mount -o nouuid DISK_NAME /mnt/newdisk

    Sistem file VM yang tidak dapat diakses kini terpasang di /mnt/newdisk. Anda dapat menjelajahi sistem file, mengubah file konfigurasi, memperbaiki masalah, atau mengambil data.

Kembalikan perubahan dan lakukan lagi booting VM yang tidak dapat diakses

Setelah masalah diperbaiki atau data diambil, Anda harus mengembalikan VM yang sebenarnya. Lakukan langkah-langkah berikut untuk memulihkan VM asli:

  1. Lepaskan disk tambahan yang terpasang di /mnt/newdisk di VM sementara:

     cd ~
     sudo umount /mnt/newdisk

  2. Di konsol Google Cloud, buka halaman Instance VM.

    Buka VM instances

    1. Pilih VM sementara yang Anda buat.

    2. Klik Edit.

    3. Di bagian Additional disks, klik untuk disk yang dibuat pada langkah sebelumnya untuk melepaskan disk tambahan dari VM sementara.

    4. Klik Simpan.

  3. Buka halaman Instance VM di Konsol Google Cloud.

    Buka instance VM

    1. Jika VM yang tidak dapat diakses masih berjalan, hentikan VM.

    2. Klik nama VM yang baru saja Anda hentikan, lalu klik Edit.

    3. Di bagian Boot disk, klik Detach book disk untuk melepaskan boot disk yang keluar dari VM yang tidak dapat diakses.

    4. Selanjutnya, klik CONFIGURE BOOT DISK untuk memasang disk yang telah Anda buat dan perbaiki sebelumnya di Rescue a VM pada halaman ini.

      1. Di bagian Boot Disk, klik tab Existing disks.
      2. Di menu drop-down, pilih disk yang Anda buat di bagian sebelumnya, misalnya my-recovery-disk.
      3. Klik Pilih, lalu klik Simpan.
    5. Mulai VM.

  4. Sekarang Anda dapat terhubung ke VM menggunakan SSH.