คำสั่ง Linux dd: มันคืออะไรและจะใช้งานอย่างไร
NS ลินุกซ์ คำสั่ง dd ไม่ได้หมายถึง ดิสก์ดัมพ์แต่คุณสามารถคิดแบบนั้นได้ และถึงแม้จะใช้ชื่อที่ไม่สุภาพ แต่ก็มีประโยชน์มาก ลินุกซ์เทอร์มินัล โปรแกรม. ตั้งแต่การสำรองข้อมูลไปจนถึงการเขียนไดรฟ์ USB การรู้วิธีใช้ dd ถือเป็นส่วนเสริมที่ดีในกล่องเครื่องมือ Linux ของคุณ
dd: คำสั่ง “Disk Dump”
ที่แกนหลัก dd ถูกสร้างขึ้นเพื่อคัดลอกและแปลงไฟล์จากรูปแบบหนึ่งเป็นอีกรูปแบบหนึ่ง ไม่ใช่รูปแบบเช่น คำ หรือ ไฟล์ PDFแต่เป็นรูปแบบระดับต่ำมากที่อธิบายวิธีการแสดงข้อมูลบนดิสก์ นี่เป็นย้อนกลับไปในยุคของเมนเฟรม เมื่อระบบต่างๆ มีรูปแบบภายในของตัวเอง และการแก้ปัญหาการแลกเปลี่ยนกันเป็นงานหลัก
คำสั่ง dd รับบิตจากไฟล์หนึ่ง และย้ายไปยังไฟล์อื่น สิ่งสำคัญที่ต้องเข้าใจคือ dd เพียงแค่ย้ายบิตจากที่นี่ไปยังที่นั่น โดยไม่คำนึงถึงรูปแบบระบบไฟล์ โฟลเดอร์หรือส่วนขยาย ซึ่งหมายความว่าคุณสามารถทำสำเร็จได้อย่างรวดเร็วมาก แต่ก็หมายความว่าคุณต้องระวังเมื่อใช้งาน
ด้วยเหตุนี้ คนฉลาดในชุมชนลินุกซ์จึงย้าย dd ไปเพื่อจุดประสงค์อื่น เนื่องจากใน Linux "ทุกอย่างเป็นไฟล์" dd จึงมีวิธีที่ง่าย เบิร์นอิมเมจ ISO ลงในแฟลชไดรฟ์. ทำได้โดยนำไฟล์รูปภาพมาและ "คัดลอก" ไปยังไฟล์ที่แสดงแทนธัมบ์ไดรฟ์ มีสถานการณ์ต่างๆ ที่เป็นประโยชน์ แต่เราจะเน้นที่สองเรื่องนี้: การเขียนสื่อแบบถอดได้ และการสำรองข้อมูล
การใช้งานพื้นฐานของคำสั่ง dd
การใช้งานพื้นฐานของ dd ใช้ไวยากรณ์ต่อไปนี้:
dd option1=value1 option2=value2
มีตัวเลือกมากมายสำหรับ dd แต่นี่คือสิ่งที่คุณควรทราบเพื่อเริ่มต้น:
- bs: Block Size อธิบายจำนวนข้อมูลที่จะอ่านและเขียนในคราวเดียว ข้อเสียของตัวเลือกนี้คือระหว่างความเร็วในการดำเนินการให้เสร็จสิ้น กับความง่ายในการกู้คืนในกรณีที่เกิดความล้มเหลว ขนาดบล็อกที่ใหญ่ขึ้นจะเสร็จเร็วขึ้น แต่กู้คืนได้ยากกว่า
- ถ้า: ไฟล์อินพุตเป็นแหล่งที่มาของข้อมูล
- ของ: ไฟล์เอาต์พุตเป็นปลายทางสำหรับข้อมูลทั้งหมดที่อ่านจากแหล่งอินพุต
- สถานะ: นี่เป็นแฟล็กทางเลือก แต่มีประโยชน์ที่จะให้ข้อมูลบางอย่างแก่คุณเมื่อคำสั่งของคุณดำเนินการ เราจะให้ค่านี้เท่ากับ ความคืบหน้า เพื่อให้เรารู้ว่าคำสั่งยังคงทำงานอยู่
ใช้ dd เพื่อเขียนสื่อแบบถอดได้
ในตัวอย่างนี้ เราจะลองใช้กรณีการใช้งานทั่วไปสำหรับ dd: การเขียนสื่อแบบถอดได้ คุณต้องทำเช่นนี้ ตัวอย่างเช่น เพื่อ "เบิร์น" อิมเมจการติดตั้งสำหรับ Linux ลงในธัมบ์ไดรฟ์ USB
อิมเมจการติดตั้งจำนวนมากมาเป็น .ISO ไฟล์ซึ่งมีวัตถุประสงค์เพื่อเบิร์นลงในไดรฟ์ซีดีหรือดีวีดีรอม แต่คุณสามารถเบิร์นอิมเมจ .ISO ลงในไดรฟ์ USB ของคุณด้วยคำสั่งดังต่อไปนี้:
dd bs=4M ถ้า=/path/to/imagefilename.img of=/dev/sda status=progress
ในข้างต้น เรากำลังนำเนื้อหาของ imagefilename.img และคัดลอกครั้งละ 4 MB ไปที่ /dev/sda. นี่คือไฟล์ที่มี /dev ระบบย่อยไฟล์ที่แสดงถึงไดรฟ์ USB ของเรา เราใช้ขนาดบล็อก 4 MB ที่นี่ เนื่องจากอิมเมจการติดตั้งส่วนใหญ่มีขนาดใหญ่ และหากเราใช้ขนาดที่เล็กกว่า จะใช้เวลานานกว่าจะเสร็จสิ้น ไม่ว่าในกรณีใดมีบางอย่างผิดปกติ แต่ก็ไม่ใช่เรื่องใหญ่ แค่ฟอร์แมต thumb drive ใหม่และลองอีกครั้ง
ตรวจสอบให้แน่ใจว่าคุณมีค่าที่ถูกต้องสำหรับอินพุตและเอาต์พุต ดังที่กล่าวไว้ dd ได้รับการออกแบบมาเพื่อย้ายบิตจากที่หนึ่งไปยังอีกที่หนึ่ง และไม่สนใจว่ามันจะเขียนทับอะไรในกระบวนการ นอกจากนี้ ตรวจสอบให้แน่ใจว่าไม่มีสิ่งใดในไดรฟ์เป้าหมายที่คุณต้องการ อย่างดีที่สุด การกู้คืนจะยากมาก และแย่ที่สุด มันอาจจะหายไปตลอดกาล
การใช้ dd เพื่อสำรองข้อมูลพีซีลินุกซ์
คุณยังสามารถทำขั้นตอนข้างต้นแบบย้อนกลับและเขียนเนื้อหาของไดรฟ์ทั้งหมดลงในไฟล์รูปภาพได้ นี่เป็นวิธีสำรองฮาร์ดไดรฟ์ที่สะดวกและทั่วถึง

ในกรณีนี้ เราสามารถสลับ "ในไฟล์" กับหนึ่งในไดรฟ์ของเรา และ "ไฟล์ที่ส่งออก" แทนรูปภาพ: ไดรฟ์
dd bs=64k if=/dev/nvme0n1 of=/home/aaron/nvmedrivebackup.img status=progress
ที่นี่เรากำลังเลือกพาร์ติชั่นตัวใดตัวหนึ่งบนแล็ปท็อปของเรา ไดรฟ์ NVMe เป็นอินพุต และระบุพาธและชื่อไฟล์สำหรับรูปภาพเป็นเอาต์พุต
เราใช้ขนาดไบต์ที่เล็กกว่าเพื่อหลีกเลี่ยงปัญหาใดๆ กับสำเนา เนื่องจากนี่จะเป็นอิมเมจการกู้คืนของเราในกรณีที่เกิดภัยพิบัติ ในการคืนค่าดิสก์ เพียงแค่ย้อนกลับไฟล์อินพุตและเอาต์พุต
คำสั่ง dd เป็นยูทิลิตี้ที่ทรงพลัง ดังนั้นจงใช้มันอย่างชาญฉลาด
คำสั่ง dd เป็นยูทิลิตีที่ทรงพลังมาก และด้วยความคิดอันชาญฉลาด คุณอาจจะค้นพบการใช้งานมันมากขึ้นไปอีก อย่างไรก็ตาม คำสั่งนี้ยังเป็นคำสั่งที่ง่ายมาก ดังนั้นตรวจสอบให้แน่ใจว่าคุณได้ดึงตัวเลือกของคุณจากผู้มีความรู้ หรือคุณได้ตรวจสอบสามครั้งแล้วว่าคุณไม่ได้ผสมไฟล์อินพุตและเอาต์พุตเข้าด้วยกัน มิฉะนั้น คุณอาจต้องเขียนบิตว่างทั้งหมดจากสื่อเปล่าบางสื่อไปยังดิสก์ของพีซีของคุณ