Örneklerle Linux’ta dd Komutu Nasıl Kullanılır
Merhabalar,
dd, birincil amacı dosyaları dönüştürmek ve kopyalamak olan Unix ve Unix benzeri işletim sistemleri için bir komut satırı yardımcı programıdır.
Tüm harddisk yada bir partition yedeği almak isiyorsak kullanabiliriz.
MBR (Master Boot Record) in yedeğini almak istiyorsak kullanabiliriz.
Bir dosyadan metin kopyalamak istiyorsak kullanabiliriz.
Bir yazıda yada dosyadaki harfleri büyükten küçüğe yada tam tersi değiştirmek istiyorsak kullanabiliriz.
dd, bir sabit sürücünün Boot Sector` unu yedekleyebilir ve sabit miktarda rastgele veri elde etme gibi görevler için kullanılabilir.Hard diskimizi, partition’ ımızı yedeklemek yada daha önceden yedeklediğimiz imajımızı geri yüklemek için kullanailiriz.Diskten diske, diskten imaja, partition` dan imaj` a, sonra imajlardan aynı şekilde geri yükleme yapılabilir.
Kısaca kullanımından bahsedelim.
Kullanım : dd’nin komut satırı söz dizimi diğer birçok Unix programından farklıdır, çünkü komut satırı seçenekleri için daha standart -option değeri veya –option=değer biçimleri yerine seçenek=değer söz dizimini kullanır. Varsayılan olarak, dd stdin’den okur ve stdout’a yazar, ancak bunlar if (giriş dosyası) ve of (çıkış dosyası) seçenekleri kullanılarak değiştirilebilir.
stdin:standart giriş arayüzü
stdout:standardt çıkış arayüzü
if: kaynağı, yani kopyaladığımız yeri belirtir. Normal dosya veya aygıt dosyası olabilen bir dosyayı belirtir.
of: hedef dosyayı gösterir. Aynı şeyi, hem normal bir dosyaya hem de doğrudan cihaza yazabiliriz.
dd komutuyla ilgili bazı pratik örnekler:
Tüm sabit diski yedeklemek için:
Bir sabit diskin tam bir kopyasını aynı sisteme bağlı başka bir sabit diske yedeklemek için gösterildiği gibi dd komutunu çalıştırın. Bu dd komut örneğinde, kaynak sabit diskin UNIX aygıt adı /dev/sda8 ve hedef sabit diskin aygıt adı /dev/sdc3’dür.
“if” girdi dosyasını ve “of” çıktı dosyasını temsil eder. Böylece /dev/sda8’in tam kopyası /dev/sdc3’de mevcut olacaktır. Herhangi bir hata varsa, yukarıdaki komut başarısız olur. “conv=noerror” parametresini verirseniz, okuma hataları varsa kopyalamaya devam edecektir.
İlk önce diskimizi kontrol edelim.Benim burada bölümüm /dev/sda8 dir.
dd if = /dev/sda8 of = /dev/sdc3
Girdi dosyası (if) ve çıktı dosyası (of) çok dikkatli bir şekilde belirtilmelidir. Her ihtimale karşı hedefte kaynak cihazdan bahsederseniz, tam tersi durumda tüm verilerinizi kaybedebilirsiniz.
Aşağıda verilen dd komutunu kullanarak sabit diski başka sabit diske kopyalamak için, senkronizasyon seçeneği senkronize İ/O kullanarak her şeyi kopyalamanıza izin verir.
Bir Bölümü yedeklemek için:
Giriş dosyasında ‘if’ için bir partition bölümüm seçelim ve çıkış bölümü olan ‘of’ için bir hedef yeri belirtelim.Aşağıda bunu örnekle göstermeye çalıştım.
sudo dd if=/dev/sde2 of=/home/firatcanoglu/Desktop/partition-backup.img
Sabit Disk imajı oluşturmak için:
Sabit diskin yedeğini almak yerine sabit diskin imaj dosyasını oluşturabilir ve diğer depolama cihazlarına kaydedebilirsiniz. Verilerinizi bir disk görüntüsüne yedeklemenin bir çok avantajı vardır, bunlardan biri kullanım kolaylığıdır. Bu yöntem genellikle diğer yedekleme türlerinden daha hızlıdır ve beklenmedik bir felaketin ardından verileri hızla geri yüklemenizi sağlar. Bir sabit disk /dev/hda görüntüsünü oluşturur.
ilk önce diskimizin durumuna bakalım.bunun için lsblk komutunu kullanalım.
lsblk
Disk ana adının en üstte sda olduğunu görüyoruz.Şimdi diskimizin full imajını alalım
sudo dd if=/dev/sda of=/media/firatcanoglu/ay/YEDEK/hardisk.img
Hard Disk İmajını kullanarak geri yükleme:
Bir sabit diski başka bir sabit diskin alınmış imajını geri yüklemek için aşağıdaki dd komutu kullanılabilir
sudo dd if=/media/firatcanoglu/ay/harddisk.img of=/dev/sda
Bu komutla daha önce aldığımız hard disk imajını full olarak geri yükleyebiliriz.
CDROM Yedeği oluşturmak için:
dd komutu, bir kaynak dosyadan bir iso dosyası oluşturmanıza izin verir. Böylece CD’yi yerleştirebilir ve bir CD içeriğinin iso dosyasını oluşturmak için dd komutunu kullanabiliriz.
dd if=/dev/cdrom of=/home/firatcanoglu/Desktop/cdrom.iso bs = 2048
dd komutu girdi bloğunu tek tek okur ve onu işler ve sonrasında bir hedef dosyamıza yazar. Giriş ve çıkış dosyası için blok boyutunu belirleyebilirsiniz. Yukarıdaki dd komut örneğinde, “bs” parametresi hem giriş hem de çıkış dosyası için block(blok) boyutunu belirtir. Bu nedenle dd, yukarıdaki komutta block(blok) boyutu olarak 2048bayt kullanır.
Bu eğitim yazısında sizlere dd komutunu anlatmaya çalıştım.Umarım sizler için faydalı olur.
Fırat bey, sitenizi yeni keşfettim. Gerçekten yazılarınız çok başarılı. Teşekkürler.