Proxmox BS: VM yedeğinden dosya kurtarma
Giriş
Bu eğitim, sanal makinenin tamamını dağıtmadan bir VM yedeğinden dosya düzeyinde geri yükleme yapmak için Proxmox Backup Server'ın nasıl kullanılacağını açıklar. Proxmox VE web arayüzündeki Proxmox yedek dosya tarayıcısı ile tek tek dosyaları nasıl alacağınızı ve proxmox-backup-client ile komut satırından Proxmox dosya kurtarmayı nasıl gerçekleştireceğinizi öğreneceksiniz. Bu iş akışı, tam bir VM geri yüklemesi yapmadan Proxmox yedeklerinde bulunan tek tek dosyaları geri yüklemeniz gerektiğinde kullanışlıdır.
Hedef kitle: Orta seviye sistem yöneticileri
Tahmini süre: 20-40 dakika
Nihai hedef: Bu eğitimin sonunda, tam VM'i geri yüklemeden bir Proxmox Backup Server VM yedeğinden belirli dosyaları geri yükleyebileceksiniz.
Ön Koşullar
Başlamadan önce aşağıdakilere sahip olduğunuzdan emin olun:
- Yapılandırılmış bir Proxmox Backup Server depolama alanına sahip çalışan bir Proxmox VE sunucusu.
- Mevcut bir datastore içeren Proxmox Backup Server 3.x veya 4.x.
- PBS datastore içinde saklanan tamamlanmış bir VM yedeği.
- Yedekleri taramak ve dosyaları geri yüklemek için gerekli izinlere sahip olarak Proxmox VE web arayüzüne erişim.
- CLI yöntemi için Proxmox VE sunucusuna shell erişimi.
- Proxmox VE sunucusunda kullanılabilir proxmox-backup-client komutu.
- CLI eşleme yöntemi için root shell erişimi; çünkü loop aygıtı eşleme ve dosya sistemi bağlama işlemleri yükseltilmiş yetkiler gerektirir.
- VM yedeği istemci tarafı şifreleme kullanıyorsa şifreleme anahtarı dosyası.
- Linux dosya sistemleri, bağlama noktaları ve Proxmox VE yedek depolama alanı hakkında temel bilgi.
Proxmox VE web arayüzü, tek dosya kurtarma görevlerinin çoğu için tercih edilen yöntemdir. CLI yöntemi; shell tabanlı erişime, otomasyona veya web arayüzünün pratik olmadığı bir düğümden kurtarmaya ihtiyaç duyduğunuzda kullanışlıdır.
Adım 1: Dosya Düzeyinde Geri Yükleme Seçeneklerini Anlayın
Proxmox Backup Server, Proxmox VE sanal makine yedeklerini blok düzeyinde disk imajı yedekleri olarak saklar. Bu, bir VM yedeğinin genellikle normal bir dizin ağacı değil, drive-scsi0.img.fidx, qemu-server.conf.blob ve client.log.blob gibi dosyalar içerdiği anlamına gelir.
Proxmox VE'de ayrıntılı dosya kurtarma iş akışları için iki pratik seçeneğiniz vardır:
- Yedek snapshot'ını taramak ve dosyaları indirmek için Proxmox VE web arayüzünü kullanın.
- Yedekteki bir VM disk imajını yerel bir loop aygıtına eşlemek için proxmox-backup-client map komutunu kullanın, ardından konuk dosya sistemini salt okunur olarak bağlayın.
Proxmox VE'deki File Restore düğmesi, yedek içeriği için bir dosya tarayıcısı açar. proxmox-backup-client map komutu, bir VM yedek sürücü imajını yerel bir loopback aygıtına eşler ve kurtarma tamamlandıktan sonra unmap ile devam edilmelidir.
Riski tam olarak anlamıyorsanız, kurtarılan bir VM dosya sistemini okuma-yazma modunda bağlamayın. Dosya kurtarma için dosya sistemini salt okunur olarak bağlayın ve dosyaları dışarı kopyalayın.
Adım 2: Proxmox VE Web Arayüzü ile Tek Tek Dosyaları Geri Yükleyin
VM'in tamamını dağıtmadan belirli dosyaları almanın en basit yolunu istediğinizde bu yöntemi kullanın.
Yedek Görünümünü Açın
- Proxmox VE web arayüzünde oturum açın.
- Sol gezinme ağacında VM'i seçin.
- Backup sekmesini açın.
- Ortamınızda birden fazla yedek depolama alanı varsa depolama seçicisinden Proxmox Backup Server depolama alanını seçin.

Seçilen VM için kullanılabilir yedek snapshot'larının bir listesini görmelisiniz.
Proxmox Yedek Dosya Tarayıcısını Açın
- İhtiyacınız olan dosyayı içeren yedek snapshot'ını seçin.
- File Restore düğmesine tıklayın.
- Proxmox VE'nin yedek dosya tarayıcısını açmasını bekleyin.
- Konuk işletim sistemini veya veri birimini içeren VM diskini genişletin.

Artık yedek snapshot'larını Proxmox VE arayüzü üzerinden tarıyorsunuz. Bu görünüm, Proxmox Backup Server dosya geri yükleme iş akışını destekler ve tam bir VM geri yüklemesi yapmadan seçilen verileri kurtarmanıza olanak tanır.
Gerekli Dosyayı İndirin
- Dosyayı içeren dizine gidin.
- Dosyayı seçin.
- Download düğmesine tıklayın.
- Dosyayı iş istasyonunuza kaydedin.

Seçilen dosyayı tarayıcınız aracılığıyla almalısınız. Bu, VM yedeğinden tarayıcı tabanlı dosya düzeyinde geri yüklemeyi tamamlar.
VM'in birden fazla diski varsa, doğru dosya sistemini bulana kadar dosya tarayıcısında her diski kontrol edin. Örneğin işletim sistemi diski drive-scsi0 olabilirken uygulama verileri drive-scsi1 üzerinde bulunabilir.
Adım 3: CLI Ortamını Hazırlayın
PBS datastore yedeklerinden komut satırı aracılığıyla veri geri yüklerken bu yöntemi kullanın.
Kurtarma Değişkenlerini Tanımlayın
Aşağıdaki komutları Proxmox VE sunucusunda çalıştırın. Yer tutucuları ortamınızdaki değerlerle değiştirin.
export PBS_REPOSITORY="<PBS_USER>@<PBS_REALM>@<PBS_SERVER>:<DATASTORE>" export PBS_SNAPSHOT="vm/<VM_ID>/<SNAPSHOT_TIMESTAMP>" export PBS_ARCHIVE="drive-scsi0.img" export RESTORE_MOUNT="/mnt/pbs-file-restore" export RESTORE_TARGET="/root/restored-from-pbs" export PBS_PASSWORD="<PBS_USER_PASSWORD>" export PBS_FINGERPRINT="<PBS_SERVER_FINGERPRINT>"
Örnek değerler:
export PBS_REPOSITORY="root@[email protected]:backup" export PBS_SNAPSHOT="vm/101/2026-06-04T01:30:00Z" export PBS_ARCHIVE="drive-scsi0.img" export RESTORE_MOUNT="/mnt/pbs-file-restore" export RESTORE_TARGET="/root/restored-from-pbs" export PBS_PASSWORD="12345678" export PBS_FINGERPRINT="b1:89:bd:c9:b1:f8:33..."
Değişkenler; PBS deposunu, VM yedek snapshot'ını, eşlenecek disk arşivini, geçici bağlama noktasını ve yerel kurtarma hedefini tanımlar. PBS_PASSWORD ve PBS_FINGERPRINT ortam değişkenlerini ayarlayın. Sertifika parmak izini (fingerprint) Proxmox Backup Server üzerinde proxmox-backup-manager cert info komutunu çalıştırarak alın.
İlk bağlantı sırasında login komutu, sertifika parmak izini onaylamanızı ve parolayı girmenizi etkileşimli olarak ister. Bu değişkenler olmadan, otomatik komutlar parmak izi eksik olduğunda certificate validation failed hatasıyla, parola verilmediğinde ise no password input mechanism available hatasıyla başarısız olur.
Proxmox Backup Server'da Oturum Açın
Oturum açma komutunu çalıştırın:
proxmox-backup-client login --repository "$PBS_REPOSITORY"
Beklenen çıktı:
Password:
PBS kullanıcısının parolasını girin. Kimlik doğrulama başarılı olursa istemci geçici bir bilet (ticket) saklar.
Bir API token'ı kullanıyorsanız PBS_PASSWORD değişkenini yalnızca geçerli shell oturumu için ayarlayın ve kurtarma işleminden sonra unset ile kaldırın. Dosya izinlerini korumadığınız sürece token gizli anahtarlarını shell geçmişinde veya betiklerde saklamayın.
Adım 4: VM Yedek Snapshot'ını ve Disk Arşivini Belirleyin
PBS deposundaki yedek gruplarını listeleyin:
proxmox-backup-client list --repository "$PBS_REPOSITORY"
Örnek çıktı: yedek tablosu.
VM grubunun snapshot'larını listeleyin:
proxmox-backup-client snapshot list vm/<VM_ID> \ --repository "$PBS_REPOSITORY"
Örnek çıktı: snapshot tablosu.
Seçilen snapshot'taki dosyaları listeleyin:
proxmox-backup-client snapshot files "$PBS_SNAPSHOT" \ --repository "$PBS_REPOSITORY"
Örnek çıktı:
client.log.blob drive-scsi0.img.fidx index.json.blob qemu-server.conf.blob
Bir VM disk arşivini eşlerken arşiv adını .fidx uzantısı olmadan kullanın. Örneğin drive-scsi0.img kullanın, drive-scsi0.img.fidx kullanmayın.
Adım 5: VM Yedek Diskini Bir Loop Aygıtına Eşleyin
Geri yükleme dizinlerini oluşturun:
mkdir -p "$RESTORE_MOUNT" "$RESTORE_TARGET"
VM disk imajını PBS'den eşleyin:
proxmox-backup-client map "$PBS_SNAPSHOT" "$PBS_ARCHIVE" \ --repository "$PBS_REPOSITORY"
Örnek çıktı:
/dev/loop0
Döndürülen loop aygıtını bir değişkende saklayın:
export LOOP_DEVICE="/dev/loop0"
map komutu, bir VM yedek sürücü imajını yerel bir loopback aygıtına eşler.
Bu CLI yöntemini yalnızca güvenilir yedeklerle kullanın. Bağlanmış bir dosya sistemi kötü amaçlı yollar, özel dosyalar veya beklenmedik meta veriler içerebilir.
Adım 6: Eşlenen Diski İnceleyin
Bölümleri ve dosya sistemlerini listeleyin:
lsblk -f "$LOOP_DEVICE"
Örnek çıktı:
NAME FSTYPE LABEL UUID MOUNTPOINTS loop0 ├─loop0p1 vfat 1111-2222 └─loop0p2 ext4 aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee
Bölümler görünmüyorsa çekirdekten bölüm tablosunu okumasını isteyin:
partx -a "$LOOP_DEVICE"
Ardından tekrar kontrol edin:
lsblk -f "$LOOP_DEVICE"
Artık /dev/loop0p1 ve /dev/loop0p2 gibi bölüm aygıtlarını görmelisiniz.
Linux konukları genellikle ext4, XFS veya Logical Volume Manager kullanır. Windows konukları genellikle NTFS kullanır. Web arayüzü, dosya tarayıcısı iş akışının daha büyük bir bölümünü sizin yerinize yönettiği için Windows dosya kurtarma işlemlerinde genellikle daha kolaydır.
Adım 7: Konuk Dosya Sistemini Salt Okunur Olarak Bağlayın
İhtiyacınız olan dosyaları içeren bölümü seçin. Bu örnekte Linux kök dosya sistemi /dev/loop0p2'dir.
Salt okunur olarak bağlayın:
mount -o ro /dev/loop0p2 "$RESTORE_MOUNT"
Beklenen çıktı: Bağlama başarılı olduğunda komut hiçbir çıktı döndürmemelidir.
Bağlanan dosya sistemini kontrol edin:
ls "$RESTORE_MOUNT"
Örnek çıktı:
bin boot etc home root usr var
Artık sanal makinenin tamamını geri yüklemeden, Proxmox yedeklerinde bulunan tek tek dosyaları geri yüklemek için komut satırını kullanıyorsunuz.
Konuk LVM Kullanıyorsa Bir LVM Birimini Bağlayın
lsblk -f çıktısı LVM2_member gösteriyorsa birim gruplarını tarayın:
vgscan --mknodes
Örnek çıktı:
Found volume group "ubuntu-vg" using metadata type lvm2
Birim grubunu etkinleştirin:
vgchange -ay ubuntu-vg
Mantıksal birimleri listeleyin:
lvs
Örnek çıktı:
LV VG Attr LSize ubuntu-lv ubuntu-vg -wi-a----- 50.00g
lvs çıktısı, yalnızca ubuntu-vg gibi konuk birim grubunu değil, Proxmox VE sunucusunda algılanan tüm mantıksal birimleri listeler. Ayrıca hipervizörün pve birim grubundaki kendi birimlerini de içerebilir; bunlar arasında root, swap, data ve sanal makine diskleri tarafından kullanılan mantıksal birimler bulunur.
Mantıksal birimi salt okunur olarak bağlayın:
mount -o ro /dev/ubuntu-vg/ubuntu-lv "$RESTORE_MOUNT"
Artık geri yüklenen konuk dosya sistemine $RESTORE_MOUNT altında göz atabilmelisiniz.
Adım 8: Belirli Dosyaları Yedekten Dışarı Kopyalayın
Kurtarılan dosyalar için yerel bir dizin oluşturun:
mkdir -p "$RESTORE_TARGET"
Tek bir dosyayı kopyalayın:
cp -a "$RESTORE_MOUNT/etc/hostname" "$RESTORE_TARGET/"
Beklenen çıktı: Dosya başarıyla kopyalandığında komut hiçbir çıktı döndürmemelidir.
Bir dizini kopyalayın:
rsync -a "$RESTORE_MOUNT/var/www/html/" \ "$RESTORE_TARGET/html/"
Beklenen çıktı: Dizin başarıyla kopyalandığında komut hiçbir çıktı döndürmemelidir.
Kopyalanan dosyaları doğrulayın:
find "$RESTORE_TARGET" -maxdepth 3 -type f
Örnek çıktı:
/root/restored-from-pbs/hostname /root/restored-from-pbs/html/index.html
Kurtarılan kopyada izinleri, sahipliği, zaman damgalarını ve sembolik bağlantıları korumak istediğinizde düz cp yerine rsync -a kullanın.
Adım 9: pxar ile Dosya Tabanlı Bir PBS Yedeğinden Dosyaları Geri Yükleyin
Bu adım, VM dosya düzeyinde geri yükleme için isteğe bağlıdır; ancak yedek snapshot'ı root.pxar gibi bir dosya arşivi içerdiğinde kullanışlıdır.
Snapshot'taki dosyaları listeleyin:
proxmox-backup-client snapshot files "$PBS_SNAPSHOT" \ --repository "$PBS_REPOSITORY"
Örnek çıktı:
catalog.pcat1.didx root.pxar.didx
Etkileşimli geri yükleme shell'ini açın:
proxmox-backup-client catalog shell "$PBS_SNAPSHOT" root.pxar \ --repository "$PBS_REPOSITORY"
Shell içinde dizinleri listeleyin:
pxar:/ > ls
Örnek çıktı:
etc home root var
Bir dosya seçin:
pxar:/ > select /etc/hostname
Seçilen dosyaları geri yükleyin:
pxar:/ > restore-selected /root/restored-from-pxar
Shell'den çıkın:
pxar:/ > exit
Dosya tabanlı yedekler için pxar yöntemini kullanın. VM imaj yedekleri için map yöntemini kullanın.
Adım 10: CLI Geri Yükleme Oturumunu Temizleyin
Konuk dosya sisteminin bağlantısını kaldırın:
umount "$RESTORE_MOUNT"
Bir LVM birim grubunu etkinleştirdiyseniz, bağlantıyı kaldırdıktan sonra devre dışı bırakın:
vgchange -an ubuntu-vg
partx ile oluşturduysanız bölüm eşlemelerini kaldırın:
partx -d "$LOOP_DEVICE"
PBS loop aygıtının eşlemesini kaldırın:
proxmox-backup-client unmap "$LOOP_DEVICE"
Beklenen çıktı: Loop aygıtının eşlemesi başarıyla kaldırıldığında komut hiçbir çıktı döndürmemelidir.
Artık ihtiyacınız yoksa geçici bağlama dizinlerini kaldırın:
rmdir "$RESTORE_MOUNT"
Hassas ortam değişkenlerini kaldırın:
unset PBS_PASSWORD unset PBS_REPOSITORY unset PBS_SNAPSHOT unset PBS_ARCHIVE unset LOOP_DEVICE
Yerel kurtarma ortamını temizlediniz.
Doğrulama
Geri yüklenen dosyaların var olduğunu doğrulayın:
ls -la "$RESTORE_TARGET"
Örnek çıktı:
total 12 drwxr-xr-x 3 root root 4096 Jun 4 02:10 . drwx------ 10 root root 4096 Jun 4 02:10 .. -rw-r--r-- 1 root root 12 Jun 4 01:00 hostname
Uygun olduğunda dosya içeriklerini karşılaştırın:
cat "$RESTORE_TARGET/hostname"
Örnek çıktı:
app-vm-01
Geri yüklenen kopyanın bağlanmış yedek dosya sisteminin dışında olduğunu doğrulayın:
realpath "$RESTORE_TARGET"
Örnek çıktı:
/root/restored-from-pbs
Temizlikten sonra hiçbir PBS loop eşlemesinin kalmadığını kontrol edin:
losetup -a | grep pbs-loopdev || true
Beklenen çıktı: Komut hiçbir çıktı döndürmüyorsa proxmox-backup loop eşlemesi kalmamıştır.
Değişiklikleri Geri Alma
Bu eğitim, orijinal VM yedeğini veya PBS datastore'unu değiştirmez. Web arayüzü yöntemi dosyaları yalnızca iş istasyonunuza indirir. CLI yöntemi geçici loop eşlemeleri, bağlama noktaları ve kurtarılan dosyaların yerel kopyalarını oluşturur.
Bu bölüm, prosedürden erken çıkmak için Adım 10'a bir alternatif sunar. Adım 10'u tamamladıktan sonra uygulamayın.
CLI kurtarma ortamını geri almak için şunu çalıştırın:
umount "$RESTORE_MOUNT" proxmox-backup-client unmap "$LOOP_DEVICE" rm -rf "$RESTORE_TARGET" rmdir "$RESTORE_MOUNT"
rm -rf "$RESTORE_TARGET" komutu, kurtarılan kopyayı Proxmox VE sunucusundan siler. Geri yüklenen dosyalara hâlâ ihtiyacınız varsa bu komutu çalıştırmayın.
Bir konuk LVM birim grubunu etkinleştirdiyseniz devre dışı bırakın:
vgchange -an ubuntu-vg
Bölüm eşlemelerini elle eklediyseniz kaldırın:
partx -d "$LOOP_DEVICE"
Sorun Giderme
File Restore Düğmesi Eksik
Yerel bir ISO veya imaj depolama alanında değil, PBS depolama alanındaki bir yedek snapshot'ını seçtiğinizi doğrulayın. Ayrıca hesabınızın yedek içeriğine göz atmak için yeterli yetkilere sahip olduğunu doğrulayın.
Web Dosya Tarayıcısı Dosya Sistemini Okuyamıyor
Konuk dosya sistemi desteklenmiyor, VM içinde şifrelenmiş, hasarlı olabilir veya LVM, RAID ya da başka bir depolama katmanı içinde bulunabilir. Bölümleri lsblk, blkid, vgscan ve dosya sistemine özgü araçlarla elle inceleyebilmek için CLI yöntemini deneyin.
proxmox-backup-client map Kimlik Doğrulama Hatalarıyla Başarısız Oluyor
Depo dizesini ve kimlik bilgilerini kontrol edin:
echo "$PBS_REPOSITORY" proxmox-backup-client login --repository "$PBS_REPOSITORY"
Beklenen depo biçimi:
<PBS_USER>@<PBS_REALM>@<PBS_SERVER>:<DATASTORE>
Bir namespace kullanıyorsanız ilgili proxmox-backup-client komutlarına --ns ekleyin.
Yedek Şifrelenmiş
Yedeği eşlerken anahtar dosyasını belirtin:
proxmox-backup-client map "$PBS_SNAPSHOT" "$PBS_ARCHIVE" \ --repository "$PBS_REPOSITORY" \ --keyfile <PATH_TO_ENCRYPTION_KEY>
Örnek çıktı:
/dev/loop0
Bölüm Aygıtları Görünmüyor
Şunu çalıştırın:
partx -a "$LOOP_DEVICE" lsblk -f "$LOOP_DEVICE"
Disk LVM kullanıyorsa şunu çalıştırın:
vgscan --mknodes lvs
Disk yazılım RAID, konuk içinde ZFS veya tam disk şifrelemesi kullanıyorsa uygun konuk depolama araçlarını kullanın ve mümkün olduğunda kurtarılan dosyaları salt okunur olarak bağlayın.
Bağlama Yanlış Dosya Sistemi Türü Hatasıyla Başarısız Oluyor
Dosya sistemi türünü kontrol edin:
blkid
Örnek çıktı:
/dev/loop0p2: UUID="..." TYPE="ext4"
Ardından gerekirse doğru türle bağlayın:
mount -t ext4 -o ro /dev/loop0p2 "$RESTORE_MOUNT"
Dosya Kopyalama Yanlış Sahipliği Koruyor
Bağlanmış bir konuk dosya sisteminden dosyaları root olarak kopyalarken sahiplik, konuktaki sayısal kullanıcı kimliklerine başvurabilir. Bu beklenen bir durumdur. Meta verileri sonraki incelemeler için korumak üzere rsync -a kullanın veya yalnızca dosya içeriğine ihtiyacınız varsa sahipliği korumadan kopyalayın.
Sonuç
VM'in tamamını dağıtmadan bir Proxmox Backup Server VM yedeğinden tek tek dosyaları geri yüklediniz. Web arayüzü yöntemi, Proxmox Backup Server dosya geri yükleme görevlerinin çoğu için en hızlı yoldur; CLI yöntemi ise gelişmiş Proxmox dosya kurtarma ve dosya sistemi incelemesi için hassas kontrol sağlar. Rutin işlemlerde önce Proxmox VE File Restore iş akışını kullanın; bir PBS datastore'undan daha derin komut satırı kurtarmasına ihtiyaç duyduğunuzda proxmox-backup-client map komutunu kullanın.
Sonraki Adımlar
Kesin PBS depo adlarını, namespace'leri, VM kimliklerini, şifreleme anahtarının saklama konumunu ve geri yükleme doğrulama kontrol listesini içeren dahili kurtarma prosedürünüzü belgelemeyi düşünün. Ayrıca dosya düzeyinde geri yüklemeyi yedek doğrulamasının bir parçası olarak düzenli aralıklarla test edebilirsiniz; çünkü bir yedek, yalnızca ihtiyacınız olan verileri kurtarabiliyorsanız işe yarar.
Doküman Sürümü: 1.0
Son Güncelleme: Haziran 2026
Sahibi: Teknik Dokümantasyon Ekibi