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:
-
Compute Instance Admin (v1) (
roles/compute.instanceAdmin.v1
) -
VM yang menggunakan akun layanan:
Pengguna akun layanan (
roles/iam.serviceAccountUser
)
Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.
Peran bawaan ini berisi izin yang diperlukan untuk menyelamatkan VM. Untuk melihat izin yang benar-benar 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 bawaan 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.
- (Opsional) Hentikan VM yang tidak dapat diakses.
- Buat snapshot dari boot disk VM yang tidak dapat diakses. Jika sistem file root dibagi di beberapa disk, Anda harus membuat snapshot setiap disk.
- Buat VM sementara menggunakan image publik yang terdekat dengan OS VM yang tidak dapat diakses. Dalam beberapa kasus, kebijakan image tepercaya mungkin membatasi Anda untuk membuat boot disk dari image publik. Dalam kasus tersebut, Anda harus meminta administrator untuk mencabut pembatasan ini sementara waktu sebelum Anda dapat membuat VM penyelamatan. Lihat Menetapkan batasan akses image untuk mengetahui informasi selengkapnya.
Untuk setiap snapshot disk boot VM yang tidak dapat diakses yang sebelumnya Anda buat, buat disk baru dari snapshot dan pasang ke VM penyelamatan dengan melakukan tindakan berikut:
Di konsol Google Cloud, buka halaman Instance VM.
Klik nama VM sementara yang Anda buat.
Klik
Edit.Di bagian Additional disks, klik
Add new disk, lalu lakukan hal berikut:- Tambahkan nama disk, seperti my-recovery-disk
- Untuk Source type, pilih tab Snapshot.
- Di menu drop-down Source snapshot, pilih snapshot VM sumber yang Anda buat sebelumnya dalam langkah-langkah ini.
- Klik Done.
Klik Simpan.
Hubungkan ke VM sementara menggunakan SSH.
Identifikasi nama setiap disk yang sebelumnya Anda lampirkan ke VM dengan menjalankan perintah berikut:
lsblk -d -o NAME,SERIAL
Outputnya mirip dengan hal berikut ini:
NAME SERIAL sda rescue-vm sdb my-recovery-disk
Dalam contoh ini,
rescue-vm
adalah disk booting VM penyelamatan danmy-recovery-disk
adalah disk booting dari snapshot VM yang tidak dapat diakses. PerhatikanNAME
VM yang tidak dapat diakses untuk digunakan di langkah berikutnya.Untuk setiap disk yang sebelumnya Anda pasang ke VM, lakukan hal berikut:
Identifikasi sistem file setiap partisi dengan menjalankan perintah berikut:
fdisk -l /dev/NAME -o Device,Size,Type
Ganti
NAME
dengan nama disk booting VM yang tidak dapat diakses dari langkah sebelumnya. Dalam contoh ini, namanya adalahsdb
.Outputnya mirip dengan hal berikut ini:
Disk /dev/sdb: 10 GiB, 10737418240 bytes, 20971520 sectors Disk model: PersistentDisk Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disklabel type: gpt Disk identifier: B31430F1-F041-4555-96B9-B2F43DC057AD Device Size Type /dev/sdb1 2M BIOS boot /dev/sdb2 20M EFI System /dev/sdb3 10G Linux filesystem
Kolom
Type
mencantumkan sistem file setiap partisi. Jika jenis sistem file tidak ada untuk partisi apa pun, jalankan perintah berikut:file -sL /dev/PARTITION_NAME
Ganti
NAME
dengan nama partisi.Outputnya berbeda-beda bergantung pada jenis sistem file:
Tidak ada sistem file: Jika output hanya menampilkan
data
, partisi tidak berisi sistem file. Contoh output:/dev/sdb1: data
Sistem file EFI: Jika output menjelaskan sektor booting DOS/MBR, partisi memiliki sistem file EFI. Contoh output:
dev/sdb2: DOS/MBR boot sector, code offset 0x3c+2, OEM-ID "mkfs.fat", sectors/cluster 4, reserved sectors 4, root entries 512, sectors 40960 (volumes <=32 MB), Media descriptor 0xf8, sectors/FAT 40, sectors/ track 32, heads 64, serial number 0xf2af2664, label: "EFI ", FAT (16 bit)
Sistem file Linux: Jika output menjelaskan data sistem file, partisi adalah sistem file Linux. Contoh output:
/dev/sdb3: SGI XFS filesystem data (blksz 4096, inosz 512, v2 dirs)
Perhatikan nama partisi sistem file Linux.
Buat direktori pemasangan di
/rescue
:sudo mkdir /rescue
Pasang partisi sistem file Linux ke
/rescue
:sudo mount PARTITION_NAME /rescue
Ganti PARTITION_NAME dengan nama sistem file Linux yang Anda catat sebelumnya.
Jika ingin mengubah direktori root sistem file menggunakan perintah
chroot
, Anda juga harus memasang sistem file virtual dan perangkat dengan menjalankan perintah berikut:sudo mount -t proc /proc /rescue/proc sudo mount -t sysfs /sys /rescue/sys sudo mount -o bind /dev /rescue/dev sudo mount -o bind /dev/pts /rescue/dev/pts sudo mount -o bind /run /rescue/run
Sistem file disk booting yang tidak dapat diakses kini terpasang di
/rescue
. 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:
Lepaskan disk tambahan yang terpasang di
/rescue
di VM sementara:cd ~ sudo umount /rescue
Di konsol Google Cloud, buka halaman Instance VM.
Pilih VM sementara yang Anda buat.
Klik
Edit.Di bagian Additional disks, klik
untuk disk yang dibuat pada langkah sebelumnya untuk melepaskan disk tambahan dari VM sementara.Klik Simpan.
Buka halaman Instance VM di Konsol Google Cloud.
Jika VM yang tidak dapat diakses masih berjalan, hentikan VM.
Klik nama VM yang baru saja Anda hentikan, lalu klik
Edit.Di bagian Boot disk, klik
Detach book disk untuk melepaskan boot disk yang keluar dari VM yang tidak dapat diakses.Selanjutnya, klik Rescue a VM pada halaman ini.
CONFIGURE BOOT DISK untuk memasang disk yang telah Anda buat dan perbaiki sebelumnya di- Di bagian Boot Disk, klik tab Existing disks.
- Di menu drop-down, pilih disk yang Anda buat di bagian sebelumnya, misalnya
my-recovery-disk
. - Klik Pilih, lalu klik Simpan.
Sekarang Anda dapat terhubung ke VM menggunakan SSH.