dd အကြောင်း တစ်စေ့တစ်စောင်း

dd  ဆိုတာဘာလဲ?

Screenshot from 2019-08-14 23-25-13

dd  ဆိုတာဘာလဲ?

command ? tool? ဆိုရင် command tools တွေများကြီးထဲက မှ အကောင်းဆုံး tool တစ်ခုဆိုရင် လည်း မမှားပေဘူးပေါ့လေ သူ့ အနေ နဲ့ linux အသုံး ပြု တဲ့ အရှင်သခင် တို့ ရဲ့ လိုအပ် ချက်အရ

data တွေကို copying and converting အပိုင်း ကို သစ္စာ ခံထားတဲ့ ပုဂ္ဂိုလ် တစ်ဦးလို့ပြောရမလိုပဲ

အ့လယ့် စာနဲ့ ပေနဲ့ (ဟဟဟ)

သူ့လုပ်ဆောင်ချက်တွေကတော့

* Partition သို့မဟုတ် HDD တစ်ခုလုံးကို backup and restore လုပ်မလား …

* CD တို့ DVD တို့ကို ISO ဖိုင်အဖြစ် ပြောင်းပြီးသိမ်းထားမလား …..

* raw ဖြစ်နေတဲ့ ဖိုင်တွေ ကို backup လုပ်မလား …

* Data format အနေနဲ့ ASCII to EBCDIC သို့ပြောင်းမလား ….

မှတ်ချက် အနေနဲ့ ဒီ tools ကို ဂရု တစ်စိုက်သုံးစေချင်ပါသည် နဲနဲ လွဲတာနဲ data တွေ ဆုံးရှုံး တက်ပါသည်။ နောက်တစ်က superuser အနေနဲ့သာအသုံးပြုရမည်ဖြစ်သည်။

အသုံးပြုပုံတွေဆီသို့ …………….>

အလွယ်ကူဆုံး command တစ်ခု အနေ ကတော့ argument 2 ခုကိုသုံးထားတဲ့ command ပဲ

arguments တွေက if=(input file) နဲ့ of=( output file) ဒါပါပဲ အောက် usage ကို ကြည့်ကြည့်မယ်

#dd if=(input file) of=(output file) (option)

Ok …usage ကို သိသွားပြီဆိုတော့

option တွေနဲ့ ဘယ်လို တွဲသုံးမလဲ ဆိုတာ ဆက်လေ့လာကြည့်ကြရအောင် …

dd tool ကိုသုံးပြီး hdd partition ဒါမှမဟုတ် hdd တစ်ခု လုံးကို backup and restore လုပ်မယ်ပေါ့

လွယ်ကူဆုံးနားလည်လွယ် အောင်ပြော ရရင် ဒီဘက် hdd ထဲ partition ထဲက data တွေကို တခြား တစ်ခုဆီသို့ ရွေ့တဲ့သဘော copy ကူးလိုက်တဲ့ သဘော ဒါ ပေမယ့် cp command လောက်တော့ မရိုးရှင်းဘူးလို့ဆိုရမယ်ဗျ

Hdd တစ်ကနေ တစ်ခုကို Disk to Disk backup လုပ်မယ်ပေါ့

backup မလုပ်ခင် block device ကြည့်တဲ့ command တော့သိကြမယ်ထင်တယ် မသိလည်းမှတ်ထားကြပေါ့ command က

#lsblk

lsblk လိုရိုက်လိုက်တာနဲ့ computer မှာတပ်ဆင်ထားတဲ့ block device တွေအားလုံးကိုတွေရမှာဖြစ်ပါတယ် မိမိ backup လုပ်ချင်တဲ့ hdd တွေကိုတော့မှတ်ထားပေါ့

ကျွန်တော် မှာက hdd 2ခုရှိတယ် တစ်ခုက /dev/sda နောက်တစ်ခုက /dev/sdb အဲ့လို

# dd if=/dev/sda of=/dev/sdb bs=4096 conv=noerror,sync
97281+0 records in
97280+0 records out
99614720 bytes (100 MB) copied, 2.75838 s, 36.1 MB/s

bs option ကတော့ block size ကိုပြောတာ တစ်ကြိမ်မှာ ဘယ်လောက် read write လုပ်နိုင်တဲ့ bytes အရေအတွက်ကိုပြောတာ dd command ရဲ့ default block size က 512 bytes ပါ ခုလို manual ပေးတော့ မြန်တယ်ပေါ့နော် …. နောက်တစ်ခုက conv=noerror ဒီ value ကို ကိုသုံးရခြင်းက data တွေ copy ကူး ပြောင်းနေတဲ့ အချိန် ဘာ error တက်တက် ဆက်ပြီးအလုပ်လုပ် သွားရမယ်ဆိုတဲ့သဘော, syns option ကတော့ I/O synchronized သုံးဖို့ ခွင့်ပြုပေးပါတယ်

Disk image ဖန်တီးမယ်

လွယ်လွယ်ပြောရရင် block device ကို image ဖိုင်လုပ်တာပါပဲ အောက်က command ကိုသာကြည့်ပါတော့

# dd if=/dev/sda of=/tmp/sdadisk.img

of argument အနောက် က output  မှာ ထားချင်တဲ့ img ဖိုင်လေးတစ်ခုပေးလိုက်တာပါပဲ ..

ချုံထားတဲ့ image ဖိုင်တစ်ခု လုပ်မယ်

ဒါလည်းအသုံးဝင်တာ ပဲ image ဖိုင်တာလုပ်လိုက်တာ extension ပဲပြောင်းသွားတာ ချုံ့သွားတာမှမဟုတ်တာ အဲ့တော့အောက်က command က img အဖြစ်သို့လည်းပြောင်း ချုံ့လည်းချုံ့ ပေါ့

# dd if=/dev/vda | gzip -c >/tmp/vdadisk.img.gz

သူက တော့နဲနဲ ရှုပ်တယ်လို့မပြောနိုင်ပါဘူး input နဲ့ output ကို တစ်ခြမ်းဆီ pipe chain operator နဲ့ ခြားထားပြီး gzip နဲ့ ချုံ့လိုက်တာဗျ လွယ်တယ်နော် c option လေးကတော့ img ဖိုင်ကို compress လုပ်မယ်နော်လို့ပြောတာ

အခုက ခုနက img file ကို ပြန်ပြီး တခြား block device ဆီကို restore ပြန်လုပ်မှာ

ဒီ command ကတော့ အရမ်းရိုးရှင်းလွယ်ကူပါတယ် မြင်တာနဲ့ သိမှာပါ လက်ခံမဲ့ output block device ကိုတော့ အရွေးမမှားမိဖို့ ပြောပါရစေ

# dd if=/tmp/sdadisk.img of=/dev/sda

compressed image ဖိုင်ကို ပြန် ပြီး  restore လုပ်မယ်ပေါ့နော်

ဒီမှာလည်းလွယ်တယ် အောက်က command ကိုကြည့်ကြည့်

# gzip -dc /tmp/vdadisk.img.gz | dd of=/dev/vda

ပြောစရာဆိုလို့ d option လေးပဲရှိတယ် uncompress လုပ်မယ်နော်ပေါ့

အထက်ဖော်ပြခဲ့ သော command  များအား မိမိလည်သလို အသုံးချနိုင်ပါကြောင်း

ဒီထက်ပိုပြီး သုံးတက်ချင်ပါက man dd command ဖြင့် လေ့လာနိုင်ပါကြောင်းရယ်

BNN TECH မှာ လစဥ် သင်တန်း ရှိပါတယ်

BNNTECH မှ အထူးသင်ကြားပေးနေသော Linux Special Class ကို တက်ရောက်သင်ကြားလိုပါက

စုံစမ်းရန် – t.me/bozinmyo | 09 960 174 999 သိချင်တာမေး အသေးစိတ်ရှင်းပြပေးပါသည်။

ဒီလ တက်လို့ အဆင်မပြေလည်း အေးဆေးနော်လစဥ် – စနေ – တနင်္ဂနွေ | အင်္ဂါ – ဗုဒ္ဓဟူး ရှိနေတာနော်

#BNNTECH

Leave a comment