Örneklerle Linux dd Komutunu Öğrenmek
Dd komutu, dosyaları dönüştürmek ve kopyalamak için kullanılan, Unix ve Unix benzeri sistemler için güçlü bir yardımcı programdır. Bu yazıda dd komutunun etkili bir şekilde nasıl kullanılacağına dair çeşitli örnekleri inceleyeceğiz.
- Bir sürücüyü rastgele verilerle doldurma: Bu komut sürücüyü rastgele verilerle doldurur. Sürücüdeki mevcut verilerin üzerine yazılacağı için dikkatli olun.
dd if=/dev/urandom of=/dev/sda bs=4k
Bu komut, bir sürücünün üzerine rastgele veriler yazarak güvenli bir şekilde silinmesi için kullanışlıdır.
- Sürücüden sürücüye çoğaltma: Bu komut, bir sürücünün içeriğini diğerine kopyalar.
dd if=/dev/sda of=/dev/sdb bs=4096
Bir sürücünün yedeğini oluşturmak veya verileri yeni bir sürücüye taşımak için kullanışlıdır.
- Sabit sürücüyü temizleme: Bu komut, bir sürücüye sıfırlar yazarak içeriğini etkili bir şekilde siler.
dd if=/dev/zero of=/dev/sda bs=4k
Tamamen silinmesini sağlamak için tekrarlanması gerekebilir.
- Dosyadan teyp cihazına kopyalama: Bu komut, verileri bir dosyadan bir teyp aygıtına kopyalar.
dd if=inputfile of=/dev/st0 bs=32k conv=sync
The
conv=sync
option ensures synchronized I/O operations. - Verileri banttan dosyaya kopyalama: Bu komut, verileri bir bant aygıtından bir dosyaya kopyalayarak önceki işlemi tersine çevirir.
dd if=/dev/st0 of=outfile bs=32k conv=sync
- Bir sürücünün sıfırlanıp sıfırlanmadığını kontrol etme: Bu komut bir sürücüyü okur ve sıfır olmayan verileri kontrol eder.
dd if=/dev/sda | hexdump -C | grep [^00]
Bu, bir sürücünün başarıyla silinip silinmediğini doğrulamaya yardımcı olur.
- Bir bölümü doldurma: Bu komut, bir bölümü rastgele verilerle doldurur.
dd if=/dev/urandom of=/home/$user/hugefile bs=4096
Verilerin üzerine yazılacağı için sistem bölümlerine karşı dikkatli olun.
- Bir dosyayı karıştırma: Bu komut, silmeden önce rastgele veriler içeren bir dosyanın üzerine yazar.
ls -l myfile -rw-r--r-- 6703104 Oct 31 18:25 myfile dd if=/dev/urandom of=myfile bs=6703104 count=1 rm myfile
Bu, dosyaları güvenli bir şekilde silmek için kullanılabilir.
- Bir bölümü başka bir bölüme kopyalama: Bu komut, verileri kesmeden bir bölümden diğerine kopyalar.
dd if=/dev/sda3 of=/dev/sdb3 bs=4096 conv=notrunc,noerror
conv=notrunc,noerror seçenekleri kesilme olmamasını ve okuma hatalarında devam edilmesini sağlar.
- Bir bölümün gzip’li görüntüsünü oluşturma: Bu komut, bir bölümün sıkıştırılmış görüntüsünü oluşturur.
dd if=/dev/sdb2 ibs=4096 | gzip > partition.image.gz conv=noerror
This is useful for creating backups of partitions.
- Manyetik bant sürücüsü içeriğini bir dosyaya kopyalama: Bu komut, teyp sürücüsünün içeriğini EBCDIC’den ASCII’ye dönüştürerek bir dosyaya kopyalar.
dd bs=10240 cbs=80 conv=ascii,unblock if=/dev/st0 of=ascii.out
- 1KB blok cihazdan 2KB blok cihaza kopyalama: Bu komut, verileri farklı blok boyutlarına sahip cihazlar arasında kopyalar.
dd if=/dev/st0 ibs=1024 obs=2048 of=/dev/st1
- Sıfırlar /dev/null’a kopyalanıyor: Bu komut, sıfırları boş aygıta kopyalayarak G/Ç hızını karşılaştırmak için kullanışlıdır.
dd if=/dev/zero of=/dev/null bs=100M count=100 100+0 records in 100+0 records out 10485760000 bytes (10 GB) copied, 5.62955 s, 1.9 GB/s
- GPT’yi diskten silme: Bu komut, sürücünün başına ve sonuna sıfırlar yazarak GPT’yi diskten siler.
dd if=/dev/zero of=/dev/sda bs=512 count=2 fdisk -s /dev/sda dd if=/dev/zero of=/dev/sda seek=(number_of_sectors - 20) bs=1k
- Önyüklenebilir bir USB sürücüsü oluşturma: Bu komut, bir görüntü dosyasını önyüklenebilir hale getirmek için USB sürücüsüne yazar.
dd if=/location/of/bootimage.img of=/dev/sdX
- Bozuk blokları kontrol etme: Bu komut hatalı blokları kontrol etmek için sürücüyü okur.
dd if=/dev/sda of=/dev/null bs=1m
- MBR’yi diskete kopyalama: Bu komut, Ana Önyükleme Kaydını (MBR) bir diskete kopyalar.
dd if=/dev/sda of=/dev/fd0 bs=512 count=1
This is useful for creating backups of the MBR.
- Bölümlerle sürücüden sürücüye çoğaltma: Bu komut belirli bir bölümü bir sürücüden diğerine kopyalar.
dd if=/dev/sda1 of=/dev/sdb1 bs=4096
- CD görüntüsü oluşturma: Bu komut bir CD’nin ISO görüntüsünü oluşturur.
dd if=/dev/sr0 of=/home/$user/mycdimage.iso bs=2048 conv=nosync
- Bir diski aynı boyuttaki başka bir diskle değiştirme: Bu komut, bir diski aynı boyuttaki başka bir diskle değiştirirken kullanışlıdır.
dd if=/dev/sda of=/dev/sdb bs=64k conv=sync
- Bir bölümün DVD görüntülerini oluşturma: Bu komut, yedekleme amacıyla bir bölümün birden çok DVD görüntüsünü oluşturur.
dd if=/dev/sda2 of=/home/$user/hddimage1.img bs=1M count=4430 dd if=/dev/sda2 of=/home/$user/hddimage2.img bs=1M count=8860 [...]
- Yedekten geri yükleme:Bu komut, önceden oluşturulmuş DVD görüntülerinden verileri geri yükler.
dd if=/$location/hddimage1.img of=/dev/sda2 bs=1M
dd if=/$location/hddimage2.img of=/dev/sda2 seek=4430 bs=1M dd if=/$location/hddimage3.img of=/dev/sda2 seek=8860 bs=1M [and so on...]
- Süper bloğu yok etmek: Bu komut bir dosya sisteminin süper bloğunu yok eder.
dd if=/dev/zero count=1 bs=1024 seek=1 of=/dev/sda6
- Süper bloğu yok etmenin başka bir yolu: Bu komut süper bloğu yok etmek için başka bir yöntem sağlar.
dd if=/dev/zero count=1 bs=4096 seek=0 of=/dev/sda5
- Bir dosyayı virüslere karşı kontrol etme: Bu komut, ClamAV kullanarak bir dosyada virüs olup olmadığını kontrol eder.
dd if=/home/$user/suspicious.doc | clamscan -
- Bir ikili dosyanın içeriğine bakma: Bu komut, hexdump kullanarak bir ikili dosyanın içeriğini görüntüler.
dd if=/home/$user/binary file | hexdump -C | less
- Sabit sürücü okuma/yazma hızını karşılaştırma: Bu komut, bir sabit sürücünün okuma/yazma hızını karşılaştırır.
dd if=/home/$user/bigfile of=/dev/null dd if=/dev/zero of=/home/$user/bigfile bs=1024 count=1000000
- Eski sabit sürücülerin yeniden canlandırılması: Bu komut, veri yazıp okuyarak eski sabit sürücülerin yeniden canlandırılmasına yardımcı olur.
dd if=/dev/sda of=/dev/sda
- Bellek içeriklerinin incelenmesi: Bu komut, insan tarafından okunabilen dizeler için bellek içeriğini inceler.
dd if=/dev/mem | strings | grep 'string_to_search'
- Disket kopyalama: Bu komut, bir disketin görüntüsünü oluşturur.
dd if=/dev/fd0 of=/home/$user/floppy.image bs=2x80x18b conv=notrunc
- Rastgele anlamsız bir 1KB dosyası oluşturma: Bu komut rastgele verilerle küçük bir dosya oluşturur.
dd if=/dev/urandom of=/home/$user/myrandom bs=100 count=1
- Sistem belleği görüntüsü oluşturma: Bu komut, sistem belleğinin mevcut durumunun bir görüntüsünü oluşturur.
dd if=/dev/mem of=/home/$user/mem.bin bs=1024
- Dosyayı stdout’a yazdırma: Bu komut, bir dosyanın içeriğini terminale yazdırır.
dd if=/home/$user/myfile
- Bir dize için bölüm arama: Bu komut, bir bölüm içindeki belirli bir dizeyi arar.
dd if=/dev/sda2 bs=16065 | hexdump -C | grep 'text_to_search'
- Bir dosyanın ilk 64KB’SİNİ atlama: Bu komut, ilk 64KB’Yİ atlayarak bir dosyayı kopyalar.
dd if=/home/$user/file.bin skip=64k bs=1 of=/home/$user/convfile.bin
- Önyüklenebilir bir USB sürücü oluşturma: Bu komut, önyüklenebilir hale getirmek için bir görüntü dosyasını bir USB sürücüsüne yazar.
dd if=/home/$user/bootimage.img of=/dev/sdc
- BIOS okuma: Bu komut BIOS içeriğini okur.
dd if=/dev/mem bs=1k skip=768 count=256 2>/dev/null | strings -n 8
- Nero görüntüsünü ıso’ya dönüştürme: Bu komut bir Nero görüntüsünü standart bir ISO görüntüsüne dönüştürür.
dd bs=1k if=imagefile.nrg of=imagefile.iso skip=300k
- Geçici takas alanı oluşturma: Bu komut geçici bir takas dosyası oluşturur.
dd if=/dev/zero of=tmpswap bs=1k count=1000000 chmod 600 tmpswap mkswap tmpswap swapon tmpswap
- G/Ç hızını belirleme: Bu komut, 1 GB veri okuyarak bir sürücünün G / Ç hızını ölçer.
dd if=/dev/sda of=/dev/null bs=1024k count=1024 1073741824 bytes (1.1 GB) copied, 24.1684 s, 44.4 MB/s
- Rastgele bir sayı oluşturma: Bu komut rastgele bir sayı üretir.
dd if=/dev/random count=1 2>/dev/null | od -t u1 | awk '{ print $2}' | head -1
- RAM’i bir dosyaya kopyalama: Bu komut, sistem ram’inin bir görüntüsünü oluşturur.
dd if=/dev/mem of=myRAM bs=1024
- MBR içeriğini görüntüleme: Bu komut, Ana Önyükleme Kaydının içeriğini hex ve ASCII olarak görüntüler.
dd if=/dev/sda bs=512 count=1 | od -xa
- Bölüm tablosu olmadan mbr’yi geri yükleme: Bu komut, bölüm tablosunu bozmadan mbr’yi geri yükler.
dd if=/my/old/mbr of=/dev/sda bs=446 count=1
- Sınırlı boyutta bölüm kopyası oluşturma: Bu komut, bir bölümün bir kopyasını oluşturarak daha küçük dosyalara böler.
dd if=/dev/sda1 | split -b 700m - sda1-image
- Metni büyük harfe dönüştürme: Bu komut, bir komutun çıktısını büyük harfe dönüştürür.
ls -l | dd conv=ucase
- Metni küçük harfe dönüştürme: Bu komut, herhangi bir metni küçük harfe dönüştürür.
echo "MY UPPER CASE TEXT" | dd conv=lcase
- Sistem parolası dosyasını ebcdıc’e dönüştürme: Bu komut, sistem parolası dosyasını sabit uzunlukta EBCDIC biçimine dönüştürür.
dd if=/etc/passwd cbs=132 conv=ebcdic of=/tmp/passwd.ebcdic
- Ascıı’yi ebcdıc’e dönüştürme: Bu komut bir metin dosyasını ascıı’den ebcdıc’e dönüştürür.
dd if=text.ascii of=text.ebcdic conv=ebcdic
- Bir dosyayı büyük harfe dönüştürme: Bu komut, bir dosyanın içeriğini büyük harfe dönüştürür.
dd if=myfile of=myfile conv=ucase
Yazının orijinalini buradan okuyabilirsiniz.