Linux DD Command
Linux ortamında çok ihtiyaç duyacağınız bir durumdur yedekleme.. Özellikle bir partition ya da hardisk yedekliyorsanız. Linuxta bu iş bir komut ile oldukça basit aslında. dd komutu ile ilgili açıklamalara buradan ve buradan ulaşabilirsiniz.
dd komutu if ve of olmak üzere iki temel parametre alır. Diğer parametreler ise isteğe bağlıdır.
Örneğin cd kalıbı oluşturmak için
dd if=/dev/cdrom of=cd_image.iso
komutu kullanılmaktadır. if bilgisi burada kaynak aygıt/partition u, of ise hedefi göstermektedir.
Linuxta bağlı olan depolama cihazlarına ilişkin bilgiyi
fdisk -l
komutu ile görebilirsiniz.
Başka bir örnekte ise hardiskimizin sdb1 partition u klonlamaya ve geri yüklemeye çalışalım. Bu işlemi yaparken aygıtın/partition ın mount olmamasına dikkat edilmelidir.
Önce bölümü klonlayalım.
dd if=/dev/sdb1 of=sdb1.raw bs=32M
buradaki bs bilgisi saniyede kaç byte ile işlemin gerçekleştirileceğini belirtmektedir. Harddisk olduğu için değeri büyük seçtim, usb aygıtlarında 1M yeterli bir rakam olacaktır. Sistemin default bs değeri 512 byte tır (block size).
dd if=/dev/sdb2 of=sdb2.img bs=4096 conv=noerror
noerror ile hataların oluşması durumunda bile yedeklemenin devam etmesi gerektiği belirtilebilir.
Geri yükleme işini ise if ile of u yer değiştirerek yapıyoruz.
dd if=sdb1.raw of=/dev/sdb1
İstenilen büyüklükte dosya oluşturma:
dd if=/dev/zero of=sifir.raw bs=50 count=1
dd if=/dev/urandom of=random.raw bs=100 count=1
/dev/urandom, random olarak sayı üreten bir streamdir.
/dev/zero, sıfırlardan oluşan byte üreten bir streamdir.
bs bilgisi saniyede kaç byte bilginin yazılacağını belirtir.
count işlemin kaç kez yapılacağını belirtir. bs=100 ve count=2 olan bir komut icra edildiğinde 2*100 byte kadar bilgi dosyaya yazılmış olacak.
Disk wipe (Diskteki bilgilerin imhası)
Disk üzerinden dosya silme işlemi, format işlemi gibi birçok işlem aslında disk yüzeyinden veriyi silmez. Sadece dosyanın varlığına ilişkin kaydı siler(Ntfs ile ilgili geniş bilgiyi burada bulabilirsiniz.). Bir dosyayı disk üzerinden tamamen silmek için üzerine veri yazmanız gerekmektedir. Bu işlem yavaştır ve büyük diskler için uzun sürer. Bu nedenle silme işlemlerinin hızlı yapılması açısından bu yöntem tüm dosya sistemleri tarafından benimsenmiştir. Aşağıdaki örneklerde diskin tamamen silinmesi konusu ele alınacaktır.
dd if=/dev/zero of=/dev/sdx bs=1M conv=noerror
Bu kod ile saniyede 1M sıfır byte bilgisi (00) sda olarak nitelendirilen disk üzerine yazılacaktır. Disk üzerinde partitionların bir önemi yoktur, disk tamamen sıfır ile doldurulur.
Sıfır ile doldurmaya alternatif yöntem olarak random sayılarla da doldurabiliriz.
dd if=/dev/urandom of=/dev/sdx bs=1M conv=noerror
Not: sdx yerine sda, sdb yazılmalıdır.
Merhaba hocam,
dd komutunu usb bir bellek ile aktarımında kolayca kullanabiliyoruz. Fakat LAN’dan ssh ile nasıl bir iso ya da raw kalıbını çekebiliriz? ssh ile bağlanıldığında o pcnin /dev/sda’sına atma riski var. Kısacası if local olacak, of server olacak şekilde nasıl yapılır? (dd if=/dev/sda of={username]@192.168.0.164) bs=32M gibi). Diğer ziyaretçiler için: Bu kod satırının doğruluğu bilinmemektedir! Bu konuya da değinebilir misiniz acaba hocam?
Emeğinize sağlık!
Bu konu basit aslında. En kısa sürede ufak bir yazı hazırlayacam 😉
Arkadaşım bu komut öylece ulu orta bırakılacak bir komut mudur? Hard diske zero bastık akşam akşam. Lütfen sda yerine mesala sdx falan yaz.
Dikkate alacağım 🙂 Ama sen de her gördüğün komutu çalıştırma terminalde 🙂
Merhaba çağlar bey. Size 2 sorum olacaktı. Müsait olup cevaplarsanız çok sevinirim. Öncelikle Linux hakkında pek bilgi sahibi olmadığımı baştan belirtmek isterim.
Resimdeki panel linux işletim sistemi ile çalışıyor. (https://i.hizliresim.com/XXGYZ0.jpg)
1) dd ile flash disk’e backup alıp daha sonra dd ile recovery etsem hedef dosya silinip üzerine mi yazılıyor?(windows gibi)
2) Panelin içindeki hdd’yi söküp sata/ide/usb adaptör ile laptopa harici disk gibi bağlayıp backup alıp ve yeni aldığım aynı tip hdd’ye tam tersi yöntemle imajı recovery yapsam, sonrasında yeni hdd’yi panele monte etsem herşey eskisi gibi olur mu?
şimdiden teşekkürler. iyi çalışmalar.
Merhabalar,
dd komutu disk işleminde kullanılan bir komuttur. Klon alacağınız diskin üzerinde ne bulunduğunun hiçbir önemi yoktur. dd komutunu en verimli şekilde kullanmak için cihazın diskini söküp ara bağlantı aygıtları ile (usb disk kutusu vs) başka bir linux işletim sistemi kullanarak yedekleyin. dd komutu iki yönlüdür. Diski klonlayabileceğiniz gibi geri yükleyebilirsiniz de.
Ayrıca diski klonlamak için yeni bir diske ihtiyacınız bulunmamakta. Dosya olarak çıktı alabiliyorsunuz yedeği.
Aygıtta bilmediğimiz extra bir özellik yoksa çalışması gerekiyor.
Cevap için teşekkürler Çağlar bey.
Aslında öğrenmek istediğim şuydu. Panel içinde bulunan Linux yüklü HDD’yi söküp, ara aparatlar kullanarak usb ile laptopuma bağlayıp(Win7), herhangi bir image programıyla diskin imajını almak. (taşınabilir disk gibi yani)
Amacım, o panele ait HDD’nin arızalanması durumunda almış olduğum imajı, arızalanan hdd’nin yerine alacağım yeni hdd’ye recovery etmek.
Fakat backup ve recovery işlemlerini Windows işletim sistemli bir laptopta yapıcam. Recovery ettiğim diski daha sonra panele monte edersem sistem(Linux) çalışmaya devam eder mi acaba?
Evet bu mümkün ama kullandığınız backup/recovery programı burada çok önemli. dd komutu linuxta bu iş için kullanılıyor. Windows kurulu bilgisayarınızı ubuntu usb ile kurulum yapmadan başlatabilir dd komutunu kullanabilirsiniz.
Tekrar teşekkürler Çağlar bey.
Macrium Reflectfree ile backup/recovery ile almayı düşünüyorum.
Ubuntu usb ile başlatıp dd komutuyla alınabiliyor olması ayrıca iyi bir bilgi.
İyi çalışmalar dilerim.
hocam bu tür cihazlar da recovery işlemi tehlikelidir cihazı servis yazdırmaıza dahi neden olabilir bu nedenle ne yaptığınızı bilmiyor iseniz tavsiyem hiç karıştırmayın şuan kullanımda olan bir cihaz ise