DEV Community

Cover image for Tutorial: Rescue Source Code dari VM Proxmox saat Disk Physical Corrupt / Bad Sector
Mr koala
Mr koala

Posted on

Tutorial: Rescue Source Code dari VM Proxmox saat Disk Physical Corrupt / Bad Sector

Artikel ini berisi panduan langkah demi langkah untuk menyelamatkan folder source code proyek dari dalam Virtual Machine (VM) Proxmox yang gagal di-backup akibat Input/output error (err -5) pada storage fisik.

📌 Topik & Masalah

  • Masalah: Disk fisik/SSD host Proxmox mengalami bad sector. Proses backup VM via vzdump / GUI Proxmox gagal terus di persentase tertentu dengan status Input/output error.
  • Tujuan: Ambil source code aplikasi secara paksa langsung dari partisi VM melalui Shell Proxmox (Host Level) tanpa perlu menyalakan VM.

🚀 Langkah-Langkah Penyelamatan (Step-by-Step)

1. Matikan VM dan Aktifkan Volume Group
Buka terminal/shell host Proxmox (root@proxmox), lalu matikan VM agar disk tidak dalam kondisi terkunci:

qm stop <ID_VM>
vgchange -ay
(Contoh ID VM: 103)
Enter fullscreen mode Exit fullscreen mode

2. Map Partisi Virtual Disk Menggunakan kpartx
Karena file disk VM memiliki tabel partisi di dalamnya, kita perlu memecahnya agar partisi internal terdeteksi oleh host:

apt update && apt install -y kpartx
kpartx -av /dev/pve/vm-<ID_VM>-disk-0
Enter fullscreen mode Exit fullscreen mode

3. Deteksi LVM Internal di Dalam VM
Jika partisi sistem operasi VM dibentuk menggunakan LVM (misal Ubuntu Server bawaan), jalankan perintah berikut untuk mengaktifkan Volume Group milik VM:

vgscan
vgchange -ay
Enter fullscreen mode Exit fullscreen mode

Cek nama mapper baru yang terbentuk:

ls -la /dev/mapper/
Enter fullscreen mode Exit fullscreen mode

Catatan: Cari mapper yang mewakili partisi utama/root OS VM.
Contoh output: /dev/mapper/ubuntu--vg-ubuntu--lv

4. Mount Disk VM secara Read-Only
Buat direktori sementara di Proxmox, lalu sambungkan partisi VM dengan mode Read-Only (-o ro). Parameter ini sangat penting agar sistem tidak dipaksa menulis data yang bisa memicu I/O error tambahan pada disk yang bermasalah.

mkdir -p /mnt/vm_rescue
mount -o ro /dev/mapper/<NAMA_MAPPER_BARU> /mnt/vm_rescue
Enter fullscreen mode Exit fullscreen mode

5. Temukan dan Kompres Folder Source Code
Cek lokasi folder proyek Anda (biasanya di /var/www/ atau di folder home user/home/<username>/):

# Cek isi folder home
ls -la /mnt/vm_rescue/home/<username>
Enter fullscreen mode Exit fullscreen mode

Jika lokasi folder proyek sudah ditemukan, langsung bungkus/kompres folder tersebut menjadi file archive .tar.gz ke direktori penyimpanan Proxmox:

tar -czvf /var/lib/vz/dump/source_code_backup.tar.gz -C /mnt/vm_rescue/home/<username>/<nama_folder_proyek>
Enter fullscreen mode Exit fullscreen mode

6. Lepas Mounting (Cleanup)
Setelah proses kompresi selesai, lepas sambungan mounting agar disk aman:

umount /mnt/vm_rescue
kpartx -dv /dev/pve/vm-<ID_VM>-disk-0
Enter fullscreen mode Exit fullscreen mode

7. Unduh File Archive ke Laptop / PC Lokal
Buka terminal Laptop/PC Lokal Anda (bukan di Proxmox), lalu jalankan perintah scp:

Untuk Komputer Linux / macOS:

scp root@<IP_PROXMOX>:/var/lib/vz/dump/source_code_backup.tar.gz ~/Downloads/

Enter fullscreen mode Exit fullscreen mode

Untuk Komputer Windows (PowerShell):
PowerShell

scp root@<IP_PROXMOX>:/var/lib/vz/dump/source_code_backup.tar.gz $env:USERPROFILE\Downloads\
Enter fullscreen mode Exit fullscreen mode

💡 Ringkasan Alur Cepat

qm stop → kpartx -av → vgchange -ay → mount -o ro → tar -czvf → scp ke Laptop.
Enter fullscreen mode Exit fullscreen mode

Top comments (0)