VHD Dosyalarını Fiziksel Sabit Diske Kopyalamak için DD Komutu Nasıl Kullanılır



Sorunları Ortadan Kaldırmak Için Enstrümanımızı Deneyin

Sanal Sabit Disk (VHD) dosyaları, VirtualBox ve diğer bazı sanal x86 / x86_64 emülatörlerinde fiziksel ortam kullanımını taklit eden dev dosyalardır. Bu, Linux dağıtımınız içinde Windows, OS X, MS-DOS, FreeBSD, OpenBSD, OS / 2 veya hatta diğer Linux sürümlerini çalıştırmanıza izin verir. Bu dosyalar, aynısını bir ISO ile yapmanızı sağlayan dd komutu aracılığıyla içeriklerini doğrudan fiziksel bir diske yazmanıza izin vermez, ancak bunu yapmanın bir yolu vardır. Bazı kılavuzlar VHD dosyasını bir ISO'ya dönüştürmenizi gerektirse de, VirtualBox'ı Linux'un herhangi bir modern sürümünde çalıştırıyorsanız bunu yapmanız gerekmez. QEMU kullanıcılarının da bir çıkış yolu var, ancak daha fazla oyun oynamayı gerektiriyor.



Üzerinde çalışacağınız sürücü veya bölümlerin hiçbirinin önyükleme yapacağınız disk olmadığından emin olmanız gerekir. Bu örnek için az önce bölümlenmiş bir NAND bellek kullandık, ancak başka türlü yapamayacaksanız, canlı bir DVD veya USB önyükleme kullanmak isteyebilirsiniz. Söz konusu makineyi hangi yolla başlattığınıza bakılmaksızın, terminal programınızı Ctrl, Alt ve T tuşlarını basılı tutarak, Ubuntu Dash üzerinde arayarak veya Xfce4 veya LXDE'deki Sistem Araçları alt menülerinden açarak başlatın.



Yöntem 1: VBoxManage'ı Komut İsteminden Kullanma

Bunu yapmanın en kolay yolu, geleneksel bir VirtualBox kurulumu kullanmaktır. Öncelikle kaybetmekten endişe duyduğunuz tüm verileri yedeklediğinizden emin olun, çünkü hedefin fiziksel donanımındaki herhangi bir veriyi yok ederken, aynı zamanda işlem sırasında VHD veya VHDX dosyasına bir şeyler de yapabilirsiniz. Bu, diğer yöntem için olduğu kadar, bu kadar yıkıcı olan komutları içeren her şey için de geçerlidir.



Her şeyin güvenli olduğundan ve hedef sürücünün takılı olmadığından ancak yine de makineye bağlı olduğundan emin olduktan sonra, hala takmış olduğunuz ancak takılmamış veya hatta üzerindeki her şeyi kaybedeceğiniz için ham bir sabit disk deyin. süreçte koş VBoxManage klonehd freeBSD.VHDX –format RAW freeBSD.RAW freeBSD.VHDX'i sanal sabit diskinizle değiştirirken. Test amacıyla FreeBSD'nin biraz ılımlı kurulumuna sahip sanal bir sabit disk dosyamız vardı, dolayısıyla adı.

Bu komut biter bitmez çalıştır sudo dd if = freeBSD.RAW / = / dev / sde , RAW dosyasının adını yeni oluşturduğunuz RAW ile ve sde blok cihazını gerçekten ilgilendiğiniz cihazla değiştirerek. Emin değilseniz her zaman sudo fdisk -l doğru bölüm adını bildiğinizden emin olmak için. Dd'yi başka herhangi bir şey için kullanmakta olduğu gibi, yanlış cihaza yazmak istemezsiniz.

Daha küçük bir cihaza büyük bir dosya yazmaya çalışmanız gibi, cihazda boş alan kalmadığıyla ilgili bir hata alabilirsiniz, ancak bu testlerde sorunlara neden olmadı. Görünüşe göre bu işlem fazladan sıfırlar ekliyor. Aksi takdirde, sanal diski bir fiziksel diske yalnızca iki adımda, en az yanıltma ile kopyalayabildiniz.



Yöntem 2: QEMU Disk Ağı Engelleme Aygıtı Sunucusu Komutu ile

Yalnızca Quick Emulator (QEMU) sanallaştırma sistemine erişimi olan kullanıcılar, VBoxManage komutuna erişimi olanlara göre biraz daha karmaşık bir prosedürle uğraşmak zorunda kalacaktır. Komut isteminde çalıştırın sudo modprobe nbd bunu takiben qemu-nbd -r -c / dev / ndb0 -f vpc ourTest.vhd , dosya adı üzerinde çalıştığınız gerçek dosya adını yansıtacak şekilde değiştirildi. Yüklemenizi nasıl yapılandırdığınıza bağlı olarak, qemu-nbd'yi çalıştırmak için sudo'ya ihtiyacınız olabilir. Komutları buradan kopyalayıp yapıştırıyorsanız, çalıştırmadan önce değiştirdiğinizden emin olun. Çoğu durumda, yalnızca burada endişelenmeniz gereken ndb0 cihazına sahip olursunuz, bu nedenle orada herhangi bir sorun yaşamazsınız.

Tamamlandıktan sonra bölümü ile yazabilirsiniz. qemu-nbd -P 2 -r -c / dev / nbd2 -f vpc ourTest.vhd bunu takiben sudo ddrescure -v -f / dev / nbd2 / dev / sde2 , ancak aygıt dosyalarını gerçekten kullanmak istediklerinizle değiştirmeyi unutmayın. Bunları kendi terminalinize kopyalayıp yapıştırıyorsanız, bu dosya adlarını ve bölüm numaralarını yazmaya çalıştığınız adlarla değiştirdiğinizden emin olun. / Dev / sde cihazımız, hiçbir şeye zarar vermeden bunu güvenli bir şekilde test etmek için kullandığımız kullanılmış bir SDHC karttı. Qemu-nbd'yi çalıştırmak için sudo'ya ihtiyacınız olabilir, ancak buna ihtiyacınız olmamalıdır. Aynı şekilde, yapılandırmanıza bağlı olarak bölüm numaralarını bırakmanız gerekebilir. QEMU süreci bu nedenlerden dolayı neredeyse sezgisel değildir.

Hyper-V kullanıcıları, VHD dosyası yerine bir VHDX görüntüsüne sahip olabilir. Bu durumda, bunun yerine koşmanız gerekir qemu-nbd -c / dev / nbd0 -f VHDX ourTest.vhd dosya adını bir kez daha değiştirirken. Bu format, sanallaştırılmış makinelere daha büyük depolama kapasitesi eklemek için Windows Server 2012'ye bir ek iken, gittikçe daha fazla Linux kullanıcısı, VHD'nin sahip olduğu 2TB sınırından kaçmak için ona yöneliyor. Aksi takdirde, bu talimatlar söz konusu gerçek dosya boyutundan bağımsız olarak çalışmalıdır. GNU ddrescue aracı, önce en iyi blokları kopyalamayı garanti etse de, dd gibi çalışmalıdır.

Bu çalıştırıldığında, VHDX görüntüleri ile çalışan kullanıcıların çalıştırması gerekecektir. sudo ddrescue -v -f / dev / nbd2 / dev / sde2 , yine yukarıdaki dosyaları değiştiriyoruz. Aksi takdirde, her tür VirtualBox görüntüsüne sahip herkes kullanabilir qemu-nbd -P 2 -r -c / dev / nbd2 -f vpc ourTest.vhd söz konusu bölümü herhangi bir eski diskmiş gibi bağlamak için. Kullanmanız gerekecek sudo bağlama / dev / nbd2 / cdrom veya sudo bağlama / dev / nbd2 / mnt monte etmek için. Denemeden önce / cdrom veya / mnt dizinlerine başka hiçbir şey bağlı olmadığından emin olun.

Yöntem 3: Dosyayı Çıkarma ve ardından Dosyanın Bağlantısını Kesme

Görüntünün bağlantısını kesmek için şunu kullanmanız yeterlidir: sudo umount / mnt veya sudo umount / cdrom ayırmak için. Ne de olsa Linux çekirdeğinin kendisi ona başka bir birimmiş gibi davranmakla meşguldü.

Yine de QEMU sistemiyle bağlantısını kesmeniz gerekecek, bu yüzden şunu yazın: qemu-ndb -d / dev / nbd2 bağlantısını kesmek için.

4 dakika okundu