Computer >> คอมพิวเตอร์ >  >> ระบบ >> Linux

วิธีใช้คำสั่ง dd ใน Linux

วิธีใช้คำสั่ง dd ใน Linux

dd เป็นหนึ่งในคำสั่งที่สำคัญที่สุดใน Linux ซึ่งส่วนใหญ่ใช้ในการสำรองฮาร์ดดิสก์และพาร์ติชั่น เมื่อใช้อย่างถูกต้อง dd สามารถเป็นเครื่องมือที่มีประสิทธิภาพสำหรับการเขียนข้อมูลจากพาร์ติชั่นหนึ่งไปยังอีกพาร์ติชั่นหนึ่ง และทำงานต่างๆ กับไฟล์ ต่อไปนี้เราจะแสดงวิธีนำคำสั่ง dd ไปใช้ให้เกิดประโยชน์

เรื่องราวของ dd

คำสั่งนี้ได้รับการพัฒนาขึ้นที่ AT&T Bell Laboratories ในปี 1970 โดยนักวิทยาศาสตร์คอมพิวเตอร์ชื่อ Ken Thompson ได้รับการพัฒนาสำหรับระบบที่ใช้ Unix และได้รับเลือกให้อ้างอิงถึงคำสั่งที่พบใน Job Control Language ของ IBM ซึ่งเรียกว่า "DD" สามารถสังเกตได้ว่าไวยากรณ์ของคำสั่งใกล้เคียงกับคำสั่งในภาษาการควบคุมงาน

เดิมคำสั่งนี้ได้รับการออกแบบให้เป็นยูทิลิตี้ในการแปลง ASCII เป็น EBCDIC และในทางกลับกัน มันถูกรวมเข้ากับรุ่น Unix ครั้งแรกในปี 1974 ด้วยการเปิดตัวระบบปฏิบัติการรุ่นที่ 5

dd ถูกเรียกว่า "disk destroyer" เป็นเรื่องตลกในชุมชน Unix เนื่องจากความสามารถในการทำลายข้อมูลบนฮาร์ดดิสก์เมื่อใช้อย่างไม่เหมาะสม

ตัวถูกดำเนินการพื้นฐาน

ตอนนี้คุณรู้เล็กน้อยเกี่ยวกับพื้นหลังของคำสั่งและความสามารถในการทำลายล้างของคำสั่งเมื่อใช้อย่างไม่ถูกต้อง ก็ถึงเวลาเรียนรู้วิธีใช้ประโยชน์จากทุกอย่างที่มีให้กับผู้ใช้ลีนุกซ์รุ่นต่างๆ

ขั้นแรก ดูคู่มือโดยใช้ --help ธง:

dd --help
วิธีใช้คำสั่ง dd ใน Linux

มีสองตัวถูกดำเนินการสำหรับคำสั่งที่ใช้บ่อยที่สุด คือ if และ of ซึ่งย่อมาจาก "input file" และ "output file" ตามลำดับ if ตัวถูกดำเนินการใช้เพื่อเป็นตัวแทนของตำแหน่งต้นทางในขณะที่ of ตัวถูกดำเนินการใช้เพื่อแสดงตำแหน่งที่คุณต้องการบันทึกข้อมูลจากตำแหน่งอินพุต

dd if=<input file> of=<output file>

ตำแหน่งต้นทางและเอาต์พุตที่พบบ่อยที่สุด ได้แก่ ฮาร์ดดิสก์ พาร์ติชั่น และอิมเมจของดิสก์

ก่อนใช้คำสั่ง การใช้ fdisk . อาจเป็นประโยชน์ ยูทิลิตี้เพื่อดูพาร์ติชั่นในระบบของคุณ สามารถทำได้ง่ายๆ โดยใช้คำสั่ง -l ธง:

sudo fdisk -l
วิธีใช้คำสั่ง dd ใน Linux

ในกรณีนี้ if ใช้เพื่อเป็นตัวแทนของไดรฟ์ “/dev/sda” และ of หมายถึงไดรฟ์ “/dev/sdb” โดยที่ข้อมูลจาก “/dev/sda” จะถูกบันทึกไปที่:

dd if=/dev/sda of=/dev/sdb
วิธีใช้คำสั่ง dd ใน Linux

การสร้างดิสก์อิมเมจ

กรณีการใช้งานที่ดีที่สุดกรณีหนึ่งสำหรับคำสั่งคือการสร้างภาพดิสก์ในรูปแบบไฟล์ ".img" สิ่งนี้มีประโยชน์อย่างยิ่งในการสำรองข้อมูลบนระบบที่ใช้ Linux ของคุณ และน่าจะเป็นวิธีที่เร็วและง่ายที่สุดในการสำรองข้อมูลฮาร์ดดิสก์ทั้งหมด

ตรรกะที่นี่เป็นหลักเดียวกันในกรณีนี้ด้วย if ตัวถูกดำเนินการแทนไดรฟ์ “/dev/sda” และ of ตัวถูกดำเนินการแทนไฟล์ “.img” ซึ่งข้อมูลจากฮาร์ดดิสก์จะถูกบันทึกไปที่:

dd if=/dev/sda of=example.img
วิธีใช้คำสั่ง dd ใน Linux

การบันทึกภาพดิสก์ไปยังพาร์ติชั่น

การสร้างดิสก์อิมเมจด้วยคำสั่งนั้นค่อนข้างตรงไปตรงมา แต่กระบวนการนั้นกลับเป็นเวอร์ชันที่ตรงกันข้าม

ในสถานการณ์สมมตินี้ ไฟล์อิมเมจดิสก์ของเราทำหน้าที่เป็นไฟล์อินพุต และพาร์ติชั่นใหม่ของเราทำหน้าที่เป็นไฟล์เอาต์พุต ยูทิลิตีกำลังบันทึกข้อมูลจากอิมเมจดิสก์ของเราไปยังพาร์ติชั่น “/dev/sdb”:

dd if=example.img of=/dev/sdb
วิธีใช้คำสั่ง dd ใน Linux

การสร้างอิมเมจดิสก์ที่บีบอัด

หากคุณสร้างภาพดิสก์ของฮาร์ดดิสก์ขนาดเต็ม คุณสามารถจินตนาการได้ว่าขนาดไฟล์ของภาพดิสก์สุดท้ายน่าจะค่อนข้างใหญ่ ด้วยเหตุนี้ ยูทิลิตี dd จึงมีคุณสมบัติที่สร้างอิมเมจดิสก์ที่บีบอัด

อิมเมจดิสก์ที่บีบอัดสามารถสร้างได้โดยใช้ไพพ์ | สั่งการ. ในกรณีนี้ จะใช้เพื่อนำเนื้อหาของไฟล์อินพุตและดำเนินการ gzip คำสั่งด้วย -c ตั้งค่าสถานะ โดยมีเนื้อหาที่บรรจุเป็นไฟล์ “.gz”:

dd if=/dev/sda | gzip -c > image.gz
วิธีใช้คำสั่ง dd ใน Linux

การระบุขนาดบล็อก

คุณยังสามารถเล่นด้วยความเร็วของการทำงานของคำสั่ง dd สามารถทำได้โดยใช้ bs ตัวถูกดำเนินการ ซึ่งใช้แสดงขนาดบล็อก ขนาดบล็อกแสดงถึงจำนวนไบต์ dd ที่คัดลอกไปยังไฟล์เอาต์พุตในอินสแตนซ์เดียว มันถูกแสดงโดยใช้ทวีคูณของ 1024 ไบต์ และค่าเริ่มต้นถูกตั้งค่าเป็น 512 ไบต์ ยิ่งขนาดบล็อกสูงเท่าไร ข้อมูลก็จะยิ่งถูกบันทึกลงในไฟล์ที่ส่งออกได้เร็วเท่านั้น

ในกรณีนี้ เรากำลังตั้งค่าขนาดบล็อกเป็น 2048:

dd if=/dev/sda of=example.img bs=2048

ขนาดบล็อกสามารถระบุเป็นกิโลไบต์ได้:

dd if=/dev/sda of=example.img bs=2048K
วิธีใช้คำสั่ง dd ใน Linux

การล้างฮาร์ดดิสก์

dd สามารถใช้ล้างข้อมูลบนฮาร์ดดิสก์ของคุณได้ ทำได้โดยการอ่านค่าศูนย์หรืออักขระสุ่มจาก “/dev/zero” หรือ “/dev/urandom” และบันทึกลงในฮาร์ดดิสก์/พาร์ติชั่น ซึ่งจะเขียนทับข้อมูลบนนั้น สิ่งนี้มีประโยชน์อย่างยิ่งเมื่อคุณต้องการให้แน่ใจว่าไม่สามารถดึงข้อมูลของคุณได้อย่างง่ายดายหลังจากที่คุณขายหรือกำจัดฮาร์ดดิสก์ของคุณแล้ว

การเขียนทับฮาร์ดดิสก์โดยใช้ศูนย์:

dd if=/dev/zero of=/dev/sdb
วิธีใช้คำสั่ง dd ใน Linux

ขั้นตอนการเขียนทับสามารถทำได้โดยใช้อักขระสุ่ม:

dd if=/dev/urandom of=/dev/sdb
วิธีใช้คำสั่ง dd ใน Linux

การสร้างไดรฟ์ USB ที่สามารถบู๊ตได้

การสร้างแฟลชไดรฟ์ USB ที่สามารถบู๊ตได้โดยใช้ไฟล์ “.iso” ด้วยคำสั่งนั้นง่ายมาก:

dd if=os.iso of=<USB drive location>
วิธีใช้คำสั่ง dd ใน Linux

บทสรุป

พูดได้อย่างปลอดภัยว่าคำสั่ง dd ถือได้ว่าเป็น "มีด Swiss Army" เนื่องจากมีประโยชน์ในหลายพื้นที่และทุกอย่างที่เกี่ยวกับฮาร์ดไดรฟ์ พาร์ติชั่น และไฟล์อิมเมจดิสก์ ตราบใดที่คุณไม่ทำลายฮาร์ดดิสก์ เครื่องมือนี้จะเป็นเครื่องมือที่มีประสิทธิภาพและใช้งานง่ายสำหรับทุกอย่าง ตั้งแต่การล้างข้อมูลในฮาร์ดดิสก์หรือไดรฟ์ USB ไปจนถึงการสร้างข้อมูลสำรองที่บีบอัด