Forum
Merhabalar
Elimdeki bir sunucunun ikincil disk dosyasında sorun oluştu ve vmware dosyayı mount etmiyor.
Söz konusu olan vmdk dosyası iki parçadan oluşuyor.
700GB-000002.vmdk -> şuanki boyutu 695 Gb
700GB.vmdk -> şuanki boyutu 22 Gb
Bu
dosyalardan 700GB.vmdk dosyasını tek olarak herhangi bir sanal makineye
atayabiliyorum ve sorunsuz bir şekilde içindeki dataya ulaşabiliyorum.
Fakat olması gereken data bu dosyanın içindekiler değil.
700GB-000002.vmdk dosyasını mount etmek istediğimde hata veriyor.
Hata
Mesajı : Error loading disk info for file
"/var/vm/VS03/storage/700GB-000002.vmdk": The parent of this virtual
disk could not be opened.
Ken Kato nun vdk.exe programı ile 700GB-000002.vmdk dosyasını mount edebiliyorum.
Fakat
boyutu büyük olan dosyaları kopyalamada sıkıntı yaşıyorum. Bu sıkıntı
büyük ihtimalle kullandığım vdk programının driverları ile alakalı.
Esas kafamı karıştıran mesele vdk.exe
ile 700GB-000002.vmdk dosyasını mount etmek istediğimde 700GB.vmdk
dosyasını istiyor. İkisi birlikte aynı dizinde iken mount yapıyor.
Mount ederken iki dosyanın timestamp ları birbirinden farklı diye uyarı veriyor.
Burada "http://communities.vmware.com/thread/23014" "pbJalas" ın 3. postunda anlattığı olayla benim yaşadığım olay birebir uyuşuyor. "pbJalas"
yazısında dosyanın timestamp değerini diğer dosya ile aynı değere
getirdiğini ve bundan sonra %99 veriyi kopyalayabildiğini anlatmış.
Benim
şuan istediğim 700GB-000002.vmdk dosyasının timestamp değerini
değiştirmek. Fakat bu dosya yukarıda belirttiğim gibi 695 Gb.
Yine burada "http://communities.vmware.com/thread/29538" "pbJalas" vmdk dosyası ile alakalı birkaç bilgi vermiş.
# file - basedisk.vmdk
# Disk DescriptorFile
version=1
CID=08690745 -> Bu değer dosyanın timestamp değeri oluyor.
parentCID=ffffffff
createType="twoGbMaxExtentSparse"
700GB-000002.vmdk dosyasının CID değerini nasıl değiştirebilirim ? Bunu yapabilirsem dosyayı normal şekilde mount edebilir ve tüm veriye sorunsuz erişebilirim.
Saygılarımla.
Selamlar,
-000002 yazan dosya snapshot dosyası. Bu dosyanın içinde sadece snapshot'tan sonra değişen block'lar bulunur. Bu sebeple tek başına işe yaramaz ancak base disk ile birlikte kullanılabilir. Siz base diski tek başına takıp açtığınız için sizdeki snapshot chain bozulmuş sanırım. CID - (Chain Identifier) değeri her snapshot'un descriptor dosyasında bulunur ve snapshop zincirindeki bir üsteki disk dosyasını işaret eder. Siz de 000002 snapshot descriptor dosyasını açıp Parent-CID değerini base diskin CID'si ile değiştirin. Eğer basediskte değişiklik yaptıysanız çalışmaya da bilir. garantisi yok.
Bunları yapmadan önce çalıştığınız dosyaların yedeğini mutlaka alın...
Bununla ilgili bir video vardı hatta, vmware tarafından yayınlanan...
Merhaba, vm dosyasi snapshot alindiktan sonra, varolan diski okuma moduna alip yeni bir diske yazmaya baslar. eski diske parent diyebiliriz, siz snapshot i silmeden parent edit ederseniz artik child uzerinden devam edemezsiniz. Bu tipki suna benzer, 10 adim yurudunuz ama birisi sizi, sizin haberiniz olmadan tekrar 10 adim geriye atti, ne yaparsiniz :)).
Dolayisiyla, hic bu forumlarda vakit kaybetmeyin, parent diski, snapshot sonrasi actiginiz icin child disk kullanilmaz duruma gelmistir, bu ikisini merge edecek bir tool arastirmaniz daha dogru olacaktir, ayrica parent veya child disk kendi basina mount edilmemeli, edilecekse, fiziksel diskte tum snapshot disklerinin alani kadar bos yer oldugunu dogrulayip, snapshot i silmek gerekir.
Merhaba,
Snapshot dosyasinin adi 700GB-000002.vmdk olduguna gore muhtemelen 2. alinan snapsoht'a aittir. Yani aradaki 700GB-000001.vmdk isimli dosya kayip gibi gozukuyor. Eger boyle bir durum varsa 700GB-000002.vmdk dosyasini parent' i 700GB.vmdk degil bir onceki snapshot deltasi olan 700GB-000001.vmdk dosyasidir.
zinciri tekrar tamamlamak icin soyle bir yol izleyebilirsiniz.
Dosyalarla minimum oynama yapmak icin;
1- 700GB adinda bir VM olusturun, custom secenegiyle ilerleyerek disk olusturmayacaginizi belirtin.
2- olusturdugunuz VM ' i editleyerek elinizdeki 700GB.vmdk dosyasını disk olarak ekleyin.
3- 700GB-000002.vmdk isimli dosyayi rename edin.
4- olusturdugunuz VM kapali iken 2 kez Snapshot alin
5- Snapshotlari aldiginizda 700GB-000001.vmdk ve 700GB-000002.vmdk dosyalari olusacaktir.
6- Yeni olusan 700GB-000002.vmdk dosyasinin ismini tekrar farkli bir isimle degistirin. ismini daha once degistirdiginiz eski dosyayi tekrar 700GB-000002.vmdk olarak adlandirin.
Sunucuyu bu sekilde acmayi deneyin. Eger arada silinen 700GB-000001.vmdk dosyasi varsa buradaki verileri kaybedeceksiniz.
Uzun surelibir Chkdsk isleminin ardindan verilerinizin bir kismina bu sekilde ulasma ihtimaliniz olabilir.
Merhabalar,
Verdiğiniz cevaplar için çok teşekkür ederim.
Şuan itibari ile %100 tüm veriye ulaşabiliyorum.
Aşağıda izlediğim yolu anlatacağım umarım aynı problemi yaşayanlara faydalı olur.
Yukarıda anlattığım gibi iki dosyam var ve bu dosyaların içlerindeki bilgilerde CID ve parentCID değerleri farklı. Ken Kato un vdk.exe programı 700GB-000002.vmdk dosyasını mount ederken timestamp hatası veriyordu. HxD Editörü ile 700GB.vmdk nın CID değerini alarak 700GB-000002.vmdk nın parentCID ve CID değerine yazdım. Bu arada 700GB-000002.vmdk dosyasını açtığımda parentFileNameHint="/var/vm/storage/700GB.vmdk" satırını farkettim. Bu demek oluyorki dosyaların yeri "/var/vm/VS03/storage" değildi.
dosyaların ikisinide "/var/vm/storage/" altına taşıdım ve vmware diski mount edebildi. Burada en başından beri dosyaların yeri yüzünden sorun yaşıyormuşum. Bunu farketmeden 700GB.vmdk dosyasını tek başına mount edince CID değeri değiştiğinden birde CID değerleriyle uğraşmak zorunda kaldım.
Şimdi bu yaşadıklarıma bakarak; eğer "revert snapshot" yaparak diski ilk haline getirirsek bu durumu snapshot diskerinin parentCID değerlerini ilk dosyanınki ile aynı yapıp geriye döndürme imkanımız olabilir mi?