තැටි ක්ලෝනකරණය සඳහා ඩීඩී භාවිතා කිරීම


189

තැටි ක්ලෝනකරණ මෙවලම් සම්බන්ධයෙන් ප්‍රශ්න ගණනාවක් ddඇති අතර අවම වශයෙන් එක් වරක්වත් යෝජනා කර ඇත. මම දැනටමත් ddමා භාවිතා කිරීම ගැන සලකා බැලුවෙමි, ප්‍රධාන වශයෙන් භාවිතයේ පහසුව සහ එය ආරම්භ කළ හැකි ලිනක්ස් බෙදාහැරීම් වලින් පහසුවෙන් ලබාගත හැකි බැවිනි.

ddතැටියක් ක්ලෝන කිරීම සඳහා භාවිතා කළ හැකි හොඳම ක්‍රමය කුමක්ද? මම ඉක්මන් ගූගල් සෙවුමක් කළ අතර පළමු ප්‍රති result ලය අසාර්ථක උත්සාහයක් බව පෙනේ . භාවිතයෙන් පසු මා විසින් කළ යුතු යමක් තිබේද dd, එනම් භාවිතයෙන් කියවිය නොහැකි කිසිවක් ddතිබේද?


ඩීඩී ක්ලෝන කරන විට (සබැඳියෙන් විස්තර කර ඇති පරිදි) ඩීඩී සම්බන්ධ ඕනෑම දන්නා ගැටලුවක දිශාවට මගේ ප්‍රශ්නය වැඩී ඇති බව මම දනිමි, සමහර විට මෙය එතරම් පැහැදිලි නොවීය. ඔහුගේ පිළිතුරෙහි අඩංගු සහ ඔබගේ පිළිතුර "මට කවදාවත් ඒ සමඟ කිසිදු ගැටළුවක් නොතිබුණි". ඔබ නියත වශයෙන්ම සිත්ගන්නාසුලු කරුණු කිහිපයක් ඉදිරිපත් කර ඇති පරිදි මම ඔබේ පිළිතුර ද ඉහළට ඔසවා තැබුවෙමි (ප්‍රගති දර්ශකයක් නොමැති පිළිතුරට මම කැමතියි).
falstro


සුපර් යූසර් - superuser.com/questions/11453/…
වොරන්

3
පිළිතුරු කිසිවක් යහපත් නොවූවත්, සේවාදායක දෝෂයට හොඳ උදාහරණයක් ලෙස ජොයෙල් ප්‍රශ්නයට සම්බන්ධ කිරීම විකාරයකි. ddනරක කොටස් මඟ හැරීම සඳහා නිවැරදි විකල්පයන් සහිත 25 දෙනෙකුගෙන් (අදහස් හැර) එක් පිළිතුරක් නොතිබුණි - ප්‍රතිසාධනය සඳහා තැටි ක්ලෝන කිරීමේදී එය අත්‍යවශ්‍ය වේ. නරක කොටස් ඇති තැටි ක්ලෝන කළ හැකි වඩා හොඳ පිළිතුරක් මම එකතු කළෙමි:dd if=/dev/sda of=/dev/sdb bs=4096 conv=sync,noerror
සෑම් වොට්කින්ස්

1
මෙම ක්‍රමය මඟින් තැටියක වෙන් නොකළ කොටස තිබේ නම් සුරකිනු ඇත. ඔබට එය අවශ්‍ය නොවන්නේ නම්, එය නැවැත්විය යුත්තේ කොතැනටදැයි ඔබට පැවසිය හැකිය ( countපරාමිතිය සඳහා ddහෝ head -c …වෙනත් ඕනෑම දෙයකට දත්ත නල මාර්ගගත කරන්න ; නමුත් නිශ්චිත බයිට් ගණන තවමත් සොයා ගන්නේ කෙසේදැයි මට විශ්වාස නැත, හෝ අවම වශයෙන් හොඳ ඉහළ බැඳී)
ප්‍රදර්ශනය කිරීමේ නම

Answers:


166

dd නිසැකවම හොඳම ක්ලෝනකරණ මෙවලම වන අතර, එය පහත දැක්වෙන විධානය භාවිතා කිරීමෙන් 100% අනුරුවක් නිර්මාණය කරනු ඇත. මට කවදාවත් ඒ ගැන කිසිම ගැටලුවක් තිබුණේ නැහැ.

dd if=/dev/sda of=/dev/sdb bs=32M

සෑම බයිටයක්ම ක්ලෝන කරන අතරතුර, ඔබ මෙය භාවිතා කරන ධාවකයක හෝ කොටසක භාවිතා නොකළ යුතු බව මතක තබා ගන්න. විශේෂයෙන් දත්ත සමුදායන් වැනි යෙදුම් වලට මෙය හොඳින් පාලනය කළ නොහැකි අතර ඔබ දූෂිත දත්ත සමඟ අවසන් විය හැකිය.


13
ඇත්ත වශයෙන්ම, / dev / sdb අවම වශයෙන් / dev / sda තරම් විශාල වන තාක් කල් ...
එඩී

23
"bs = 100M conv = notrunc" එකතු කරන්න, එය මගේ අත්දැකීම් වලට වඩා වේගවත්ය.
ටිම් විලිස්ක්‍රොෆ්ට්

134
'i' සහ 'o' අක්ෂර සමඟ ඉතා ප්‍රවේශම් වන්න ...
bandi

17
මෙම උපක්‍රමය කිසිවෙකු නොදන්නා බව පෙනේ ... dd යනු අසමමිතික පිටපත් කිරීමේ වැඩසටහනකි, එයින් අදහස් වන්නේ එය පළමුව කියවනු ඇති බවත් පසුව ලියන බවත් පසුව ආපසු යන බවත්ය. ඔබට ඩීඩී පයිප්පයට නංවා පිටපත සමමිතිකව සිදු කිරීමට බල කළ හැකිය dd if=/dev/sda | dd of=/dev/sdb. මගේ පරීක්ෂණ වලදී, නළය නොමැතිව විධානය ක්‍රියාත්මක කිරීමෙන් මට ~ 112kb / s ක ප්‍රතිදානයක් ලැබුණි. නළය සමඟ, මට ~ 235kb / s ලැබුණි. මම කිසි විටෙකත් මෙම ක්‍රමවේදය සමඟ කිසිදු ගැටළුවක් අත්විඳ නොමැත. වාසනාව!
අක්‍රමිකතා

14
Ist මිස්ටිරි, එය සමමිතික යන වචනයේ තේරුම නොවේ.
psusi

120

ඉඩ ඉතිරි කර ගැනීම සඳහා, dd විසින් නිපදවන දත්ත gzip සමඟ සම්පීඩනය කළ හැකිය, උදා:

dd if=/dev/hdb | gzip -c  > /image.img

ඔබට ඔබේ තැටිය ප්‍රතිස්ථාපනය කළ හැකිය:

gunzip -c /image.img.gz | dd of=/dev/hdb

ඊටත් වඩා ඉඩ ඉතිරි කර ගැනීම සඳහා, ඔබ කලින් ක්ලෝන කිරීමට බලාපොරොත්තු වන ධාවකය / කොටස විකෘති කරන්න (සුදුසු නම්), ඉන්පසු භාවිතයට නොගත් ඉතිරි අවකාශය ශුන්‍ය කරන්න, එවිට gzip සම්පීඩනය පහසු කරයි:

mkdir /mnt/hdb
mount /dev/hdb /mnt/hdb
dd if=/dev/zero of=/mnt/hdb/zero

මඳක් රැඳී සිටින්න, dd අවසානයේ "තැටියේ සම්පූර්ණ" පණිවිඩයක් සමඟ අසමත් වනු ඇත, පසුව:

rm /mnt/hdb/zero
umount /mnt/hdb
dd if=/dev/hdb | gzip -c  > /image.img

එසේම, kill ාතන විධානය සමඟ සං signal ාවක් යැවීමෙන් තත්වය වාර්තා කිරීම සඳහා පසුබිමේ ක්‍රියාත්මක වන dd ක්‍රියාවලියක් ලබා ගත හැකිය, උදා:

dd if=/dev/hdb of=/image.img &
kill -SIGUSR1 1234

ඔබේ පද්ධතිය පරීක්ෂා කරන්න - ඉහත විධානය ලිනක්ස් සඳහා වන අතර, ඕඑස්එක්ස් සහ බීඑස්ඩී ඩීඩී විධාන ඔවුන් පිළිගන්නා සං als ා වලට වඩා වෙනස් වේ (ඕඑස්එක්ස් භාවිතා කරයි SIGINFO- තත්වය වාර්තා කිරීමට ඔබට Ctrl+ ඔබන්න T).


2
මෙය BTRFS, NILFS, [ඔබට සිහින දැකිය හැකි ඕනෑම දෙයක්] සමඟ “නවීන” fs සමඟද ක්‍රියා කරයිද?
ස්ටීව් ෂ්නෙප්

ඩීඩී බ්ලොක් උපාංගවල ක්‍රියා කරයි, එය ගොනු පද්ධතියට වඩා අඩු වියුක්ත මට්ටමකි, එබැවින් එය එසේ විය යුතුය. මම ඇත්ත වශයෙන්ම එය උත්සාහ කර නැත. හ්ම්, නිල්ෆ්ස් සිත්ගන්නාසුළුයි, මට ඒ ගැන බලන්න වෙනවා.
ඩේවිඩ් හික්ස්

4
සඳහා +1 kill -SIGUSR1 %1, සහ OSX dd විධානය සතුටින් SIGUSR1 පිළිගනී ... සුපිරි ප්‍රයෝජනවත්, ස්තූතියි!
stuartc

1
+1 Kill -SIGUSR1 1234මම ඒ ගැන සොයමින් සිටියෙමි.
ජෝන් aka hot2use

3
එය විය යුත්තේ : dd if=/dev/hdb | gzip -c > /image.img.gz?
මයික් කෝසර්

39

අවධානයට : සජීවී ගොනු පද්ධතිය හැකි දූෂිත ගොනු dd'ing. හේතුව සරලයි, එය සිදුවෙමින් පවතින ගොනු පද්ධති ක්‍රියාකාරකම් පිළිබඳ අවබෝධයක් නොමැති අතර එය අවම කිරීමට කිසිදු උත්සාහයක් නොගනී. ලිවීමක් අර්ධ වශයෙන් සිදුවන්නේ නම්, ඔබට අර්ධ ලිවීමක් ලැබෙනු ඇත. මෙය සාමාන්‍යයෙන් දේවල් සඳහා හොඳ නොවන අතර සාමාන්‍යයෙන් දත්ත සමුදායන් සඳහා මාරාන්තික වේ. එපමනක් නොව, ඔබ මුද්රණ දෝෂයක් අවදානම අවුල් නම් නම් සහ පරාමිති, ඔබට වන විපතක මහත. බොහෝ අවස්ථාවන්හීදී, rsync යනු බහු කාර්යයන් ආරම්භ කිරීමෙන් පසුව ලියන ලද සමානව effective ලදායී මෙවලමක් වන අතර එය තනි ලිපිගොනු පිළිබඳ ස්ථාවර අදහස් ලබා දෙනු ඇත.

කෙසේ වෙතත්, ඩීඩී විසින් ගණනය නොකළ ධාවකයක බිටු තත්වය නිවැරදිව ග්‍රහණය කර ගත යුතුය. ඇරඹුම් කාරක, llvm පරිමාවන්, කොටස් UUIDs සහ ලේබල ආදිය. ඉලක්කගත ධාවකය බිටු සඳහා පිළිබිඹු කළ හැකි ධාවකයක් ඔබ සතුව ඇති බවට වග බලා ගන්න.


8
syncදූෂණ ගැටලු ගොනු කිරීම සඳහා පිළිතුර එය නොවන බව මම සැක කරමි . එය deamon හෝ දෙයක් පසු වැඩි ගොනු මෙසේ ලියයි නම් කුමක් සිදු වේද syncකාලයේදී, ddමෙහෙයුම?
මකා දමන

6
පළමුවෙන්ම ධාවකය ගණනය කිරීම හොඳ අදහසකි (හෝ කියවීමට පමණි) නමුත් එය සැමවිටම කළ නොහැක
ඇලෙක්ස් බොලොටොව්

1
කුමන අවස්ථාවක දී, ඔබ rsync භාවිතා කරන අතර ස්ථාවර ගොනුවක් ලබා ගැනීම සඳහා ලිපිගොනු හැසිරවීමට මැජික් කිරීමට ඉඩ දී පිටපත ලිවීමට අර්ථ නිරූපණය කරන්න.
jldugger

4
සවිකර ඇති ගොනු පද්ධතියක් මත ධාවනය වන ඩීඩී එක් කිරීමට මම කැමතියි, සවිකර ඇති ගොනු පද්ධතියේ ගොනු දූෂණය නොකරනු ඇත, නමුත් මෙහි අර්ථය වන්නේ ගොනු පද්ධතියේ පිටපත අනිවාර්යයෙන්ම දන්නා හොඳ තත්වයක තිබීමයි.
3molo

1
භාවිතා rsyncකිරීම ගමනාන්ත ගොනු පද්ධතියේ අභ්‍යන්තර දත්ත අනුකූල බව සහතික කරයි . ලිපිගොනු වල දත්ත අනුකූල බව එය සහතික නොකරනු ඇත - එය සිදු කිරීම සඳහා, ඔබට ලිපිගොනු අගුළු දැමිය යුතු අතර ලිපිගොනු වලට ලියන ඕනෑම වැඩසටහනක් මෙම අගුල් වලට ගරු කළ යුතුය.
මාටින් ගයිස්ලර්

26

නරක අංශ අඩංගු විය හැකි තැටියක් ක්ලෝන කිරීමට dd භාවිතා කරන විට, දෝෂයක් ඇති වූ විට එය නතර නොවන බව සහතික කිරීම සඳහා "conv = noerror, sync" භාවිතා කරන්න, නැතිවූ අංශය (ය) ශුන්‍ය බයිට් වලින් පුරවයි. අසමත් වූ හෝ අසමත් වූ තැටියකින් යථා තත්වයට පත් වීමට උත්සාහ කරන්නේ නම් මෙය සාමාන්‍යයෙන් මම ගන්නා පළමු පියවරයි - කිසියම් ප්‍රතිසාධන උත්සාහයක් කිරීමට පෙර පිටපතක් ලබාගෙන හොඳ (ක්ලෝන කරන ලද) තැටියේ ප්‍රතිසාධනය කරන්න. පිටපත් කළ නොහැකි හිස් අංශ සමඟ සාර්ථකව කටයුතු කිරීම සඳහා මම එය ප්‍රතිසාධන මෙවලමට තබමි.

එසේම, ds හි වේගය bs (වාරණ ප්‍රමාණය) සැකසීමට බලපානු ඇත. මම සාමාන්‍යයෙන් bs = 32768 උත්සාහ කරමි, නමුත් ඔබට වඩාත්ම වේගවත් වන්නේ කුමක් දැයි බැලීමට එය ඔබේම පද්ධති වලින් පරීක්ෂා කිරීමට ඔබ කැමති විය හැකිය. (මෙය වෙනත් හේතුවක් නිසා නිශ්චිත වාරණ ප්‍රමාණයක් භාවිතා කිරීමට අවශ්‍ය නොවන බව උපකල්පනය කරයි, උදා: ඔබ ටේප් එකකට ලියන්නේ නම්.)


13
ඔබට නරක අංශ සහිත තැටියක් තිබේ නම්, ඔබ සැබවින්ම භාවිතා කළ යුත්තේ dd වෙනුවට 'ddrescue' ය. එය වඩා කාර්යක්ෂම වන අතර තවත් දත්ත නැවත ලබා ගැනීමට වඩා හොඳ අවස්ථාවක් තිබේ. (එය dd_rescue සමඟ පටලවා නොගන්න, එය එතරම් හොඳ නැත)
davr

3
නරක කොටස් මඟ හැරීමට උත්සාහ කරන්නේ නම් විශාල බ්ලොක් ප්‍රමාණයක් භාවිතා නොකළ යුතුය, නැතහොත් එය ඕනෑවට වඩා මඟ හැරෙනු ඇත. 4096 ප්රමාණවත් තරම් විශාලය.
සෑම් වොට්කින්ස්

17

තැටියක් ක්ලෝන කිරීමට, ඔබ සැබවින්ම කළ යුත්තේ ආදානය සහ ප්‍රතිදානය dd ට නියම කිරීම පමණි:

dd if=/dev/hdb of=/image.img

ඇත්ත වශයෙන්ම, / dev / hdb වෙතින් කෙලින්ම කියවීමට ඔබට නිසි අවසර ඇති බවට වග බලා ගන්න (මම root ලෙස ධාවනය කිරීමට නිර්දේශ කරමි), සහ / dev / hdb සවි කර නොමැත (තැටිය තිබියදී පිටපත් කිරීමට ඔබට අවශ්‍ය නැත වෙනස් කිරීම - කියවීමට පමණක් ලෙස සවි කිරීම ද පිළිගත හැකිය). Image.img සම්පූර්ණ තැටියේ බයිට් සඳහා බයිට් ක්ලෝනයක් වනු ඇත.

තැටි ක්ලෝන කිරීමට dd භාවිතා කිරීමේ අඩුපාඩු කිහිපයක් තිබේ. පළමුව, dd මඟින් ඔබේ මුළු තැටියම හිස් ඉඩක් පවා පිටපත් කරනු ඇති අතර විශාල තැටියක සිදු කළ හොත් අතිශය විශාල රූප ගොනුවක් ඇති විය හැකිය. දෙවනුව, dd කිසිසේත්ම ප්‍රගති ඇඟවුම් සපයන්නේ නැත, එය පිටපතට බොහෝ කාලයක් ගත වන නිසා කලකිරීමට පත්විය හැකිය. තෙවනුව, ඔබ මෙම රූපය වෙනත් ඩ්‍රයිව් වෙත පිටපත් කරන්නේ නම් (නැවතත්, ඩීඩී භාවිතා කරමින්), ඒවා මුල් තැටියට වඩා විශාල හෝ විශාල විය යුතුය, නමුත් ඔබට ඉලක්ක තැටියේ ඇති අමතර ඉඩක් ඔබ තෙක් භාවිතා කිරීමට නොහැකි වනු ඇත. ඔබේ කොටස් ප්‍රමාණය වෙනස් කරන්න.

ඔබට තැටියේ සිට තැටියට copy ජු පිටපතක් ද කළ හැකිය:

dd if=/dev/hdb of=/dev/hdc

නමුත් ඔබ තවමත් නිදහස් ඉඩ සම්බන්ධයෙන් ඉහත සීමාවන්ට යටත් වේ.

ගැටළු හෝ ගොචා යන තාක් දුරට, dd, බොහෝ දුරට විශිෂ්ට කාර්යයක් කරයි. කෙසේ වෙතත්, මීට ටික කලකට පෙර මා හට දෘ hard තැටියක් මිය යාමට ආසන්නව තිබූ බැවින් එය සම්පූර්ණයෙන්ම මිය යාමට පෙර මට එය ඉවත් කළ හැකි තොරතුරු පිටපත් කිරීමට උත්සාහ කළෙමි. ඩීඩී කියවීමේ දෝෂ ඉතා හොඳින් හසුරුවන්නේ නැති බව පසුව දැනගන්නට ලැබුණි - තැටියේ කියවීමට නොහැකි අංශ කිහිපයක් ඇති අතර එමඟින් ඩීඩී අත්හැර දමා පිටපත නැවැත්වීමට හේතු විය. කියවීමේ දෝෂයක් ඇති වුවද එය දිගටම කරගෙන යන ලෙස මට dd ට පැවසීමට ක්‍රමයක් සොයාගත නොහැකි විය ( එය එම සැකසුම ඇති බවක් පෙනෙන්නට තිබුණද), ඒ නිසා මම මඟ හැරීම නියම කර ටික වේලාවක් ගත කළෙමි. කියවිය නොහැකි කොටස්.

මෙම ගැටළුවට විසඳුම් සෙවීම සඳහා මම යම් කාලයක් ගත කළෙමි (මම එම කාර්යය සම්පූර්ණ කිරීමෙන් පසුව) සහ ddrescue නමින් වැඩසටහනක් සොයා ගත් අතර, එම වෙබ් අඩවියට අනුව, dd මෙන් ක්‍රියාත්මක වන නමුත් දෝෂයක් ඇති වුව ද එය දිගටම කියවනු ලැබේ. මම කිසි විටෙකත් වැඩසටහන භාවිතා කර නැත, නමුත් එය සලකා බැලීම වටී, විශේෂයෙන් ඔබ පිටපත් කරන තැටිය පැරණි නම්, පද්ධතිය හොඳින් පෙනුනත් නරක අංශ ඇති විය හැකිය.


7
... dd කිසිසේත්ම ප්‍රගති ඇඟවුම් සපයන්නේ නැත ... - මෙය සත්‍යයක් නොවේ - ප්‍රගතිය පෙන්විය හැකි උපක්‍රමශීලී ක්‍රමයක් තිබේ - ඔබ dd ක්‍රියාවලිය ('ps -a | grep dd') සොයා ගත යුතුය. මෙම ක්‍රියාවලියට USR1 සං signal ාව යවන්න - ප්‍රගති තොරතුරු පෙන්වීමට dd ට බල කරන 'kill -USR1 <dd_pid_here>' (<> නොමැතිව).
මයිකල් බර්න්හාර්ඩ්

4
"තැටියේ කියවිය නොහැකි අංශ කිහිපයක්": conv=sync,noerrorඑය උපකාරී වනු ඇතැයි මම සිතමි .
ගෞතියර්

2
මෙම conv=sync,noerrorවිකල්ප ඔවුන් නරක කුට්ටි මඟ දේවල් නිවැරදිව සමපාතව එසේ රූපයේ ඔවුන් පිටතට ශුන්ය dd ඉඩ, අත්යවශ්ය වේ. ඒ ගැන යමක් අදහස් දැක්වූ ඉතා සුළු පිරිසකට මුක්කු.
සෑම් වොට්කින්ස්

1
ddrescueවිශේෂ විකල්පයන් නොමැතිව GNU ප්‍රගති දර්ශකය සපයන අතර, ඔබට පිටපත නතර කර ඔබ නතර කළ ස්ථානය නැවත ආරම්භ කළ හැකිය.
එන්ඩොලිත්

2
Dd සමඟ ප්‍රගතියක් ලබා ගැනීම සඳහා අඩු උපක්‍රමයක් නම් විකල්පය එකතු කිරීමයිstatus=progress
ජේම්ස්

11

මූලාශ්රය තැටිය සියලු දී හානි සිදු කරයි නම්, ඔබ භාවිතා වැඩි වාසනාව සිදුවේවි dd_rhelpසමග dd_rescue(මගේ පෞද්ගලික කැමැත්ත) හෝ GNU ddrescue.

මෙයට හේතුව, කියවීමේ දෝෂ මත, ddඋත්සාහ කිරීම සහ උත්සාහ කිරීම සහ උත්සාහ කිරීම - කල් ඉකුත් වීමක් සිදුවීමට බොහෝ කාලයක් බලා සිටීමයි. dd_rescueදෝෂයක් දක්වා කියවීම, පසුව තැටියේ තවත් ස්ථානයක් තෝරා ගැනීම සහ අවසාන දෝෂය දක්වා පසුපසට කියවීම වැනි බුද්ධිමත් දේවල් කරයි, සහ dd_rhelpමූලික වශයෙන් dd_rescueසැසි කළමණාකරුවෙකි - දක්ෂ ලෙස නැවත ආරම්භ කිරීම සහ නැවත ආරම්භ dd_rescueකිරීම නැවත වේගවත් කිරීම.

අවසාන ප්‍රති result dd_rhelpලය වන්නේ අවම කාලය තුළ උපරිම දත්ත ලබා ගැනීමයි . ඔබ dd_rhelpධාවනයෙන් ඉවත් වුවහොත් , අවසානයේදී එය ddඑකම වේලාවකදී මෙන් එකම කාර්යය කරයි . කෙසේ වෙතත්, ddඔබගේ 100Gb තැටියේ බයිට් 100 හි කියවීමේ දෝෂ ඇති වුවහොත් , අනෙක් බයිට් 9,999,900 නැවත ලබා ගැනීමට ඔබට බොහෝ වේලාවක් බලා සිටීමට සිදුවනු ඇත *, නමුත් dd_rhelp+ dd_rescueදත්ත වලින් වැඩි ප්‍රමාණයක් නැවත ලබා ගනී.


1
Dd_rescue සහ ddrescue අතර තෝරා ගැනීමට සමහරු උදව් කරති: askubuntu.com/a/211579/50450
ජොහාන්

7

ප්‍රභව තැටියේ සවි කර ඇති ගොනු පද්ධති නොතිබිය යුතුය. වාරණ උපාංගය කියවිය හැකි පරිශීලකයෙකු ලෙස (root ක්‍රියා කරයි), 'dd if = / dev / sda ....' ධාවනය කරන්න.

දැන්, මෙහි ඇති පිළිවෙලට ඇති දෙයක් නම්, ඔබ බයිට් ප්‍රවාහයක් නිර්මාණය කිරීමයි ... ඔබට එය සමඟ බොහෝ දේ කළ හැකිය: එය සම්පීඩනය කරන්න, ජාලය හරහා යවන්න, කුඩා බ්ලොබ් වලට කැබලි කරන්න.

උදාහරණයක් වශයෙන්:

dd if=/dev/sda | ssh user@backupserver "cat > backup.img"

නමුත් වඩා බලවත්:

dd if=/dev/sda | pv -c | gzip | ssh user@backupserver "split -b 2048m -d - backup-`hostname -s`.img.gz"

ඉහත දැක්වෙන්නේ ප්‍රභව දෘඩ තැටියේ සම්පීඩිත රූපයක් දුරස්ථ පද්ධතියකට පිටපත් කිරීමයි, එහිදී එය ප්‍රගතියේ යාවත්කාලීනව තබා ගනිමින් ප්‍රභව ධාරකයේ නම භාවිතා කරමින් අංක 2G කුට්ටි වල ගබඩා කරයි.

තැටියේ ප්‍රමාණය, ප්‍රභවයේ cpu වේගය, ගමනාන්තයේ cpu වේගය, ජාලයේ වේගය යනාදිය මත පදනම්ව ඔබට සම්පීඩනය මඟ හැරීමට හෝ දුරස්ථ පැත්තේ සම්පීඩනය කිරීමට හෝ ssh සම්පීඩනය සක්‍රීය කිරීමට අවශ්‍ය විය හැකි බව සලකන්න.


+1 gzip හරහා පයිප්ප දැමීමෙන් බොහෝ කාලයක් හා කලාප පළලක් ඉතිරි කර ගත හැකිය!
එම්. ඩඩ්ලි

Dd විධානයට 'bs = 1M' එකතු කිරීම සාමාන්‍යයෙන් වේගය වැඩි දියුණු කරන බව මම සටහන් කළ යුතුය.
retracile

6

තැටියක් ක්ලෝන කිරීමට, ඔබ සැබවින්ම කළ යුත්තේ ආදානය සහ ප්‍රතිදානය මෙයට නියම කිරීම පමණි dd:

dd if=/dev/hdb of=hdb.img

ඇත්ත වශයෙන්ම, ඔබට කෙලින්ම කියවීමට නිසි අවසර ඇති බවට වග බලා ගන්න /dev/hdb(මම root ලෙස ධාවනය කිරීමට නිර්දේශ කරමි), /dev/hdbඑය සවි කර නැත (තැටිය වෙනස් වන අතරතුර පිටපත් කිරීමට ඔබට අවශ්‍ය නැත). සම්පුර්ණ වූ පසු, hdb.imgමුළු තැටියේම බයිට්-බයිට් ක්ලෝනයක් වනු ඇත.

ddතැටි ක්ලෝන කිරීමට භාවිතා කිරීමේ අඩුපාඩු කිහිපයක් තිබේ . පළමුවෙන්ම, ddඔබේ මුළු තැටියම හිස් ඉඩක් පවා පිටපත් කරනු ඇති අතර විශාල තැටියක කළහොත් අතිශය විශාල රූප ගොනුවක් ඇති විය හැකිය. දෙවනුව, ddකිසිසේත්ම ප්‍රගති ඇඟවීම් සපයන්නේ නැත, එය පිටපතට බොහෝ කාලයක් ගත වන නිසා කලකිරීමට පත්විය හැකිය. තෙවනුව, ඔබ මෙම පින්තූරය වෙනත් ඩ්‍රයිව් වෙත පිටපත් කරන්නේ නම් (නැවතත්, ඩීඩී භාවිතා කරමින්), ඒවා මුල් තැටියට වඩා විශාල හෝ විශාල විය යුතුය, නමුත් ඔබට ඉලක්ක තැටියේ ඇති අමතර ඉඩක් ඔබ තෙක් භාවිතා කිරීමට නොහැකි වනු ඇත. ඔබේ කොටස් ප්‍රමාණය වෙනස් කරන්න.

ඔබට තැටියේ සිට තැටියට copy ජු පිටපතක් ද කළ හැකිය:

dd if=/dev/hdb of=/dev/hdc

නමුත් ඔබ තවමත් නිදහස් ඉඩ සම්බන්ධයෙන් ඉහත සීමාවන්ට යටත් වේ.

ඔබ පිටපතක් සාදන විට දත්ත gzip කිරීමෙන් පළමු අඩුපාඩුව විසඳා ගත හැකිය. උදාහරණයක් වශයෙන්:

dd if=/dev/hdb | gzip -9 > hdb.img.gz

පයිප්වීව් ( pv) මෙවලම භාවිතා කිරීමෙන් දෙවන අඩුපාඩුව විසඳා ගත හැකිය . උදාහරණයක් වශයෙන්:

dd if=/dev/hdb | (pv -s `fdisk -l /dev/hdb | grep -o '[0-9]*\{1\} MB' | awk '{print $1}'`m) | cat > hdb.img

තුන්වන අඩුපාඩුව මඟහරවා ගත හැකි ක්‍රමයක් ගැන මම නොදනිමි.

මීට අමතරව, ඔබට ddවිශාල දත්ත කැබලි සමඟ වැඩ කිරීමට පැවසීමෙන් පිටපත් කාලය වේගවත් කළ හැකිය . උදාහරණයක් වශයෙන්:

dd if=/dev/hdb of=hdb.img bs=1024

1
තෙවන අඩුපාඩුව මඟහරවා ගැනීමට ඔබ දැනටමත් මාර්ගය පවසා ඇත ... කොටස් ප්‍රමාණය වෙනස් කරන්න. කොටසක් විශාල කිරීම සාමාන්‍යයෙන් ආරක්ෂිත හා වේගවත් මෙහෙයුමකි (හැකිලීමට හෝ චලනය කිරීමට එදිරිව, එය දත්ත වටා ගමන් කරන බැවින් මන්දගාමී හා වඩා භයානක ය).
davr

gzipping කාලයක් තිස්සේ භාවිතා කර ඇති තැටියක් සමඟ ක්‍රියා නොකරනු ඇත, මන්ද එය වර්තමාන හෝ මකා දැමූ දත්ත වලින් පුරවනු ඇත. gzip වැඩ කරන්නේ හිස් අවකාශය ශුන්‍ය නම් පමණි, එය අළුත් තැටියක පමණි.
ටොස්

3
OzTozz: ගොනු පද්ධතිය 0 හි පිරවූ ගොනුවකින් ගොනු පද්ධතිය පුරවා, තැටියට සමමුහුර්ත කිරීමෙන් සහ මකා දැමීමෙන් ඔබට ගොනු පද්ධති රූපයක සම්පීඩ්‍යතාව වැඩි දියුණු කළ හැකිය. dd if=/dev/zero bs=1M of=/balloon; sync; rm /balloon (ගොනු පද්ධති ස්ථරයේ
මොඩියුලෝ

5

ඩීඩී සහ ගලවා ගැනීමේ තැටි සමඟ ඔබට කළ හැකි තවත් හොඳ දෙයක් නම් ජාලය හරහා දත්ත පිටපත් කිරීමයි:

remote_machine$ nc -l -p 12345

local_machine$ dd if=/dev/sda | nc remote_machine 12345

ජාලය දේශීය නොවේ නම් ඔබට මෙම නල මාර්ග දෙකෙහිම gzip ඇලවිය හැකිය. ප්රගතිය සඳහා, භාවිතා කරන්න pv. Local_machine හි නෙට්කැට් පිටපත් කිරීමෙන් පසු ඉවත්වීම සඳහා, ඔබට -w 5යමක් හෝ එකතු කළ හැකිය .


9
මෙය තරමක් නිවැරදි නැත. මෙම 'remote_machine' විධානය වැනි දෙයක්, අතුරුදහන් > disk_backup.imgහෝ |dd of=/dev/sdbහෝ වෙන දෙයක්, ඔබට කරන්න ඕන දේ මත රඳා පවතී. මම හිතන්නේ ඔබට තැටි රූපයක් stdout කිරීමට අවශ්‍ය නැත.
davr

1
යවන ලද දත්ත තවදුරටත් අවම කිරීම සඳහා දෙපැත්තේම gzip විසි කරන්න.
3molo

4

සියලු හිස් අවකාශය ඇතුළුව dd නිශ්චිත පිටපතක් සාදන බව මතක තබා ගන්න .

ඒ කියන්නේ:

  1. 2 වන ධාවකය අවම වශයෙන් පළමු තරම් විශාල විය යුතුය
  2. 2 වන ධාවකය විශාල නම්, අමතර ඉඩක් අපතේ යනු ඇත (ගොනු පද්ධතිය පුළුල් කළ හැකිය)
  3. ප්‍රභව ධාවකය පිරී නොමැති නම්, හිස් ඉඩ පිටපත් කිරීම සඳහා dd කාලය නාස්ති කරයි.
  4. ඔබට සම්පූර්ණ ධාවකය හෝ තනි කොටසක් මේ ආකාරයෙන් පිටපත් කළ හැකිය.
  5. මෙය ආරම්භ කළ හැකි ධාවකයක් නම්, dd භාවිතා කිරීමෙන් පසු ඔබ ඇරඹුම් කාරකය ස්ථාපනය කළ යුතු බව මට විශ්වාසයි

එය ප්‍රයෝජනවත් වේ යැයි බලාපොරොත්තු වෙමු


8
ඔබ සම්පූර්ණ දෘඩ තැටිය ක්ලෝන කරන්නේ නම්, ඔබ ද ඇරඹුම් කාරකය ක්ලෝන කරයි.
ක්‍රිස්ටියන් කියුපිටු

හොඳයි, නිකම්ම නිකම්, නමුත් ඔබට කොටස් / තැටිය නැවත පණ ගැන්වීම සඳහා gparted භාවිතා කළ නොහැකිද? එය එක් වරක් රූපයක් යැයි උපකල්පනය කිරීමෙන් එය මෙම ගැටළුව අවම කළ යුතුය.
bbqchickenrobot

4

මෙය ලාභ හැක් කිරීමකි, නමුත් එය ඔබේ ඩීඩී ක්‍රියාවලිය අධීක්ෂණය කිරීමට ඉක්මන් හා අපිරිසිදු ක්‍රමයකි.

ඔබේ dd විධානය ක්‍රියාත්මක කරන්න. ඔබේ ඩීඩී ක්‍රියාවලිය PID සොයා ගැනීමට නව කවචයක් විවෘත කර ps awx කරන්න. දැන් නව ෂෙල් වර්ගයේ ඔරලෝසුවේ -n 10 kill -USR1 your ඔබේ ඩීඩී ක්‍රියාවලියේ pid}

මෙය ඔරලෝසු ප්‍රතිදාන කවුළුව තුළ කිසිවක් නොකරනු ඇත, නමුත් මුල් ඩීඩී කවචය තුළට ඩීඩී සෑම තත්පර 10 කට වරක් තත්ව වාර්තා ප්‍රතිදානය කිරීම ආරම්භ කරයි. ඔබට ඔරලෝසු විධානයෙහි -n 10 වෙනත් ඕනෑම කාල රාමුවකට වෙනස් කළ හැකිය.

ටැචියොන්


ඕඑස් එක්ස් සතුව නොමැති watchඅතර -USR1ඩීඩී මරා දමයි. පහත දැක්වෙන විධානය ක්‍රියාත්මක වුවද: while [ true ]; do killall -INFO dd; sleep 30; done
ඇඩම් ෆ්‍රැන්කෝ

නවකයකුට මෙය ඉතා ප්‍රායෝගික යැයි මම නොසිතමි, ඔවුන්ට pvවිධානය සමඟ වඩා හොඳ සේවයක් කළ හැකිය .
රොබී මැකෙනී

ඔබට ඩීටී හි CTRL-T භාවිතා කරමින් සිගින්ෆෝ එකක් යැවිය හැකි බව මට පෙනී ගියේය. කාල ලූපයට වඩා එය පහසු වන අතර මා සතුව ඇති OSX 10.6 සීඩී වලට කිල්ලල් නොමැත. මෙම උගත් en.wikipedia.org/wiki/Unix_signal#Sending_signals
පුරවැසි කෙප්ලර්

4
dd if=/dev/sda of=/dev/sdb bs=4096 conv=sync,noerror

මෙය තැටිය පිටපත් කරනු ඇති අතර දෝෂ සහිත කොටස් මඟහරින්න, එය ඉතා වැදගත් වේ.

තැටියක් ක්ලෝන කිරීමට හෝ ගලවා ගැනීමට dd භාවිතා කිරීම සඳහා වන මූලික සහ අත්‍යවශ්‍ය විකල්ප මේවාය.

මට වෙනත් පිළිතුරක් පළ කිරීමට අවශ්‍ය නොවීය, නමුත් දැනටමත් පළ කර ඇති 25 දෙනා අතර අත්‍යවශ්‍ය "conv = sync, noerror" විකල්ප සමඟ හොඳ පිළිතුරු නොමැත.


1
ඇත්ත වශයෙන්ම එය එක් පිළිතුරකින් සහ අවම වශයෙන් අදහස් දෙකක්වත් කලින් සඳහන් කර ඇත.
මයිකල් හැම්ප්ටන්

1
Link ඔබ සම්බන්ධ කළ පිළිතුරට සම්පූර්ණ උදාහරණ විධානයක් අඩංගු නොවන අතර වෙනත් දෝෂ තිබේ - conv=sync,noerrorඑක් එක් නරක බ්ලොක් සඳහා ඕනෑවට වඩා දත්ත මඟ හැරෙන බැවින් විශාල බ්ලොක් ප්‍රමාණය භාවිතා කිරීම හොඳ අදහසක් නොවේ . "ප්‍රතිසාධන ක්ලෝනකරණය" සඳහා මෙම විකල්පයන් අත්‍යවශ්‍ය වන අතර, ඔවුන් සඳහා අදහස් සෙවීම හොඳ නැත. වඩාත්ම ජනප්‍රිය පිළිතුර තැටිවල නරක කොටස් නොමැති නම් ප්‍රමාණවත් වේ, උදා: පැරණි තැටියක් ක්ලෝන කිරීම සඳහා, නමුත් ප්‍රතිසාධනය සඳහා නොවේ.
සෑම් වොට්කින්ස්

Ic මයිකල් මා දුන් උදාහරණය වෘත්තීය තැටි ප්‍රතිසාධනය සඳහා මම කිහිප වතාවක් භාවිතා කර ඇති විධානයකි. තරමක් හොඳ කාර්යයක් කළ හැකි වෙනත් මෙවලම් ඇති අතර, මා ලබා දුන් ddඋදාහරණය මෙහි ඇති අනෙක් උදාහරණවලට වඩා තැටි ප්‍රතිසාධන ක්ලෝනකරණයට වඩා හොඳ වන අතර දෝෂ රහිත තැටියක් ක්ලෝන කිරීමට සුදුසු වේ. එබැවින්, "තැටි ක්ලෝනකරණය සඳහා ඩීඩී භාවිතා කරන්නේ කෙසේද" යන්න පිළිබඳ මගේ පිළිතුර මෙහි හොඳම ඒවා ලෙස මම සලකමි. ප්‍රගතිය, සම්පීඩනය යනාදිය අධීක්ෂණය කිරීම පිළිබඳ තොරතුරු මා එක් කළේ නැත, මන්ද එය සරලව තබා ගැනීමට මට අවශ්‍ය වූ අතර මූලික කරුණු නිවැරදිව ලබා දෙන කෙටි පිළිතුරක් ලබා දීමට අවධානය යොමු කළෙමි.
සෑම් වොට්කින්ස්


3

MBRs, කොටස් වගු සහ ඇරඹුම් වාර්තා පිටපත් කිරීම තවත් විශිෂ්ට ලක්ෂණයකි.

යන්තම්

dd if=/dev/sda of=parttable bs=512 count=1

ඔබ එය ලියන විට අනෙක් දිශාව. fdiskපසු පෝලන්ත .

ඔබේ කොටස් වගුව උපස්ථ කර ඇති විට ඔබට වඩාත් ආරක්ෂිත බවක් දැනේ.

එසේම, එය වෙනත් දෘ hard තැටියකට සංක්‍රමණය වීම (කොටස් ව්‍යුහය වෙනස් කරන අතරතුර) ප්‍රීතියක් ගෙන දෙයි.


3

ඔබට ඇත්ත වශයෙන්ම මේ වගේ දෙයක් උත්සාහ කළ හැකිය

dd if = / dev / sda2 of = / dev / sdb2 bs = 4096 conv = sync, noerror

සියලු දෝෂ මඟ හැර, කොටසක හෝ දෘ drive තැටියේ නිශ්චිත ක්ලෝනයක් තිබිය යුතුය


එය conv = sync, noerror විය යුතුය සමමුහුර්ත කිරීමේ විකල්පය අවශ්‍ය වේ, නැතිනම් දෝෂ සහිත බ්ලොක් ශුන්‍ය ලෙස පිටපත් කරනවා වෙනුවට ඉවත් කරනු ලැබේ.
සෑම් වොට්කින්ස්

2

dd මඟින් ප්‍රගති තොරතුරු සපයයි - ලිනක්ස් හි බොහෝ අනුවාදයන්. යුනික්ස් රසය මතක නැති නමුත් මතක නැති සමහර ඒවා මම දැක ඇත්තෙමි.

මෑන් පිටුව මෙසේ කියයි: ක්‍රියාත්මක වන 'ඩීඩී' ක්‍රියාවලියකට යූඑස්ආර් 1 සං signal ාවක් යැවීමෙන් එය සම්මත දෝෂයකට I / O සංඛ්‍යාලේඛන මුද්‍රණය කර නැවත පිටපත් කිරීම ආරම්භ කරයි.

මම මෙම අංගය නිතිපතා භාවිතා කරමි.


ප්‍රයෝජනවත් වුවත්, ආරම්භකයකු සඳහා එහි ප්‍රායෝගික බව මට සැකයි.
රොබී මැකෙනී

නැතහොත් status=progressdd ආයාචනයට තර්කයක් එක් කරන්න .
drzymala

2

යමෙකුට මෙය පැවසිය යුතුය: ක්ලෝන්සිලා උත්සාහ කර බලන්න (http: // clonezilla.org/)

ඔබට ලැබෙන්නේ කුමක්ද? ගොනු පද්ධතියේ භාවිතා කළ කොටස් පමණක් පිටපත් කිරීම. ක්ලෝන්සිලා dd, grub, sfdisk, parted, partimage, ntfsclone, සහ / හෝ partclone භාවිතා කරයි. ඔබ තෝරා ගන්නා විකල්ප මත පදනම්ව.

යහපත් ලියකියවිලි මෙතැනින් සොයාගත හැකිය: http: // clonezilla.org/clonezilla-live/doc/


ලියකියවිලි ටිකක් රළු බව මට පෙනී ගිය අතර, ලිනක්ස් පැටා ඩ්‍රයිව් එකක් සාටා ඩ්‍රයිව් එකකට ක්ලෝන කිරීමෙන් මට ආරම්භ කළ හැකි යමක් (තවමත්) ඉතිරි නොවීය. නමුත් ඩීඩී මෙන් එකම ප්‍රති result ලයට වඩා වේගවත් වන අතර එය මගේ ලැප්ටොප් ඩ්‍රයිව් යාවත්කාලීන කිරීම් සඳහා විශාල ලෙස ක්‍රියා කළේය.
jbdavid

2

Dd භාවිතයෙන් පිටපත් කරන්නේ කෙසේද (මෙම අවස්ථාවේදී දුරස්ථ යන්ත්‍රයකට, නමුත් එම ප්‍රතිපත්තියම දේශීය පිටපතකට අදාළ වේ) එය ප්‍රගතිය පෙන්නුම් කරයි.

එය ක්‍රියාත්මක වන්නේ ගොනු විස්තරය 3 / tmp / pid හරහා ගබඩා කිරීමෙන් වන අතර එය පසුව USR1 සං signal ාව සමඟ ills ාතනය සඳහා භාවිතා කරයි. රැළි වැටීමක් නම්, stderr හි ප්‍රගතියේ ප්‍රතිදානය උප රේඛාවක් හරහා stderr පෙරීම හරහා එක් පේළියකට පමණක් පෙරීමයි.

(dd bs=1M if=$lv-snapshot & echo $! >&3 ) 3>/tmp/pid  2> >(grep 'copied' 1>&2) | gzip --fast | ssh $DEST "gzip -d | dd bs=1M of=$lv" &
# Need this sleep to give the above time to run
sleep 1
PID=$(</tmp/pid)

while kill -0 $PID; do
  kill -USR1 $PID
  sleep 5
done

ප්‍රශ්නයට සැබවින්ම අදාළ නොවේ, නමුත් එහි දත්ත සම්ප්‍රේෂණය කිරීම සඳහා උප කවචයක් සහ ඉහළ (ස්ටෙඩර්ට වඩා ඉහළ) ගොනු විස්තර භාවිතා කරමින් එය පිළිවෙලට ෂෙල් උපක්‍රමයක්, +1
falstro

තැටි ක්ලෝන කිරීමේදී විවිධ ඩීඩී විකල්පයන් සඳහා මම මෙම පිටුවට යොමු වී සිටියෙමි, එබැවින් ක්ලෝනකරණය සඳහා මා භාවිතා කළ දේවල අවසාන ප්‍රති result ලය තැබීමට එය සුදුසු ස්ථානයක් ලෙස පෙනෙන්නට තිබුණි, විශේෂයෙන් එය මා විසින්ම පිළිවෙලට ඇතැයි සිතූ බැවින් :)
එඩ්වඩ් ග්‍රොනෙන්ඩාල්

2

වඩාත්ම තොරතුරු කලින් ඇතුළත් කළ වට්ටෝරු වල විස්තර කර ඇති නමුත් සියල්ල විස්තර කර නැත.

ලිනක්ස් යටතේ ඔබට dd විධානය මඟින් දෘ hard තැටිය හෝ කොටස ක්ලෝන කළ හැකිය. අවධානය යොමු කරන්න, ඔබ වැරැද්දක් කළ විට, ඔබගේ සියලු දත්ත ඔබට අහිමි වනු ඇත.

මුලදී, ගමනාන්තය භාවිතයේ නොතිබිය යුතුය, දෙවනුව ප්‍රභවය භාවිතා නොකළ යුතුය, නැතහොත් කියවීමට පමණක් ප්‍රකාරයට යවනු ලැබේ. එසේ නොමැතිනම් පිටපතට හානි සිදුවනු ඇත. නැවත ගණනය කිරීම කළ නොහැකි නම්, කරුණාකර ඕනෑම ලිනක්ස් සජීවී ඩිස්ට්‍රෝ එකක් ආරම්භ කළ හැකි ධාවකය (hdd / ssd / pendrive) කරන්න. මම නොක්පික්ස් වලට කැමතියි, නමුත් මෙය ඔබේ තේරීමයි. එය කළ හැකි නම්, ඔබට තනි පරිශීලක මාදිලියක් සඳහා පද්ධති මට්ටම 1 ට ආරම්භ කිරීමට හෝ වෙනස් කිරීමට හෝ පද්ධතිය තනි පරිශීලක මාදිලියකට සෘජුවම නැවත ආරම්භ කළ හැකිය, එය ඩිස්ට්‍රෝ මත රඳා පවතී. ඔබ එක් කොටසක් පමණක් ක්ලෝන කරන්නේ නම්, මෙම කොටස ගණනය නොකළ යුතුය හෝ RO වෙත නැවත යොමු කළ යුතුය:

umount /mountpoint_or_device

හෝ

remount -o,ro /mountpoint_or_device

ඔබට සම්පූර්ණ දෘ hard තැටිය ක්ලෝන කිරීමට අවශ්‍ය නම්, ඔබ සියලු කොටස් ගණනය කළ යුතුය.

ඔබ ප්‍රභව සහ ගමනාන්ත උපාංග හඳුනාගත යුතුය. කරුණාකර dmesg දෙස බලන්න, මෙහි උපාංගය පිළිබඳ අවශ්‍ය සියලු තොරතුරු විකුණුම්කරු සමඟ ගබඩා කර ඇත. විකල්පයක් ලෙස හඳුනා ගැනීම වෙනස් නම් උපාංගයේ ප්‍රමාණය මත පදනම් විය හැකිය. ඊළඟට, ගමනාන්තය ප්‍රභවයට වඩා සමාන හෝ විශාල විය යුතුය. ඔබ ප්‍රභවය ගණනය කළ යුතුය, උදාහරණයක් ලෙස: කොටස් ජ්යාමිතිය හැර fdisk -l / dev / sda (ජීපීටී තිබිය හැකිය), ඔබ ලබා ගන්නේ: 1. මුළු තැටි ප්‍රමාණයේ බර ජීබී සහ බයිට් 2. historical තිහාසික ජ්‍යාමිතිය සහ සමස්ත අංශ අංකය, ඉතා වැදගත් තොරතුරු 3. බයිට් වල ප්‍රමාණය අවහිර කරන්න, සාමාන්‍යයෙන් එය 512 කි.

උදාහරණයක් වශයෙන්:

# fdisk -l /dev/sda

Disk /dev/sda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders, total 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000f1d1e

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048    40136703    20067328   83  Linux
/dev/sda2        40138750    41940991      901121    5  Extended
/dev/sda5        40138752    41940991      901120   82  Linux swap /     Solaris

ඊළඟට 512 බෙදුම්කරුට වඩා විශාල ලෙස උත්සාහ කරමු, අපට භෞතික අංශ 41943040 ක් ඇත:

41943040/256 = 163840, ඉතා හොඳයි, අපට අංශ 256 ක තොග පිටපතක් කළ හැකිය. අපට තවත් හැකිද? අපි උත්සාහ කරමු: 41943040/1024 = 40960, මම හිතන්නේ මෙය ප්‍රමාණවත්, අපි මෙය තෝරා ගනිමු. අංශ කාණ්ඩයේ ප්‍රමාණය ගණනය කරමු: 512 (අංශ ප්‍රමාණය) * 1024 = 524288 බයිට් eq 512K. එවිට අපට bs = 512K හෝ ඊට අඩු පරාමිතිය භාවිතා කළ හැකිය, නමුත් මෙය 2 ^ x න් බෙදන්න. විශාල අභ්‍යන්තර හැඹිලි සහිත නවීන දෘ hard තැටි සඳහා, මෙය ප්‍රමාණවත් තරම් ප්‍රායෝගිකයි. වඩා කුඩා හැඹිලියක් සහිත පැරණි ධාවකයන් සඳහා, 32K හෝ ඊට අඩු අගය ප්‍රමාණවත් වේ.

සකස් කිරීමෙන් පසු අපට පිටපතක් කළ හැකිය: dd if = / dev / source_devide of = / dev / destination_device bs = 32K සහ පිටපත සිදු කෙරේ. අවධානය යොමු කරන්න, ඕනෑම අත්වැරැද්දක් ඔබගේ ආනයන හා දත්ත නැවත ලියයි. ගමනාන්තයේදී සියල්ල නැවත ලියනු ලැබේ.

හානියට පත් ප්‍රභව තැටියේ ගලවා ගැනීමේ දත්ත ඔබ උත්සාහ කරන්නේ නම්, දේශීය අංශයේ ප්‍රමාණය වඩා හොඳින් භාවිතා කරන්න, සාමාන්‍යයෙන් මෙය බයිට් 512 ක් වන අතර, විකල්පය එක් කරන්න conv = notrunc. වෙනත් ආකාරයකින් අයහපත් අංශ විසින් අතහැර දැමූ ප්‍රභවයේ සිදුරු ගමනාන්තය වෙත මාරුවීම මගින් සම්බන්ධ වේ. අළුත්වැඩියා කිරීමට ඇති අවස්ථා ස්වල්පයක් සමඟ මෙය පිටපතට හානි කරයි. එවිට විධානය වනුයේ:

dd if=/dev/source of=/dev/destination bs=512 conv=notrunc  

, සහ ධාවකය සහ පද්ධතිය අත්හරිනු ලබන අතර අංශය අනුව අංශය අවසානය දක්වා ගමන් කරනු ඇත.

dd යනු කොටස නව ස්ථානයකට ගෙන යාම සඳහා ප්‍රයෝජනවත් මෙවලමකි. හුදෙක් කොටස සාදන්න, dd නව කොටසකට සාදන්න (මෙය වඩා විශාල, වඩා විශාල විය හැකිය), හැකි නම්, සියලු නව කොටස් පිරවීම සඳහා පිටපත් කළ ගොනු පද්ධතිය පුළුල් කරන්න, ext3 / ext4 / xfs / zfs / btrfs මෙම පහසුකම ඇත. අවසාන වශයෙන් ඔබ / etc / fstab වෙනස් කළ යුතුය, හැකි නම් umount / mount හෝ පද්ධතිය නැවත ආරම්භ කරන්න.

ඇත්ත වශයෙන්ම ඔබට ඕනෑම වර්ගයක කොටස් ක්ලෝන කළ හැකිය. dd විධානය ගොනු පද්ධති වර්ගය ගැන සොයා බලන්නේ නැත, එය එහි ව්‍යුහය සමඟ කිසිවක් නොකරයි. එන්ටීඑෆ්එස් හෝ වෙනත් කොටස් වර්ග ක්ලෝන කිරීම සඳහා මෙම විධානය භාවිතා කළ හැකිය.

ඕනෑම උපක්රමයක් තිබේ. ඔබ පරාමිති කට්ටලයක් සකසා නොමැති විට, dd ප්‍රතිදානය එහි stdout තුළට දමනු ඇත. එවිට ඔබට තැටියේ හෝ කොටසේ සම්පීඩිත අමු පිටපතක් සෑදිය හැකිය, උදාහරණයක් ලෙස:

dd if=/dev/sda bs=512 | gzip >/any/place/computerOne_sda.gz

ඇත්ත වශයෙන්ම මෙය නොබැඳි ලෙස කළ යුතුය. ඔබට මෙය ප්‍රතිස්ථාපනය කළ හැක්කේ:

zcat /any/place/computerOne_sda.gz| dd of=/dev/sda bs=512   

, එවිට සියලු sda දෘ drive තැටිය මෙම උපස්ථය මගින් නැවත ලියනු ලබන අතර, දැනට පවතින සියලුම දත්ත නැති වී යයි. NTFS වින්ඩෝස් කොටස සහ මෙය භාවිතා කරන දෘ hard තැටිය සමඟද ඔබට මෙය කළ හැකිය. ඇත්ත වශයෙන්ම ඔබට වෙනත් සම්පීඩන විධානයක් භාවිතා කළ හැකිය, එය ඔබේ තේරීම මත රඳා පවතී.


1

කොටසේ (හෝ තැටියේ) සම්පීඩිත අනුරූප ගොනුවක් මැස්ස මත භාවිතා කිරීමට bzip2හෝ gzipඒ වෙනුවට භාවිතා කළ ddහැකිය. ඉවත් කළ හැකි මාධ්‍යවල පින්තූර ගබඩා කිරීම සඳහා මෙය කදිමයි:

bzip2 -c /dev/sdaX >imagefile.bz2
or
gzip -c /dev/sdaX >imagefile.gz

තැටිය මීට පෙර දැඩි ලෙස භාවිතා කර ඇත්නම්, රූපයට පෙර භාවිතයට නොගත් සියලු ඉඩ ශුන්‍යයන් පුරවා සම්පීඩනය වැඩි දියුණු කළ හැකිය:

mkdir /mnt/mymountpoint
mount /dev/sdaX /mnt/mymountpoint
cat /dev/zero >/mnt/mymountpoint/dummyfile.bin
(Wait for it to end with a "disk full" error)
rm /mnt/mymountpoint/dummyfile.bin
umount /mnt/mymountpoint

රූපය වෙනත් තැටියකට යථා තත්වයට පත් කිරීම සඳහා, ඔබ කළ යුත්තේ:

bzcat imagefile.bz2 >/dev/sdbY
or
zcat imagefile.gz >/dev/sdbY

ඉතිරි ඉඩ ශුන්‍යයෙන් පිරවීම සඳහා උපක්‍රමය සඳහා ඉහළට. බුද්ධිමත්!
ව්යාකූලත්වය

මේ, මට මෙය අවශ්‍ය විය! SD කාඩ්පත මීට පෙර වීඩියෝ ග්‍රහණය සඳහා භාවිතා කරන ලද අතර එය කපටිකම් වලින් පිරී තිබුණි, සම්පීඩනය කිසිසේත් උදව් කළේ නැත.
කෝඩි ස්මිත්

0

කිසියම් හේතුවක් නිසා, සීඩී තැටි සමඟ සංයුක්ත තැටි රූපගත කිරීමේදී dd අසමත් වේ. රූප + TOC ගොනුවක් ලබා ගැනීම සඳහා ඔබ cdrdao හෝ ඊට සමාන දෙයක් භාවිතා කළ යුතුය.


0

වේගය පිළිබඳ සටහනක්: පෙරනිමි bs = 512 වෙනුවට bs = 1024 සඳහන් කළහොත් මගේ අත්දැකීම් අනුව dd දෙගුණයක් වේගවත් වේ. ඊටත් වඩා විශාල බ්ලොක් ප්‍රමාණයක් භාවිතා කිරීමෙන් bs = 1024 ට වඩා සැලකිය යුතු වේගයක් නොලැබේ.


4
තැටි පොකුරු දැන් සාමාන්‍යයෙන් 4k පමණ වේ, එබැවින් 4096 භාවිතා කිරීම හොඳ විකල්පයක් වන අතර ඔබට වරකට පොකුරු 2 ක් කියවීමට අවශ්‍ය නම් 8192 පවා. ඔබ කැබලි කරන ලද මතක ගැටළු වලට මුහුණ දෙන විට, එතරම් විශාල නොවන්න
user4767

0

සම්පූර්ණ තැටියක් dd-ing කරන විට ඔබ දැන සිටිය යුතු එක් දෙයක් නම්, එසේ කිරීමෙන් ලැබීමේ තැටියේ ප්‍රධාන ඇරඹුම් වාර්තාව නැවත ලියනු ඇත. කොටස් වගුව සහ අනෙකුත් වැදගත් තොරතුරු මෙහි අඩංගු වේ. නව තැටිය පැරණි තැටියට සමාන නොවේ නම්, මෙය සියලු වර්ගවල වගු නිර්මාණය කළ හැකිය. කොටස් හරහා පිටපත් කිරීම සාමාන්‍යයෙන් ආරක්ෂිතයි (සහ හුවමාරු කොටස් පිටපත් කිරීම අවශ්‍ය නොවේ)


0

මම දැන් වසර ගණනාවක් තිස්සේ පරිපාලක භූමිකාවෙන් බැහැරව සිටිමි, නමුත් මම දන්නවා 'dd' රැකියාව දක්වා ඇති බව. 80 දශකයේ අගභාගයේදී සන් ස්පාර්ක් සහ පරිගණක 386i පරිගණකවල මම මෙම තාක්ෂණය නිතිපතා භාවිතා කළෙමි. CAD මෘදුකාංග ධාවනය වන 30 386i පද්ධති 30 කට වඩා එක් සේවාදායක ඇණවුමක් මා සතුව තිබූ අතර එය QIC පටි කිහිපයකින් බෙදා හරින ලදි.

අපි පළමු පරිගණකයේ ස්ථාපනය කර, යෙදුම වින්‍යාස කර, සන්ඕස් හි සයිස්-කොන්ෆිග් ධාවනය කර, ඩ්‍රයිව් එක වෙනත් එස්සීඑස්අයි ලිපිනයක් සහිත සපත්තු පෙට්ටියක තබා පසුව අනෙක් ඩ්‍රයිව් 30 වෙත 'ඩීඩී' වෙත ගියෙමු.


0

අනෙක් අය ඉහත සඳහන් කළ පරිදි, සවිකර ඇති ගොනු පද්ධතියක් ක්ලෝන කිරීම සමඟ ඇති ගොචා වලින් එකක් වන්නේ විභව දත්ත දූෂණයයි. මෙය සම්පූර්ණ ඩ්‍රයිව් ක්ලෝන සඳහා අදාළ නොවේ, නමුත් ඔබ LVM භාවිතා කරන්නේ නම් ඔබට ස්ථාවර රූපයක් ලබා ගැනීම සඳහා ස්නැප්ෂොට් වෙතින් තාර්කික වොලියම් සහ ඩීඩී ලබා ගත හැකිය.



0

කිව යුතු ආරම්භකයින්ට අනතුරු ඇඟවීමක් පමණි: අවම වශයෙන් සමහර අනුවාදයන් සමඟ, bs = X යන්නෙන් අදහස් කරන්නේ X ප්‍රමාණයට මතකය වචනාර්ථයෙන් වෙන් කරනු ඇති බවයි. 1GB RAM ප්‍රමාණයක් සහ ප්‍රමාණවත් හුවමාරුවක් නොමැති පද්ධතියක bs = 2GB නරක දේ සිදුවීමට හේතු වේ.

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.