Disk Yönetimi

Linux dd Komutu

Linux dd Komutu
“dd” bir linux CLI aracıdır. Şimdi, "dd"nin şu anki sürümü GNU çekirdek programlarının bir parçasıdır, her UNIX/Linux sisteminin sahip olduğu sürümdür. Bu aracın birincil amacı, dosyaları dönüştürmek ve kopyalamaktır. Ancak, “cp” gibi diğer dosya kopyalama araçlarından oldukça farklıdır.

dd özellikleri

“dd” çeşitli amaçlar için kullanılabilir:

dd kullanımı

İşte "dd"nin en yaygın ve ilginç kullanımlarından bazıları. Tabii ki, “dd” bu şeylerden çok daha yetenekli. Eğer ilgileniyorsanız, her zaman “dd” ile ilgili diğer derinlemesine kaynaklara göz atmanızı tavsiye ederim.

yer

hangi dd

Çıktının gösterdiği gibi, "dd" çalıştırıldığında, "/usr/bin/dd"den başlatılır.

Temel kullanım

İşte “dd”nin takip ettiği yapı.

dd if= of=

Örneğin, rastgele verilerle bir dosya oluşturalım. Linux'ta, sürekli bir NULL akışı üreten “/dev/zero”, sürekli rastgele veri üreten “/dev/random” gibi normal dosyalar olarak görünen bazı yerleşik özel dosyalar vardır.

dd if=/dev/urandom of=~/Desktop/random.txt bs=1M sayı=5

İlk seçenekler kendi kendini açıklayıcıdır. Veri kaynağı olarak “/dev/urandom” ve “~/Desktop/random” kullanmak anlamına gelir.txt” hedef olarak. Diğer seçenekler neler?

Burada "bs", "blok boyutu" anlamına gelir. dd veri yazarken, bloklar halinde yazar. Bu seçenek kullanılarak blok boyutu tanımlanabilir. Bu durumda “1M” değeri blok boyutunun 1 megabayt olduğunu söylüyor.

"count" yazılacak blok sayısını belirler. Düzeltilmezse, giriş akışı sona ermediği sürece “dd” yazma işlemine devam edecektir. Bu durumda, “/dev/urandom” sonsuz veri üretmeye devam edecek, bu yüzden bu örnekte bu seçenek çok önemliydi.

Veri yedekleme

Bu yöntemi kullanarak, tüm bir sürücünün verilerini boşaltmak için "dd" kullanılabilir! Tek ihtiyacınız olan, sürücüye kaynak olduğunu söylemek.

dd if= of=

Bu tür işlemler yapacaksanız, kaynağınızın bir dizin olmadığından emin olun. “dd”nin bir dizini nasıl işleyeceği hakkında hiçbir fikri yok, bu yüzden işler yürümeyecek.

"dd" yalnızca dosyalarla nasıl çalışacağını bilir. Bu nedenle, bir dizini yedeklemeye ihtiyacınız varsa, arşivlemek için önce tar'ı kullanın, ardından bir dosyaya aktarmak için “dd” kullanın.

tar cvJf demosu.katran.xz DemoDir/

dd if=demo.katran.xz =~/Masaüstü/yedekleme.resim

Sonraki örnekte çok hassas bir işlem gerçekleştireceğiz: MBR'yi yedekleme! Şimdi, sisteminiz MBR (Ana Önyükleme Kaydı) kullanıyorsa, sistem diskinin ilk 512 baytında bulunur: önyükleyici için 466 bayt, bölüm tablosu için diğerleri.

MBR kaydını yedeklemek için bu komutu çalıştırın.

dd if=/dev/sda of=~/Desktop/mbr.img bs=512 sayı=1

Veri geri yükleme

Herhangi bir yedekleme için, verileri geri yükleme yolu gereklidir. "dd" durumunda, geri yükleme işlemi diğer araçlardan biraz farklıdır. Yedekleme dosyasını benzer bir klasöre/bölüme/cihaza yeniden yazmanız gerekir.

Örneğin, bu "yedek" var.img” dosyasını içeren “demo.katran.xz” dosyası. Çıkarmak için aşağıdaki komutu kullandım.

dd if=yedekleme.img = demo.katran.xz

Yine, çıktıyı bir dosyaya yazdığınızdan emin olun. "dd" dizinlerle iyi değil, unutmayın?

Benzer şekilde, bir bölümün yedeğini oluşturmak için "dd" kullanılmışsa, geri yüklemek için aşağıdaki komutu gerekir.

dd if= of=

Örneğin, daha önce yedeklediğimiz MBR'yi geri yüklemeye ne dersiniz??

dd if=mbr.img =/dev/sda

"dd" seçenekleri

Bu kılavuzun bir noktasında, "bs" ve "count" gibi bazı "dd" seçenekleriyle karşılaştınız, değil mi?? valla onlardan daha çok var. İşte bunların ne olduğu ve nasıl kullanılacağı hakkında kısa bir liste.

  • obs: Bir seferde yazılacak verinin boyutunu belirler. Varsayılan değer 512 bayttır.

  • cbs: Bir seferde dönüştürülecek verinin boyutunu belirler.

  • ibs: Bir seferde okunacak verinin boyutunu belirler.
  • say: Yalnızca N bloğu kopyala

  • arama: Çıktının başlangıcında N blok atla

  • atlama: Girişin başlangıcında N blok atla

conv=ascii: Dosya girişini EBCDIC'den ASCII'ye dönüştürür

conv=ebcdic: Dosya girişini ASCII'den EBCDIC'e dönüştürür

conv=ibm: dosya girişini ASCII'den alternatif EBCDIC'ye dönüştürür

conv=lcase: dosya girişini Büyük Harften küçük harfe dönüştürür

conv=ucase: dosya girişini Küçük Harften büyük harfe dönüştürür

conv=swab: Her giriş çiftini değiştir

Ekstra seçenekler:

  • nocreat: Çıktı dosyasını oluşturmayın
  • notruc: Çıktı dosyasını kesmeyin
  • noerror: Hatayla karşılaştıktan sonra bile işleme devam edin
  • fdatasync: İşlem bitmeden önce verileri fiziksel depoya yazın
  • fsync: fdatasync'e benzer, ancak meta verileri de yazar
  • iflag: İşlemi çeşitli bayraklara göre ayarlayın. Kullanılabilir bayraklar şunları içerir: ekle Çıktıya veri ekle

Ekstra seçenekler:

  • dizin: Bir dizine bakan işlem başarısız olur
  • dsync: Veriler için senkronize G/Ç
  • senkronizasyon: dsync'e benzer ancak meta verileri içerir
  • nocache: Önbelleği bırakma istekleri.
  • nofollow: Herhangi bir sembolik bağlantıyı takip etmeyin

Ekstra seçenekler:

  • count_bytes: "count=N" ile benzer
  • search_bytes: "see=N" ile benzer
  • skip_bytes: “skip=N”ye benzer

Gördüğünüz gibi, işlem davranışını değiştirmek için tek bir "dd" komutunda birden çok bayrak ve seçeneği istiflemek mümkündür.

dd if=demo.txt = demo1.txt bs=10 sayı=100 dönş=ebcdic
iflag=append,nocache,nofollow,sync

Son düşünceler

“dd”nin iş akışı oldukça basittir. Ancak, “dd”nin gerçekten parlaması size kalmış. Akıllı etkileşimler gerçekleştirmek için "dd"nin kullanılabileceği birçok yaratıcı yol vardır.

“dd” ve tüm seçenekleri hakkında detaylı bilgi için man ve bilgi sayfasına bakınız.

adam dd
Vulkan for Linux Users
With each new generation of graphics cards, we see game developers push the limits of graphical fidelity and come one step closer to photorealism. But...
OpenTTD vs Simutrans
Creating your own transport simulation can be fun, relaxing and extremely enticing. That's why you need to make sure that you try out as many games as...
OpenTTD Tutorial
OpenTTD is one of the most popular business simulation games out there. In this game, you need to create a wonderful transportation business. However,...