הפקודה dd (הגדרת מערך נתונים) היא כלי פשוט, שימושי וקל להפליא לשימוש; בעזרת כלי זה תוכלו לעשות את אותו הדבר במכשירים: דיסקים ומחיצות, כמו בתוכניות מסחריות כמו Norton Ghost, ב- Windows או בתוכניות חינמיות כמו CloneZilla, ב- Linux, עם שורת פקודה קצרה בלבד.
תחביר בסיסי:
התחביר הבסיסי ביותר לשימוש בפקודה dd יהיה זה:
sudo dd if=origen of=destino
איפה אם פירושו "קובץ קלט = קובץ קלט", כלומר, מה אתה רוצה להעתיק ו של פירושו "קובץ פלט = קובץ פלט", כלומר קובץ היעד (לאן יועתקו הנתונים);מקור ו היעד יכול להיות התקנים (קורא CD או DVD, דיסק קשיח, תקליטון, pendrive, מחיצה וכו '), קובץ גיבוי או תמונת דיסק וכו', אך לא תיקיות או תיקיות משנה.
לשימוש חלק בפקודה זו, הדבר הראשון הוא תמיד להיות ברור לגבי מה נקראות מחיצות / כוננים קשיחים בלינוקס (/ dev / sda1 למשל; / dev נובע ממכשיר = מכשיר, באנגלית). כדי לדעת את מקור הדיסק / מחיצה של היעד, משהו שנוכל לגלות בקלות באמצעות הפקודה sudo fdisk -lo עם תוכנית מחיצה גרפית כמו gparted. ניתן להתייעץ עם כל המידע אודות הפקודה dd עם הפקודה man dd ו- info dd,
יש להשתמש בפקודה זו בזהירות, ותמיד לבדוק את סדר הדיסקים / מחיצות ואת שמם, מכיוון שכמו שדיסק משובט, הוא מוחק אותו תוך זמן קצר.
תחביר עם הפקודה pv: השימוש בפקודה dd עם התחביר הקודם יש חסרון קטן, מכיוון שמדובר בפקודה מאוד שמורה - זה לא נותן מידע - מכיוון שכאשר היא מבוצעת, הפקודה הטרמינלית נשארת בלתי ניידת, כך שאנחנו לא יודעים מה הוא מה שקורה וכמה זמן נותר לו לסיים את הביצוע. ניתן לפתור את אי הנוחות הקטנה הזו על ידי הוספת הפקודה pv, (*) - הפועלת כצינור מסוף המודד את הנתונים העוברים דרכה - לתחביר של הפקודה dd, כך שכעת התחביר יהיה:
dd if=origen |pv|dd of=destino
כתוצאה מכך היינו מקבלים מעין סרגל התקדמות בטרמינל, המידע על הבתים שהועברו, הזמן שהוא פועל וקצב ההעברה, הכל בזמן אמת.
(alf) - (~) └──┤ dd if = / devmmcblk0p1 | pv | dd of = / dev / mmcblk0p2 1,630GB 0:21:30 [1,12MB / s] [
בנוסף, בסיום זה מראה לנו נתונים סטטיסטיים על קצב ההעברה, סך כל הבתים שהועברו והזמן הכולל שלקח להעביר את כל הנתונים.
(alf) - (~) └──┤ dd if = / devmmcblk0p1 | pv | dd of = / dev / mmcblk0p2 10530816 + 0 רשומות נקראו <=> 10530816 + 0 רשומות שנכתבו 5391777792 בתים (5.4 GB) הועתקו, 3873,48 s, 1,4 MB / s 5,02GB 1:04:33 [1,33MB / s] [<=> 10530816 + 0 רשומות נקראו <=> 10530816 + 0 רשומות שנכתבו 5391777792 בתים (5.4GB) הועתקו, 3873,48, 1,4 שניות, XNUMX מגהבייט / שניות (alf) - (~) └──┤
(*) בדוק לפני ביצוע שורת פקודה עם תחביר שני זה, שיש לנו את חבילת pv מותקנת במערכת, או התקן אותה אם אין לנו אותה: שניהם עם Synaptic.
בואו נראה כמה דוגמאות ואפשרויות מעשיות של פקודה זו (בגרסתה עם הטריק שהוסבר לעיל עם פקודת pv):
א) אודות כוננים קשיחים ומחיצות:
= שיבוט כונן קשיח:
בעזרת זה נשכפל את דיסק ה- HDA ב- HDB. (דיסקי IDE):
sudo dd if=/dev/hda |pv|dd of=/dev/hdb bs=1M
בעזרת זה נשכפל את דיסק ה- SDA ב- SDB. (דיסקי SATA):
sudo dd if=/dev/sda |pv|dd of=/dev/sdb bs=1M
עם האפשרות bs = 1M, מושג כי הן הקריאה והן הכתיבה נעשות בבלוקים של 1 מגה-בייט, (פחות, זה יהיה איטי יותר אך בטוח יותר, ועם יותר אנו מסתכנים באובדן נתונים בדרך).
זכור שבדרך זו הדיסק מתועד "כמו שהוא", MBR, טבלת מחיצות, שטח ריק וכו '... כך שתוכל להקליט רק על דיסק בגודל זהה או גדול יותר.
= כתוב רק את המחיצה הראשונה (hda1) של דיסק המקור לדיסק היעד (hdb):
sudo dd if=/dev/hda1 |pv|dd of=/dev/hdb bs=1M
= צרוב את כל הדיסק (hda) למחיצה הראשונה (hdb1) של דיסק היעד:
sudo dd if=/dev/hda |pv|dd of=/dev/hdb1 bs=1M
= צור תמונה - יכול להיות bin או iso - מהדיסק הקשיח (hda), בספריה / home:
sudo dd if=/dev/hda |pv|dd of=/home/hda.bin
= מחק לחלוטין מידע על דיסק: לשם כך, מלא את הדיסק בתווים אקראיים, חמש פעמים. לא יהיה זכר למידע בדיסק:
for n in {1..5}; do dd if=/dev/urandom |pv|dd of=/dev/hda bs=8b conv=notrunc;
= מחק כל מחיצה ודיסק שלם מכל מכשיר:
sudo dd if=/dev/zero |pv|dd of=/dev/sdx
(מחיקת דיסק מלא)
sudo dd if=/dev/zero |pv|dd of=/dev/sdxa
(מחיקת מחיצת דיסק)
איפה: x הוא הדיסק למחיקה, הוא המחיצה למחיקה
פעולה זו שימושית מאוד למחיקה מוחלטת של כל מחיצה, בנוסף לא ניתן לשחזר את הנתונים שיימחקו, ולכן מדובר במחיקה ברמה נמוכה ובטוחה מאוד, שימושית מאוד למשל כאשר התלויים נדבקים בנגיפים עם שלנו חלונות יקרים.
ב) על גבי תקליטור / DVD
= צור / הרכיב תמונת .iso מתקליטור (או DVD)
ליצירת תמונת .iso של תקליטור בספריה / home:
sudo dd if=/dev/cdrom |pv|dd of=/home/imagendeCD.iso
להרכבת תמונת .iso מהתקליטור:
sudo mount -o loop imagedeCD.iso /mnt/home
= שחזר DVD שרוט (זה לא משחזר את כל ה- DVD, במקרה זה רק הסקטורים הקריאים). הוא מתאים גם לכוננים קשיחים פגומים:
sudo dd if=/dev/cdrom |pv|dd of=/home/dvd_recuperado.iso conv=noerror,sync
אפשרות noerror משמשת למניעת טעויות קריאה בכל מצב.
ג) אודות MBR ו- VBS:
= העתק / שחזר רשומת אתחול מאסטר (MBR):
להעתקת ה- MBR:
sudo dd if=/dev/hda |pv|dd of=mbr count=1 bs=512
לשחזור ה- MBR:
sudo dd if=mbr |pv|dd of=/dev/hda
= נקה את ה- MBR ואת טבלת המחיצות שלנו:
sudo dd if=/dev/zero |pv|dd of=/dev/hda bs=512 count=1
= מנקה את ה- MBR אך אינו נוגע בטבלת המחיצות (שימושי מאוד למחיקת ה- GRUB מבלי לאבד נתונים על המחיצות):
sudo dd if=/dev/zero |pv|dd of=/dev/hda bs=446 count=1
= העתק / שחזר מגזר אתחול נפח (VBS):
להעתקת ה- VBS:
sudo dd if=/dev/hda |pv|dd of=/home/sector_arranque_hda count=1 bs=512
לשחזור ה- VBS:
sudo dd if=/home/sector_arranque_hda |pv|dd of=/dev/hda
ד) אחרים:
= צרוב תמונה של הדיסק בספריה / הבית שלנו, ודלג על שגיאות דיסק (שימושי מאוד לדיסקים שמתים):
sudo dd conv=noerror if=/dev/hda |pv|dd of=~/home/imagen_disco_con_errores.iso
= צור קובץ ריק של 1 Mb:
sudo dd if=/dev/zero |pv|dd of=archivo_nuevo_vacio bs=1024 count=1024
= צור קובץ החלפה של 2Gb:
sudo dd if=/dev/zero |pv|dd of=/swapspace bs=4k count=2048M
mkswap /swapspace
swapon /swapspace
= המירו את כל האותיות באותיות גדולות:
sudo dd if=miarchivo |pv|dd of=miarchivo conv=ucase
השתמש בפקודה dd עם תוכנית סביבה גרפית: Gdiskdump, היא סביבה גרפית לפקודת dd זו המאפשרת את המשימה של מחיצות או דיסקים משובטים, במהירות ובקלות. ניתן להוריד אותו מהדף https://launchpad.net/gdiskdump/ ברגע שאנחנו פותחים אותו, עם הרשאות שורש - sudo gdiskdump -, אנו רואים שהתוכנית מאוד קלה לשימוש, מכיוון שעלינו לומר לה רק את המחיצה או את הדיסק שיש לשכפל (פורמט קלט) ואת יעדו (פורמט פלט).
כמעט סוכרתי בגלל שימוש לרעה בפקודת ה- dd.
אגב, מה ההבדל עם dd_rescue?
ddrescue כברירת מחדל אינו עוצר בשגיאות קריאה ומנסה באמצעים שונים לשחזר מידע בלתי קריא.
חחחח גם השתמשתי בפקודה dd בצורה גרועה מאוד, היא הרבה יותר חזקה ממה שחשבתי.
אני מעיר שאני מאמין שכל משתמש בקשת השתמש בנקודה כלשהי
@ sieg84, ההבדל הוא שה- dd הופרע בשגיאה כלשהי בקריאה או במכשיר, במקרה זה זה לא יקרה מכיוון שהבלוק הפגום יקרא אותו מספר מסוים של פעמים וימשיך עם הבא, זה גם מספק את היתרון ש אנו יכולים להריץ אותו מספר פעמים על אותה תמונה והיא לא תתחיל מאפס אלא תנסה להשלים אותה.
ראוי להזכיר כי dd_rescue מעולם לא השתמשתי בו.
אם יש GUI כלשהו ב- qt עבור KDE המשתמש בפקודה זו? או שאני צריך להתפטר.?
Gdiskdump הוא יותר מ- GUI לפקודה זו (הוא מבוסס על זה) ולמרות שאני לא יודע אם הם עשו את זה ב- qt (אני חושב שלא) זה כמעט בטוח עובד בשבילך ב- KDE
תודה על ההבהרה.
השתמשתי רק ב- dd_rescue כדי להעתיק ISO ל- USB (בעיקר בגלל שבוויקי openSUSE היה להם).
dd_rescue tu.iso / dev / sdX
מה שאני אוהב זה שהוא מציג סרגל התקדמות:
http://box.jisko.net/i/110db781.png
אלף:
לאחרונה ראיתי את אותו פוסט שפורסם בבלוג Hatteras. סביר להניח שהוא לא נוקט בדרך הלא נכונה אבל אני לא יודע, לפחות כאדיבות יהיה טוב להתייחס לזה. כך גם הוא זוכה במיצוב רשת.
אני לא רוצה ליצור דילמה עם זה, אבל במבט ראשון המאמר נראה זהה ב -95% למעט צילומי המסך הטרמינל שעיבדת. הוא אפילו הזכיר את מקורותיו.
מעניין אני מודה ש | pv | לא הכיר אותו.
קרל אני חושב שהמקור הוא בוויקי של אובונטו או ברכות קשת.
@krel, הדבר בלינוקס הוא זה:
במהלך המסע שלי בעולם הזה קראתי ואספתי דברים, יש לי מחברת עם יותר מ -400 פוסטים ששמתי באובונטו מקסיקו, שהייתה הקהילה בה תרמתי הכי הרבה בימי הראשונים, לצערי ניתן לחזור על הדברים, אם תבדוק את הכמות הגדולה של ההודעות ברשת, הם כמעט באותו סדר, העניין הוא שרובם קצרים יותר.
אוכל לפרסם עוד 5 פוסטים בשבוע ותוכלו למצוא אחרים דומים או זהים, הסיבה? לאובונטו הכי הרבה פורומים / בלוגים ברשת.
בשום פנים ואופן אני לא חושב שתהיה דילמה, ואם המנהלים שוקלים למחוק אותה זה בכלל לא יזיק או יפריע לי, אני מציית לכללים ולפי הדברים הבאים, בין הערות 8 שלי שאין לי את זה בסדר) אני מחפש להוסיף משהו כדי למנוע צירוף מקרים.
לגבי
זה לא מסתור בעיני אף אחד כי לכל היותר רק 10% מהתוכן שנוצר באינטרנט הוא חדש. איתו 90 האחרים משוכפלים, מחודשים או מצילים תוכן, ואני לא אומר שזה פחות חשוב, להפך, זה סוג של הפצת ידע.
עם זאת, איפה שאני עוצר זה משהו אחר. כשיש לך בלוג מסוג זה יש מוטיבציה אישית לעזור ואולי אפילו לקבל הכרה על כך. יחד עם זאת אני בטוח שרוב אלה שכותבים תכנים על תוכנה חופשית מסכימים עם רעיון השיתוף. עם זאת, אל לנו לשכוח שגם הרישיונות האצילים ביותר כמו BSD מבקשים הכרה.
כמו כן, הפניות היא דרך שחלק ממנועי החיפוש כמו google משפרים את המיקום של אתר. אני רק אומר, מכיוון שהחומר שימש כמינימום תודה, הייתי מתייחס לעבודה זו.
אני חושב שזה נהדר שאתה משתף, אבל מה אתה מפסיד על ידי הפניה? רק תחשוב שאם מבלוג אחר עם מיקום טוב יותר מזה התוכן של הבלוג הזה ישוכפל. desdelinux בלי להתייחס לזה, בסופו של דבר הם היו קוברים את הבלוג הזה.
האטראס פרסם את זה לפני 10 ימים, אלא אם כן הוא הוציא אותה מהמחברת שלך או שאתה לואיס פואנטה, אני לא יכול להבין מה אתה אומר, זה שכמעט הכל טקסטואלי. לא סביר אבל לא בלתי אפשרי.
אבל שום דבר, שהסוג הזה קורה. ואני לא יודע, לגבי אתיקה אישית ולשיתוף פעולה עם עמית אחר הייתי מתייחס אליו. זה תלוי בך, אני לא חושב שגם Hatteras לוקח את זה בדרך הלא נכונה, להפך.
זה נכון, זה עותק אמיתי של הפוסט הזה: http://hatteras.wordpress.com/2013/01/18/algunos-usos-practicos-del-comando-dd/
הממ ... הכנתי dd if = file.iso של = / מדיה / כונן קשיח ... בטעות 😛
איזו דרך לשחזר קבצים מהכונן הקשיח ???
אתה יכול להשתמש ב- Testdisk
חבר קרה לי אולי עם testdisk או עם הפצה חיה מיוחדת לנתוני חילוץ. ההמלצה שלי לעשות גיבוי בפעם הבאה מאז השימוש בפקודה זו היא משהו עדין בימי הרוקי שלי כדי לעצב את כל הדיסק הקשיח מבלי לרצות וכעת לאתחל מחדש היטב .... מיותר לציין שאף הגרוב לא התחיל.
מישהו יכול להגיד לי באיזו פקודה להשתמש כדי לראות את התקדמות ההעתקה עם הפקודה dd, כוונתי היא לראות סרגל התקדמות עם% שהועתק.
סלדים
חבר! הוספת הפקודה pv. באותו פוסט הוא אומר את זה כמעט בהתחלה ומסביר כיצד להשתמש בו. קרא את זה שוב
באמצעות פקודה זו:
dd if = / dev / sdc | bzip2> /media/Elements/iso.gz
הצלחתי ליצור תמונת ISO של דיסק 16Gb ולשמור אותו לדיסק 400Gb.
אבל אני לא יודע מה תהיה הפקודה להחזיר את התמונה לדיסק המקורי בגודל 16 ג'יגה-בייט או לאחרת בעלת אותה יכולת
שאלה
השתמש בפקודה זו כדי
עבור n ב- {1..5}; לעשות dd אם = / dev / urandom | pv | dd of = / dev / hda bs = 8b conv = notrunc;
לדיסק 2TB
ואז אני נשאר בקונסולה משהו כזה
>
האם עלי להריץ פקודה אחרת או כמה זמן התהליך יכול להימשך?
תודה והמשיכו
יש שגיאת הקלדה ב- for ... חסר בסוף השורה «; נעשה »נשאר« למשך n ב- {1..5}; לעשות dd אם = / dev / urandom | pv | dd of = / dev / hda bs = 8b conv = notrunc; בוצע "
מאמר טוב מאוד ... .. אני הולך להוציא אותו לפועל ... חבר ברכה
מאוד שימושי, זה עזר לי המון תודה
טוב אלף. תודה על המידע.
שאלה. האם יש דרך להעתיק רק חלק מדיסק המקור? המקרה הוא שאם יש לי דיסק בגודל של 120 ג'יגה-בייט בו משתמשים רק ב- 25 ג'יגה-בתים ואני רוצה ליצור עותק לדיסק של 40 ג'יגה-בייט, הייתי מעוניין רק להעתיק את השטח המשומש (25 ג'יגה-בתים), האם יש דרך לפקודה זו?
תודה מראש.
עדיף שתשתמש ב- rsync, עם הפקודה rsync -av / path / to / origin / path / to / destiny כבר תגבה את כל ההרשאות שלך עם ההרשאות המתאימות להן.
התכוונתי: "כל הקבצים שלך עם ההרשאות המתאימות שלהם"
יקירתי, האם מישהו יודע מדוע כאשר כובש את הפקודה dd, הוא מגיע ל -4.2 GB בלבד ומצביע על כך שהקובץ גדול מאוד? זו תמונה של דיסק 250GB ועוברת לדיסק חיצוני של 1TB.
sudo dd if = / dev / sda | pv | dd of = / home / fox / backup.iso
שגיאת 4Gb נותנת לך את זה מכיוון שאתה מנסה לבצע גיבוי במחיצה עם fs FAT16
איזה בלוג טוב. ערך מאוד שימושי. ראיתי כבר את השימושים בפקודה זו במקום אחר, אך הם כלל לא הסבירו דבר. תודה.
שלום יש לי מכונת הזרקה בה התוכנית אבדה מאז שהחליפו את ערימת הביוס, אין לנו גיבוי אבל יש לנו עוד אותה מכונה, יש לה רק תקליטונים ויציאה טורית ומקבילה, איך אוכל לעשות גיבוי של מכונה זו כדי להעמיס אותו בשני, אני מקווה שתוכלו לעזור לי תודה
אני רק רוצה להעתיק מחיצה מבלי להתחיל מתקליטור LIVE. לדוגמא יש לי דיסק עם / dev / sda1, / dev / sda5, / dev / sda6 ואני רוצה ליצור עותק ל- / dev / sda5 מדיסק אחר / dev / sdb1
הפקודה היא dd אם = / dev / sdb1 של = / dev / sda5 bs = 1M ????
שלום מה שלומך. אני גר גם בגוודלחרה.
המאמר שלך על פקודת DD מאוד מעניין. אני רוצה לבדוק כמה הפצות לינוקס, במיוחד Archlinux, אך לא הצלחתי להשתמש בפקודה DD ולהעתיק את ה- Archilinux ISO שכבר הורדתי, על מקל USB. אני לא יודע אם אתה יכול להעביר לי סימן כדי להתחיל בזה. תודה לך, פדרו לובאטו
מכיוון שכאשר ISO מוקלט עם הפקודה "dd" הוא משמש רק לאתחול בכמה מחשבים אישיים?
תאריך תפוגה יש לי שני מחשבים ניידים ואף אחד מהם לא מגדיל את ה- ISO של כל הפצת לינוקס; אלא להיפך, הוא אכן אתחול במחשב שולחני ישן עם דיסק סרק
עדיף לשחק בטוח באמצעות unetbootin, עם dd נשארתי גם עם השאלה מדוע לפעמים זה לא עובד.
אני לא חושב שזה תלוי ב- DD אלא ב- ISO. אותו דבר קורה עם Unetbootin, זה לא עובד טוב עם כל ההפצות.
לפעמים זה עובד על כל המחשבים האישיים אבל אתה צריך להוסיף את ה- mbr והסיסלינוקס ל- USB לתהליך; אבל זה ארוך ומייגע.
החלק הקל על ביטול ההצעה
היזהר: זה לא ה- iso או ה- dd בשבילי, זה הדרך שאתה מקליט.
יש לי ספק אם אני משתמש בפקודה זו:
sudo dd if = / dev / zero of = / dev / diskdrive
במקום זאת, העיצוב ברמה הנמוכה זהה או לוקח יותר זמן מכך:
sudo dd if = / dev / zero of = / dev / diskdrive bs = 1M ..
האם ניתן להשתמש בפקודה dd למחיקת קובץ ספציפי?
לדוגמה,
dd if = / dev / urandom of = / home / myfile delete
עם bs = 1 מיליון זה הופך להיות מהיר יותר
ואם אני אעשה העתק מדויק מדיסק אחד למשנהו, עם כל המחיצות שלו (swap, sda ...) ושני הדיסקים זהים, אבל אחד נמצא במחשב והשני ב- NAS דרך הרשת ????
תודה
תגובה, אני משתמש בה עם סטטוס = התקדמות בסוף ואני לא צריך pv, אז דביאן עובד טוב מאוד בשבילי לראות את ההתקדמות.
והשנייה, האם יש דרך להשיג רק את הנתונים ולא את כל היחידה, שכן אם מדובר בדיסק 2TB ואני משתמש רק ב 100 ג'יגה-בתים, אני זקוק לכל השטח הזה. האם יש דרך פשוט לגבות את 100GB זה? וכשאני מעביר אותו למדיום אחר זה יכול להיות דיסק קטן יותר אולי 500?
עזרה !!!
בצע את הפקודה
dd if = cbpp-9.0-amd64-20170621.iso of = / dev / sdb
הכל טוב ... אבל עכשיו אני רוצה להשתמש ב- USB כיחידת אחסון ו ...
ה- USB אינו מותקן, הוא אפילו לא מופיע ב- GParted.
מישהו יודע מה אני יכול לעשות.
נ.ב: שזו תהיה התוכנית הטובה ביותר לשחזור מידע מדיסקים ודי.וי.די.
עליך לבצע בדיקת מחיצה מחדש עם fdisk